diff --git a/.ghjk/lock.json b/.ghjk/lock.json index 42b6632380..b6d7d950ac 100644 --- a/.ghjk/lock.json +++ b/.ghjk/lock.json @@ -724,6 +724,55 @@ "crateName": "cargo-udeps", "locked": true, "specifiedVersion": true + }, + "bciqk32ytmretqjmmjadp4n5737sifnbyxdqkvkq6lvg3w5rxmsku57y": { + "version": "1.1.388", + "buildDepConfigs": { + "cpy_bs_ghrel": { + "version": "3.12.5", + "buildDepConfigs": { + "tar_aa": { + "version": "1.34", + "buildDepConfigs": {}, + "portRef": "tar_aa@0.1.0", + "specifiedVersion": false + }, + "zstd_aa": { + "version": "v1.4.8,", + "buildDepConfigs": {}, + "portRef": "zstd_aa@0.1.0", + "specifiedVersion": false + } + }, + "portRef": "cpy_bs_ghrel@0.1.0", + "releaseTag": "20240814", + "specifiedVersion": true + } + }, + "portRef": "pipi_pypi@0.1.0", + "packageName": "pyright", + "specifiedVersion": true + }, + "bciqon5lanvscx2pvfxplu3yftfwyqb2sc7d7ju7veqbfhraw2okw4xa": { + "version": "1.1.388", + "buildDepConfigs": { + "node_org": { + "version": "v20.8.0", + "buildDepConfigs": { + "tar_aa": { + "version": "1.34", + "buildDepConfigs": {}, + "portRef": "tar_aa@0.1.0", + "specifiedVersion": false + } + }, + "portRef": "node_org@0.1.0", + "specifiedVersion": true + } + }, + "portRef": "npmi_npm@0.1.0", + "packageName": "pyright", + "specifiedVersion": true } } }, @@ -770,6 +819,7 @@ "bciqminqcmgw3fbbhibwc7tf6mrupttheic7kpiykadbowqmnzhmzo5a", "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy", "bciqezep4ufkgwesldlm5etyfkgdsiickfudx7cosydcz6xtgeorn2hy", "bciqaixkkacuuligsvtjcfdfgjgl65owtyspiiljb3vmutlgymecsiwq", @@ -806,6 +856,7 @@ "bciqminqcmgw3fbbhibwc7tf6mrupttheic7kpiykadbowqmnzhmzo5a", "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy", "bciqezep4ufkgwesldlm5etyfkgdsiickfudx7cosydcz6xtgeorn2hy", "bciqaixkkacuuligsvtjcfdfgjgl65owtyspiiljb3vmutlgymecsiwq", @@ -830,6 +881,7 @@ "installs": [ "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy", "bciqminqcmgw3fbbhibwc7tf6mrupttheic7kpiykadbowqmnzhmzo5a" ], @@ -870,6 +922,7 @@ "bciqminqcmgw3fbbhibwc7tf6mrupttheic7kpiykadbowqmnzhmzo5a", "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy" ], "allowedBuildDeps": "bciqek3tmrhm4iohl6tvdzlhxwhv7b52makvvgehltxv52d3l7rbki3y" @@ -884,6 +937,7 @@ "bciqlt27ioikxnpkqq37hma7ibn5e5wpzfarbvoh77zwdkarwghtvzxa", "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy" ], "allowedBuildDeps": "bciqek3tmrhm4iohl6tvdzlhxwhv7b52makvvgehltxv52d3l7rbki3y" @@ -898,6 +952,7 @@ "bciqlt27ioikxnpkqq37hma7ibn5e5wpzfarbvoh77zwdkarwghtvzxa", "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy" ], "allowedBuildDeps": "bciqek3tmrhm4iohl6tvdzlhxwhv7b52makvvgehltxv52d3l7rbki3y" @@ -925,6 +980,7 @@ "bciqjme7csfq43oenkrsakdhaha34hgy6vdwkfffki2ank3kf6mjcguq", "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy" ], "allowedBuildDeps": "bciqek3tmrhm4iohl6tvdzlhxwhv7b52makvvgehltxv52d3l7rbki3y" @@ -951,6 +1007,7 @@ "bciqminqcmgw3fbbhibwc7tf6mrupttheic7kpiykadbowqmnzhmzo5a", "bciqfpjzi6gguk7dafyicfjpzpwtybgyc2dsnxg2zxkcmyinzy7abpla", "bciqkgncxbauys2qfguplxcz2auxrcyamj4b6htqk2fqvohfm3afd7sa", + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi", "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy" ], "allowedBuildDeps": "bciqek3tmrhm4iohl6tvdzlhxwhv7b52makvvgehltxv52d3l7rbki3y" @@ -2798,6 +2855,41 @@ }, "packageName": "ruff" }, + "bciqav4kugvq2ceed4xyic2urs5cg2ay5atiwx757u7yhx3cgauf7gqi": { + "version": "1.1.388", + "port": { + "ty": "denoWorker@v1", + "name": "npmi_npm", + "platforms": [ + "x86_64-linux", + "aarch64-linux", + "x86_64-darwin", + "aarch64-darwin", + "x86_64-windows", + "aarch64-windows", + "x86_64-freebsd", + "aarch64-freebsd", + "x86_64-netbsd", + "aarch64-netbsd", + "x86_64-aix", + "aarch64-aix", + "x86_64-solaris", + "aarch64-solaris", + "x86_64-illumos", + "aarch64-illumos", + "x86_64-android", + "aarch64-android" + ], + "version": "0.1.0", + "buildDeps": [ + { + "name": "node_org" + } + ], + "moduleSpecifier": "https://raw.githubusercontent.com/metatypedev/ghjk/v0.2.1/ports/npmi.ts" + }, + "packageName": "pyright" + }, "bciqihcmo6l5uwzih3e3ujc55curep4arfomo6rzkdsfim74unxexiqy": { "version": "1.8.3", "port": { diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b3b0e85b3f..63bc51f0b7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -28,19 +28,25 @@ repos: - id: deno-fmt name: Deno format language: system - entry: bash -c 'cd src/typegate && deno fmt --ignore=native,src/typegraphs,tmp,tests/e2e/nextjs,tests/metagen/typegraphs/sample/ts/client.ts && cd ../../tools && deno fmt && cd ../src/typegraph/deno && deno fmt --ignore=node_modules,dist && cd ../../../src/metagen/src && deno fmt' + entry: bash -c 'deno fmt' pass_filenames: false types: + - javascript - ts - files: ^(src/typegate|tools|src/typegraph/deno)/ + - tsx + - json + - yaml - id: deno-lint name: Deno lint language: system - entry: bash -c 'cd src/typegate && deno lint --rules-exclude=no-explicit-any --ignore=native,tmp,tests/e2e/nextjs && cd ../../tools && deno lint && cd ../src/metagen/src/ && deno lint' + entry: bash -c 'deno lint' pass_filenames: false types: + - javascript - ts - files: ^(src/typegate|tools)/ + - tsx + - json + - yaml - id: es-lint name: Eslint website language: system @@ -49,16 +55,7 @@ repos: types_or: - ts - tsx - files: ^website/ - exclude: ^website/typegraphs/ - - id: devtools-lint - name: ESLint meta-lsp - language: system - entry: bash -c 'cd meta-lsp && pnpm lint' - pass_filenames: false - types: - - ts - files: ^meta-lsp/ + files: ^docs/metatype.dev #- id: cargo-udeps # name: Check for unused cargo dependencies # language: system @@ -66,6 +63,13 @@ repos: # pass_filenames: false # types: # - toml + # - id: pyright + # name: Pyright type check + # language: system + # entry: bash -c 'pyright' + # pass_filenames: false + # types: + # - python - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: @@ -87,9 +91,9 @@ repos: .*deno.lock| CHANGELOG.md| .*\.snap$| - typegate/src/typegraphs/.*\.json| - website/docs/reference/| - libs/pyrt_wit_wire/pyrt| + src/typegate/src/typegraphs/.*\.json| + docs/metatype.dev/reference/| + src/pyrt_wit_wire/pyrt| migration_lock.toml| tests/metagen/typegraphs/sample/[rs|ts|py]/client\.[rs|ts|py] ) @@ -105,7 +109,7 @@ repos: - "--skip-license-insertion-comment=no-auto-license-header" types_or: - python - files: ^typegraph/ + exclude: ^examples/ - id: insert-license name: "License MPL-2.0 rust" args: @@ -116,38 +120,7 @@ repos: - "--skip-license-insertion-comment=@generated" types_or: - rust - files: ^(typegate|libs!(/metagen/.*))/ - - id: insert-license - name: "License MPL-2.0 rust" - args: - #- --remove-header - - --license-filepath=tools/license-header-MPL-2.0.txt - - "--comment-style=//" - - "--skip-license-insertion-comment=no-auto-license-header" - types_or: - - rust - files: ^(meta-cli|typegraph|libs/metagen)/ - - id: insert-license - name: "License MPL-2.0 deno" - args: - #- --remove-header - - --license-filepath=tools/license-header-MPL-2.0.txt - - "--comment-style=//" - - "--skip-license-insertion-comment=no-auto-license-header" - - "--skip-license-insertion-comment=@generated" - types_or: - - ts - files: ^(typegate|tools)/ - - id: insert-license - name: "License MPL-2.0 deno" - args: - #- --remove-header - - --license-filepath=tools/license-header-MPL-2.0.txt - - "--comment-style=//" - - "--skip-license-insertion-comment=no-auto-license-header" - types_or: - - ts - files: ^typegraph/ + exclude: ^examples/ - id: insert-license name: "License MPL-2.0 typescript" args: @@ -158,8 +131,7 @@ repos: types_or: - ts - tsx - files: ^website/ - exclude: website/typegraphs + exclude: ^examples/ - repo: https://github.com/python-jsonschema/check-jsonschema rev: 0.28.6 hooks: diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e93f836096..fcada10e0c 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,19 +1,19 @@ { - "recommendations": [ - "charliermarsh.ruff", - "rust-lang.rust-analyzer", - "ms-python.black-formatter", - "denoland.vscode-deno", - "ms-vscode-remote.remote-containers", - "dbaeumer.vscode-eslint", - "graphql.vscode-graphql-syntax", - "unifiedjs.vscode-mdx", - "ms-python.vscode-pylance", - "ms-python.python", - "chrischinchilla.vale-vscode", - "hediet.vscode-drawio", - "davidlday.languagetool-linter", - "dtsvet.vscode-wasm", - "bierner.comment-tagged-templates" - ] + "recommendations": [ + "charliermarsh.ruff", + "rust-lang.rust-analyzer", + "ms-python.black-formatter", + "denoland.vscode-deno", + "ms-vscode-remote.remote-containers", + "dbaeumer.vscode-eslint", + "graphql.vscode-graphql-syntax", + "unifiedjs.vscode-mdx", + "ms-python.vscode-pylance", + "ms-python.python", + "chrischinchilla.vale-vscode", + "hediet.vscode-drawio", + "davidlday.languagetool-linter", + "dtsvet.vscode-wasm", + "bierner.comment-tagged-templates" + ] } diff --git a/.vscode/launch.json b/.vscode/launch.json index 147a4fe4df..65afc1ad85 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,33 +1,33 @@ -// A launch configuration that compiles the extension and then opens it inside a new window -{ - "version": "0.2.0", - "configurations": [ - { - "type": "extensionHost", - "request": "launch", - "name": "Launch Client", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceRoot}/meta-lsp" - ], - "outFiles": [ - "${workspaceRoot}/meta-lsp/vscode-metatype-support/out/**/*.js" - ], - "preLaunchTask": "vscode-ext:build" - }, - { - "name": "Language Server E2E Test", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceRoot}", - "--extensionTestsPath=${workspaceRoot}/client/out/test/index", - "${workspaceRoot}/client/testFixture" - ], - "outFiles": [ - "${workspaceRoot}/client/out/test/**/*.js" - ] - } - ] +// A launch configuration that compiles the extension and then opens it inside a new window +{ + "version": "0.2.0", + "configurations": [ + { + "type": "extensionHost", + "request": "launch", + "name": "Launch Client", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceRoot}/meta-lsp" + ], + "outFiles": [ + "${workspaceRoot}/meta-lsp/vscode-metatype-support/out/**/*.js" + ], + "preLaunchTask": "vscode-ext:build" + }, + { + "name": "Language Server E2E Test", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceRoot}", + "--extensionTestsPath=${workspaceRoot}/client/out/test/index", + "${workspaceRoot}/client/testFixture" + ], + "outFiles": [ + "${workspaceRoot}/client/out/test/**/*.js" + ] + } + ] } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 007fee01bc..554966b00d 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,46 +1,46 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "vscode-ext:build", - "type": "shell", - "command": "pnpm", - "args": [ - "compile:vscode" - ], - "group": "build", - "presentation": { - "panel": "dedicated", - "reveal": "never" - }, - "problemMatcher": [ - "$tsc" - ], - "options": { - "cwd": "${workspaceFolder}/meta-lsp" - } - }, - { - "label": "vscode-ext:build:watch", - "type": "shell", - "command": "pnpm", - "args": [ - "watch" - ], - "isBackground": true, - "group": { - "kind": "build" - }, - "presentation": { - "panel": "dedicated", - "reveal": "never" - }, - "problemMatcher": [ - "$tsc-watch" - ], - "options": { - "cwd": "${workspaceFolder}/meta-lsp/vscode-metatype-support" - } - } - ] +{ + "version": "2.0.0", + "tasks": [ + { + "label": "vscode-ext:build", + "type": "shell", + "command": "pnpm", + "args": [ + "compile:vscode" + ], + "group": "build", + "presentation": { + "panel": "dedicated", + "reveal": "never" + }, + "problemMatcher": [ + "$tsc" + ], + "options": { + "cwd": "${workspaceFolder}/meta-lsp" + } + }, + { + "label": "vscode-ext:build:watch", + "type": "shell", + "command": "pnpm", + "args": [ + "watch" + ], + "isBackground": true, + "group": { + "kind": "build" + }, + "presentation": { + "panel": "dedicated", + "reveal": "never" + }, + "problemMatcher": [ + "$tsc-watch" + ], + "options": { + "cwd": "${workspaceFolder}/meta-lsp/vscode-metatype-support" + } + } + ] } diff --git a/deno.jsonc b/deno.jsonc index 582d271d36..152c6ec454 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -10,10 +10,23 @@ "./examples/" // needed for published_test ] }, + "fmt": { + "exclude": [ + "target", + "src/typegraph/deno/src/gen", + "src/typegraph/node", + "*.md", + "**/*.md", + ".ghjk/**", + ".git", + "vendor/**", + "node_modules", + "docs/metatype.dev/docusaurus.config.js" + ] + }, "compilerOptions": { "allowJs": false, "strict": true, - "experimentalDecorators": true, "types": [ "./src/typegate/engine/runtime.d.ts" ], @@ -26,13 +39,22 @@ "nodeModulesDir": false, "lock": "deno.lock", "lint": { + "exclude": [ + ".git", + "node_modules", + "./src/typegraph/deno/src/gen", + "./docs/metatype.dev", + "./src/typegraph/node", + "./src/meta-lsp", + "target" + ], "rules": { "include": [ "no-sync-fn-in-async-fn", - "no-external-import", "no-inferrable-types", "no-self-compare", "no-throw-literal" + // "no-external-import", // "verbatim-module-syntax" // "no-await-in-loop" // "ban-untagged-todo" diff --git a/deno.lock b/deno.lock index 756ca5d198..aa1b3b2474 100644 --- a/deno.lock +++ b/deno.lock @@ -2641,6 +2641,122 @@ "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/types.ts": "a36918c2bfab397edec906c23d2cd7558246337bb16fdf1ea4e353cffea5f2b4", "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/utils.ts": "de1a17260e76607e1a8fd6d7384cbc21bb26e08f64bffc41d6508bf5a8359311", "https://raw.githubusercontent.com/metatypedev/metatype/770ca5fc5e328fc88633101934bdeea989b26628/src/typegate/src/utils/hash.ts": "df6cf462c7a6a805b91dce9d3e7bbbd00ea3bfd8dcc973fb3e6c94e48e33d9b9", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/engine/bindings.ts": "7c3e28ec60a0381030310228be6c02f1a434046b4cbcf793a537aaef47be949f", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/engine/runtime.js": "1ae55e76d3de8e79c37054d9127c92af496ce10aa905ea64021893048bb33794", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/config.ts": "63ea402f9a993888a9e3ec88d35112186f8f13bcd3a5fe358e69e0bb603311a5", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/config/loader.ts": "91cc2b67cc9bee413b0b44f9aa2ea7814f50e2465e6bc114eece248554d7477d", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/config/shared.ts": "252b42038eb68059b2cac85c792e36f5849b8e7392b98452341ccc3ee680a774", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/config/types.ts": "73357168542ef041da67997acdd98097444d92f0a1663be03ad1523fd20f768c", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/crypto.ts": "f550775b9e5bf9e7ec286a1596246a631b117fd91e093169bcad4898fb729634", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/computation_engine.ts": "07a3826fcf0bb13eb3912b8e5cbf69932848cd28c1c4ebda7042f977510d00a5", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/planner/args.ts": "de16ba5c087afae319f65d02ab39779146da37ea925f610da8887cffe7828060", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/planner/dependency_resolver.ts": "b851f4a6e2d500f9427dd1a59920d6c71f10904b31863bb1fac4d26e01d02b67", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/planner/injection_utils.ts": "6f9ad0f8f9cde9a985b6ad36bf58418637a85f50749abe6870c792ade7dc45a2", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/planner/mod.ts": "9a4429e7a579903f4f67ab53bd602b2d05a58138bdbd91c7cc5b1b44cf714b68", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/planner/parameter_transformer.ts": "3ba3b9603c6d28c0d54648f8177bce30b8b667e0e1be903d468af3f2645649ff", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/planner/policies.ts": "caf3cfd8a46e21a5d09fdb46882d6ea4ffb376c56070bdb1ccff92fa70989d63", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/query_engine.ts": "39281c309b3d72123fcd8695700bd2831956e09d2b1c082ef899886beea6ae82", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/stage_id.ts": "b3b3c62215ff421103788079b77943af8f0026a56eafaa929415cb39ccde3cca", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/code_generator.ts": "edb77e2b98da2f040d3f7567d204dba2a3d8c66ae1a7c2709c049e464763f0cd", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/common.ts": "b585975e1a978dfa966df1a549261049ab159077bc90203a33bfe8ae055b3c6f", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/inline_validators/common.ts": "112f56c8e590215b0af0c1b46dc84b85cb5b9b43621a52646876c35a43103499", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/inline_validators/constraints.ts": "3237d0acce31aca8b2f2bbc0cae8a82d86f3671fcc7fabc3158037c4f79008f5", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/inline_validators/list.ts": "bd70fef3bc3840cfb6255a518de5fdb3db79a68a4481594475aebcbdd6a10102", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/inline_validators/number.ts": "9890c8af998dca2e573fc2ad02e63d9abc9b506b4a0c451d31f5916a8888e401", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/inline_validators/object.ts": "bd4f8891ee823bf82481df2ee181256514fd7299b5fe4fd7cd7194defa228f57", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/inline_validators/string.ts": "914a2b809a344075279578cb35ac3d03cb6025eb9f62c1f9f86958191b9857da", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/input.ts": "cf24fcffa1891dfc2f2af941a64aade9da069a6ef92baa432e2d7dcf5f9a8b86", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/matching_variant.ts": "aca8db649194921a01aca42b02113d0735262bb63d41ec44174e61c4cfa85369", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/engine/typecheck/result.ts": "6544f206b67c32015950ec96134415c261a60f54c469c1cd73f8accadf87fff6", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/errors.ts": "29dfbfdc8b7a85ee9551831d6db882e50a4e0104102b5885b2bd9a42878365f6", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/libs/jsonpath.ts": "f6851288fb8600dec0e62d5f804f41332b6197b255b6497360ba7e4b7f375cba", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/log.ts": "1330c01d489956c7530e2f2e2e60967f30c6b3a0c5c1d6c18d161ea2cf44fa0e", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/main.ts": "f390cfd2b5b836f1a54fa9ea7d8a5f5ba80430b6e849032145c0a7c0ae7216f3", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/Runtime.ts": "cc476f09f7d32d10dec3812a9a589da2866247e2064ce149ea2dc68fca833730", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/deno.ts": "c893dcf170b38547239d550080a856aca46a788de9922f282bbacf9b5841b5fe", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/deno/deno.ts": "bb0cdad8e785d43f6c59232e214fab82d43476acbcef740f561708b064bae172", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/deno/deno_messenger.ts": "81160c8a9c9817b46b52c4eee15cde880fb3f6b013c3b5110ee07a4c9c7f7a5e", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/deno/shared_types.ts": "34d56aa89c5a34e943a34b623b20d13ca54ab5466ea5313e0543da68b7aebcb1", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/deno/worker.ts": "ffeabab915301a666ac06b28989d5be4b29e600fb2932e25005ec1c9f48aac1d", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/graphql.ts": "5f0f4125367fd5fc43ccb2b8c9e8ba1f9c84348595e70e5ed9870e776d2efed3", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/grpc.ts": "92b2f5214ebe0f7b61e582faa67d6759641feaf788166a939ec6db8d819708da", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/http.ts": "f598a33aa3cafcf37a1f33d84c06bfd0ef5fd768f72837042c83ac6ae1d90762", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/kv.ts": "7d87409d8f93a4f684e1a0aabd020e5f3e559669fe3ca8efee9cd5045fde99dd", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/mod.ts": "26c06f1bff03255c20df97e1a109944b6fd2872acbb27aa97ab38b081fb19d7e", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/patterns/messenger/async_messenger.ts": "40644e011e3a258138ff1fb7a5323754a547016da9c1deb2114cfc471ee28bf0", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/patterns/messenger/lazy_async_messenger.ts": "b93d5e7252231d27d6b76ec4172d67cc23880b78411fb371d0cba2db712e2161", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma.ts": "e4b679c3b5e28a323d72bde5ebbcc113abe0efc8da82d70b3b2e390149c57d84", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma/hooks/generate_schema.ts": "f55ffcb6fdfdfcb29eb5543ac23f89e224fc7e233f4ec598f7c5f44f05eefed2", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma/hooks/mod.ts": "3e33752e3676b538c7016f3ddd4f1f49d75e217c410bcaa6319d33ed987d3c60", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma/hooks/run_migrations.ts": "b94b09ecdc7d81ddcfd7596ae8cfb1ebbc8896d4c67207da627dcd79d19c658c", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma/migration.ts": "f501540557b13a32f7b57e5a87f4ae1794cdd95214a49b34a429d7a33a96d5d8", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma/mod.ts": "a0e44e86a45aad8b2bb0357ddbe8ba02802e6979451553940ec3688be571127f", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma/prisma.ts": "bc370cfcb0f2aad520b8d2fd082e18dad5d41386225b50c9ce577b6c45df55b3", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/prisma/types.ts": "b4912f164aa8cdb1db3a98238a0271882864ff2778c10920dd7f0f3d59165dd6", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/python.ts": "77e7f683830962365ce7ce0af5fc5d326e11bc9751ab33d7add16d27feb32633", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/random.ts": "e7651e262ef5857e777ad46877c66f9098a2dfe774c13720a4cd38be327b53ff", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/s3.ts": "d7a0372faf555180bd4326550c1c6a07b156d3c5f0bbbcf9c0f6eb4b0f2bfff1", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/substantial.ts": "175644d75911d09919c06577bfa86239b3a44b1217664035551ff0989e22882a", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/substantial/agent.ts": "223288cb3d7baa02fa2d4e37207da7fa69cf4f16eb04ed7810d3e91ac725615b", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/substantial/types.ts": "8255ea84c5129ffc049d6fa88ad57eadf298d420ff11782c43eae9d2031efed1", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/substantial/workflow_worker_manager.ts": "589611456b82df0637db5f63af0881a459747d7c8963684bdcde291af13515cd", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/temporal.ts": "fef8a8f70d3f75957a5a741c275abea96cc492722784ea4aadffd9fce9cbff3f", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/typegate.ts": "52d49471d2682c1be323b53e4cca9866f2babb93708a855daa8c471ba4174b64", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/typegraph.ts": "e5808e5a20080fc260e54113e5941e5dffaeead5e3b7448dc17a48031d4799cf", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/utils/graphql_forward_vars.ts": "f0bb091aadd191eb1491dd86b7abd311ab60e09f532d226c8328b2cfa6025d9e", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/utils/graphql_inline_vars.ts": "9c3c339ee596c93cf65cda696d756c9ef08d34b78e4136472e27a92f2254ec8a", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/utils/http.ts": "842af99040fd0e3456690f7674311da3a0b9ea64c608d7bc588df1ab28f163a3", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/wasm_reflected.ts": "99d59cdd0c4b228c42ac90099036ecf5d2e14d6758916b27e4017d53b69cf481", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/wasm_wire.ts": "d10c891f12c9521bcd1a7e1cb459f642a5f4e0936f25f4e04174141691ba06d1", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/runtimes/wit_wire/mod.ts": "b40ab7bbdb225bff8738a743385251cc54a1ef44652e783a31ef7f85ed4efb18", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/artifact_service.ts": "282a9a6c3d89afc8955aabab6b3b242edccba664f5f41558e9c9b07d43dd8d13", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/cookies.ts": "ee17535cb19eab884732cefcdc46e63a2905041d5b5942e9ad6783c50a1f8624", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/mod.ts": "5b15823ec19cec1c985a77d525ee2e9e5c5aa367f5e24c96e305e485b6c633a9", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/protocols/basic.ts": "3c233ae1ccd0d3a8ff47a32c74682921abaf84e0de7c096f220f63b05756fc58", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/protocols/internal.ts": "7a9173406fbc1b885e08dd74a8dd34f168de2f1e9bedef4cdd88dad613e59166", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/protocols/jwt.ts": "e39249df7c2d088da07af1ccf5e97815addb46a994469efd4a335f6ae8618bc5", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/protocols/oauth2.ts": "7172cc6da5ecba71775bbc2d467d52d1f78505204e55452170f35004923b847b", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/protocols/protocol.ts": "158c55618be6165a9ee393ccd1a9da267b084ff04df7e627af1e4fc8fe636644", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/routes/mod.ts": "8fe85c16feb3da7086d3d6fd19a4579585b632893f3534c533c60aed84b9413a", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/routes/take.ts": "bc343c5d34870aeeaf9b0cc9473ba18fe7b324a23a630a57c9fd41eea4418a46", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/auth/routes/validate.ts": "56e52bb6d1660735683bdd398a86936f24ad8a00e402b7d88790867ad559e476", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/graphql_service.ts": "458e3cedcd22a44e166e531bcac4c65972916d81f3776c8161b2440ad212626f", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/info_service.ts": "a9a1f6ebdcbe64d55806597b879dd5714c32b8b861bed695a944f5e2f1213beb", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/middlewares.ts": "8af6277ce67c940564538f4def8e6567b5783b51f7c5f38c902736d620ffe405", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/playground_service.ts": "2cc8689899be7c31ad6c2e9c2c5adde0c6cc1f1442b27a55e8ead830e867dbe5", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/responses.ts": "5c45923c1374aab1ac8dd5b1a09ae69062ab34a448f8e92630678a236e38b2ba", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/services/rest_service.ts": "ae6ffdbddaccdbc7ed11dfb86511f2917332dcf5ae22ed814e1059e640ff7b08", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/sync/replicated_map.ts": "6b94fb884ce81d7e17572ae0abbeb91ceadb31f9356c4e9255982a00edcfe729", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/sync/typegraph.ts": "78120bc4d35e728ed86a98781c5d60996050fa8b35fa91f563c3c8b2a964b5dd", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/system_typegraphs.ts": "51299d60c1bb75b3e74998eb77bdf1680ee9d4a2f29a267d3ca90b2867c577fb", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/transports/graphql/gq.ts": "78435e53ec1c5b7aec29364c051eb8f10802714050d24ee68a65e1e263495d7d", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/transports/graphql/graphql.ts": "9f4aa79276e05acc6020da2a18472a1cc54c0ecf42efcbf017d67a88b0b90af2", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/transports/graphql/request_parser.ts": "afbc95debcb1bbfa6fc2b88937d7abedbed1f4335bb2d17bf98c7293761cfdb0", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/transports/graphql/typegraph.ts": "fc0ba3f62e1dd687a0545adb1dbaf7185176e0f1e938bfdd29cfef7f85951635", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/transports/graphql/utils.ts": "d09147add80f5e53a643ed3126ee8675a1655480728311de2def04ffe6262a4b", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/transports/rest/rest_schema_generator.ts": "c776e83c6a55e9bee3ec72c36c1d771b3ca711e4086b3728e4983ab866472624", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/artifacts/local.ts": "d36ece0f53a56922744dd4d3e170101466b3816ba136f9574e799880e27d1a4b", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/artifacts/mod.ts": "fc931ffd49dc168da12882acf1055d3252e0cb3b666928e67d08d2a6c5be3447", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/artifacts/shared.ts": "5061a07eb880e33c1543e7397e945d50b476ed51d81fc01d109c53295f089131", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/hooks.ts": "ea97c08285388300802676d03dbc06caadf060093736abce07ef8f99a60e9a04", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/memory_register.ts": "6eab24914a941f85c233037013dc13749d8b689c5f9ffb38600df4c7b00a94f0", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/mod.ts": "d9f10b53a40192863a431c6be541effb4fd3c012ed8a716712d5176eba8c884a", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/no_limiter.ts": "1e98610a737bd74668f80b7014c64669a59a801355340eaa14411e07f4a8a94e", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/rate_limiter.ts": "b5718ab9e718314f11f5d88d84795bd0e61575856470793f1fe83d499f4a9d40", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegate/register.ts": "d7a8732386ad019d4dcee0372b6cab93bfc55e0146729842db2aaecf1411b15d", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraph/mod.ts": "27c917783dd8cf99d06290c0768e852ab348c3e989e47c77e648ffcc564b79fb", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraph/type_node.ts": "7f721cd5f6da2cbc7e66b804e0f81e0429aa2893e0a93244f9e66b39cb96b1a0", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraph/types.ts": "fc813b5f18e71b58e5f7904cd7fe3d6cae38b3c7055a8875042588c1561df160", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraph/utils.ts": "66fe8e1b5072f52ea2efebc5cf42001c3b858068b2d970ee3c8558032ff53103", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraph/versions.ts": "cdab4b07960f78c1f18511a8cc464a7e97c4c1fd15c6e8678c109483d3c26508", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraph/visitor.ts": "0fb0f89d92cb1654c1b010494a14c1aad88c7923102ea3e89866b232d3bcdf04", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraphs/introspection.json": "bbcf2c4233371c7f36052e5fe9e1cb1d18a46d3f31391cfcba2a3063c9141adb", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraphs/prisma_migration.json": "dfc346ff8fc2cef611c8f172b90e9d13eae6fed8b3dd65dea8631f9533159173", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/typegraphs/typegate.json": "bc0cbf4cd2c5de34410779994240993db4f1dd3d1eeda10b6045efdc37eb48a4", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/types.ts": "a36918c2bfab397edec906c23d2cd7558246337bb16fdf1ea4e353cffea5f2b4", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/utils.ts": "de1a17260e76607e1a8fd6d7384cbc21bb26e08f64bffc41d6508bf5a8359311", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/utils/hash.ts": "df6cf462c7a6a805b91dce9d3e7bbbd00ea3bfd8dcc973fb3e6c94e48e33d9b9", + "https://raw.githubusercontent.com/metatypedev/metatype/bb42c00169a34c4282317d50800993eea781a69d/src/typegate/src/worker_utils.ts": "19f686d729b947ab3eb2f29e99ccd07578037a3bccced65fc0dce42d5338cd31", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/engine/bindings.ts": "e9391491bf5c4f682267a5cb4ae384ef33ed7c15273fcada13bea7b064cf1270", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/engine/runtime.js": "1ae55e76d3de8e79c37054d9127c92af496ce10aa905ea64021893048bb33794", "https://raw.githubusercontent.com/metatypedev/metatype/db616a6ae26eb6fe04e356a777c11185613d97ad/typegate/src/config.ts": "289820b743711beb9139bca83556f60774521f3c58addd5c441ae3205ef49e61", diff --git a/docs/metatype.dev/docs/guides/securing-requests/cors.py b/docs/metatype.dev/docs/guides/securing-requests/cors.py index 58cf3b9372..90728a1d6d 100644 --- a/docs/metatype.dev/docs/guides/securing-requests/cors.py +++ b/docs/metatype.dev/docs/guides/securing-requests/cors.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.random import RandomRuntime diff --git a/docs/metatype.dev/docs/reference/graphql/index.mdx b/docs/metatype.dev/docs/reference/graphql/index.mdx new file mode 100644 index 0000000000..cd3e283190 --- /dev/null +++ b/docs/metatype.dev/docs/reference/graphql/index.mdx @@ -0,0 +1,183 @@ +--- +sidebar_position: 50 +--- + +import TGExample from "@site/src/components/TGExample"; + +# GraphQL + +[GraphQL](https://graphql.org/) is the primary means of querying your typegraph. +This page documents all the semantics of how your typegraph translates into a GraphQL schema. + +## `Query` and `Mutation` + +The root functions passed to the `expose` function will be added as fields to the [special `query` and `mutation`](https://graphql.org/learn/schema/#the-query-and-mutation-types) GraphQL objects. +Under which object a function is assigned depends on it's [effect](/docs/reference/types/functions). +Note that this assignment still holds for deeply nested functions so be sure to avoid including functions that have mutating effects under query responses or vice versa. + +## Variables + +While [GraphQL Variables](https://graphql.org/learn/queries/#variables) work as expected for the most part, the typegate currently does not do type validation of variables for the provided query documents. + +```graphql +query ($varRight: String!, $varWrong: Int!) { + foo1: foo(in: $varRight) + foo2: foo(in: $varWrong) +} +{ + "varRight": "string", + # request will work as long as varWrong is string + # even if variable above was annotated as Int + "varWrong": "AlsoString", +} +``` + +## Types + +### Scalars + +The simple primitive typegraph types translate directly to their [GraphQL equivalent](https://graphql.org/learn/schema/#scalar-types). +This includes standard scalar variants like `t.uuid` or any user declared aliases with custom configurations. +No custom GraphQL scalars are generated for such types. + + +| Type | GraphQL type | Description | +| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------- | +| `t.integer()` | `Int` | Represents signed 32-bit integers. | +| `t.float()` | `Float` | Represents signed double-precision values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754). | +| `t.boolean()` | `Boolean` | Represents `true` or `false`. | +| `t.string()` | `String` | Represents textual data as UTF-8 character sequences. | + +### Files + +File types, primarily used through the [`S3Runtime`](/docs/reference/runtimes/s3), translate to a custom scalar called `File` in the GraphQL schema. +The `S3Runtime` provides a set of helpers for all your file needs including support for [multipart HTTP requests](/docs/guides/files-upload) for file upload. + +### Structs + +`t.structs` types translate to: +- [GraphQL input types](https://graphql.org/learn/schema/#input-types) when used as inputs to functions +- [GraphQL object types](https://graphql.org/learn/schema/#object-types-and-fields) in any other place. + +### Lists + +`t.list` types simply convert to [GraphQL list types](https://graphql.org/learn/schema/#lists-and-non-null). + +### Functions + +`t.func` types are represented by their output type in the GraphQL schema. +If their input struct has fields present, these are converted to [arguments](https://graphql.org/learn/schema/#arguments) for the field. + +### Unions and Eithers + +Unions and either translate to a number of different forms depending on their usage in the graph and their composition. + +When used as a field in an input struct, unions/eithers are converted to custom scalars since the GraphQL spec doesn't allow GraphQL unions on input types. +These scalars expect the standard JSON representation of your value and that is all. + +When querying union/either values, there are a few more details. +For struct variants, the standard GraphQL rules apply and [inline fragments](https://graphql.org/learn/queries/#inline-fragments) must be used. +Currently, all struct variants must have inline fragments present even if the user is not interested in them. +And as per GraphQL spec, common field querying is not supported and any fields must be part of the inline fragment. +Unlike the GraphQL spec, this includes the `__typename` field which must be included in the fragments instead. + +```graphql +# introspection schema +union MyUnion = Struct1 | Struct2 + +type Struct1 { + foo: String! + bar: String! +} + +type Struct2 { + foo: String! + baz: String! +} + +# introspection expected query (THIS IS WRONG) +query { + myUnion { + # common fields are not supported + __typename + foo + ... on Struct1 { + bar + } + ... on Struct2 { + baz + } + } +} + +# actual expected query (THIS IS RIGHT) +query { + myUnion { + ... on Struct1 { + # common fields must be included each time + __typename + foo + bar + } + ... on Struct2 { + __typename + foo + baz + } + } +} +``` + +For scalar variant, the introspected GraphQL schema will include a `_NameOfScalar` variant in the introspection schema **but** the value is returned at the field level as a simple scalar. +That is, GraphQL API explorers will show union __object__ members that include the scalar values and they'll prompt you to use [inline fragments](https://graphql.org/learn/queries/#inline-fragments) for querying the scalar members. +But the typegate will reject these kind of queries in preference to simple fields. +Look at the following example: + +```graphql +# introspection schema +union MyUnion = _String | _Integer + +type _String { + string: String! +} + +type _Integer { + integer: Int! +} + +# introspection expected query (THIS IS WRONG) +query { + myUnion { + ... on _String { + string + } + ... on _Integer { + integer + } + } +} + +# actual expected query (THIS IS RIGHT) +query { + # no subfield selection at all required + # since all members are scalars + myUnion +} + +# received json +{ + "myUnion": "string" +} +``` + +List members act accordingly to their wrapped times. +Lists of scalars are treated as scalars and lists of composites as a standard GraphQL composites list. + +The following playground shows all the different types of unions/eithers: + + diff --git a/docs/metatype.dev/docs/reference/graphql/union-either.graphql b/docs/metatype.dev/docs/reference/graphql/union-either.graphql new file mode 100644 index 0000000000..405bb5067c --- /dev/null +++ b/docs/metatype.dev/docs/reference/graphql/union-either.graphql @@ -0,0 +1,33 @@ +{ + outer { + # scalar 1 and 2 don't need + # type inline fragments + unionList { + ... on comp_1 { + field1 + } + ... on comp_2 { + field2 + } + } + # we must include fragments + # for all composites or it will fail + union { + ... on comp_1 { + field1 + } + ... on comp_2 { + field2 + } + } + # rules are the same between unions and eithers + either { + ... on comp_1 { + field1 + } + ... on comp_2 { + field2 + } + } + } +} diff --git a/docs/metatype.dev/docs/reference/typegate/authentication/oauth2.tsx b/docs/metatype.dev/docs/reference/typegate/authentication/oauth2.tsx index a555e6a6b2..a358ca2e54 100644 --- a/docs/metatype.dev/docs/reference/typegate/authentication/oauth2.tsx +++ b/docs/metatype.dev/docs/reference/typegate/authentication/oauth2.tsx @@ -26,13 +26,15 @@ function OAuth2({ name, typegraph }) { } }, [setToken, tgUrl]); - const url = `${tgUrl}/${typegraph}/auth/${name}?redirect_uri=${encodeURIComponent( - window.location.href, - )}`; + const url = `${tgUrl}/${typegraph}/auth/${name}?redirect_uri=${ + encodeURIComponent( + window.location.href, + ) + }`; return (

- Start the flow via {url} and take token by - clicking{" "} + Start the flow via {url}{" "} + and take token by clicking{" "} here diff --git a/docs/metatype.dev/src/components/Features/index.tsx b/docs/metatype.dev/src/components/Features/index.tsx index be240d5c25..e1a76fd86c 100644 --- a/docs/metatype.dev/src/components/Features/index.tsx +++ b/docs/metatype.dev/src/components/Features/index.tsx @@ -14,9 +14,9 @@ export default function Features(props: { | React.JSX.Element | FeatureDeets | { - content: string; - path: string; - } + content: string; + path: string; + } )[][]; }): JSX.Element { return ( diff --git a/docs/metatype.dev/src/components/Newsletter/index.tsx b/docs/metatype.dev/src/components/Newsletter/index.tsx index 5c3f8b5720..b86440df47 100644 --- a/docs/metatype.dev/src/components/Newsletter/index.tsx +++ b/docs/metatype.dev/src/components/Newsletter/index.tsx @@ -60,7 +60,8 @@ export default function Newsletter() { type="email" className="px-2 py-2 font-sans bg-slate-100 border-none text-base" value={email} - onChange={(event) => setEmail(event.target.value)} + onChange={(event) => + setEmail(event.target.value)} /> { const vertical = px - x < py - my; - const sx = - px < x - ? x - (vertical ? 0 : width / 2 + 10) - : x + (vertical ? 0 : width / 2 + 10); - const sy = - py < y - ? y - (!vertical ? 0 : height / 2 + 10) - : y + (!vertical ? 0 : height / 2 + 10); + const sx = px < x + ? x - (vertical ? 0 : width / 2 + 10) + : x + (vertical ? 0 : width / 2 + 10); + const sy = py < y + ? y - (!vertical ? 0 : height / 2 + 10) + : y + (!vertical ? 0 : height / 2 + 10); return ( { .fromLambda( t.struct({ first: t.float(), second: t.float() }), t.float(), - { code: "lambda x: x['first'] + x['second']" } + { code: "lambda x: x['first'] + x['second']" }, ) .withPolicy(pub), multiply: deno diff --git a/examples/templates/node/tsconfig.json b/examples/templates/node/tsconfig.json index 999217dd3c..8654230394 100644 --- a/examples/templates/node/tsconfig.json +++ b/examples/templates/node/tsconfig.json @@ -1,8 +1,8 @@ { - "compilerOptions": { - "strict": true, - "moduleResolution": "node16", - "module": "Node16", - "esModuleInterop": true - } + "compilerOptions": { + "strict": true, + "moduleResolution": "node16", + "module": "Node16", + "esModuleInterop": true + } } diff --git a/examples/templates/python/api/example.py b/examples/templates/python/api/example.py index 0ba10790e9..cea2ceacf5 100644 --- a/examples/templates/python/api/example.py +++ b/examples/templates/python/api/example.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes import PythonRuntime diff --git a/examples/typegraphs/authentication.py b/examples/typegraphs/authentication.py index 31622c945e..59fead18d5 100644 --- a/examples/typegraphs/authentication.py +++ b/examples/typegraphs/authentication.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth, Cors @@ -24,7 +27,7 @@ def authentication(g: Graph): get_context=deno.identity(ctx).apply( { "username": g.from_context("username"), - } + }, ), get_full_context=deno.func( t.struct({}), diff --git a/examples/typegraphs/authentication.ts b/examples/typegraphs/authentication.ts index d32b3b990c..740e5c51e9 100644 --- a/examples/typegraphs/authentication.ts +++ b/examples/typegraphs/authentication.ts @@ -32,9 +32,9 @@ await typegraph( code: "(_: any, ctx: any) => Deno.inspect(ctx.context)", }), }, - Policy.public() + Policy.public(), ); // skip:start - } + }, ); // skip:end diff --git a/examples/typegraphs/backend-for-frontend.py b/examples/typegraphs/backend-for-frontend.py index 358a5137f3..ec6d2c7091 100644 --- a/examples/typegraphs/backend-for-frontend.py +++ b/examples/typegraphs/backend-for-frontend.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes import HttpRuntime @@ -22,7 +25,7 @@ def backend_for_frontend(g: Graph): t.struct({"user": t.string().from_parent("login")}), t.struct({"name": t.string().optional()}), ), - } + }, ) g.expose( diff --git a/examples/typegraphs/basic.py b/examples/typegraphs/basic.py index 8b9a02564d..94af64656f 100644 --- a/examples/typegraphs/basic.py +++ b/examples/typegraphs/basic.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth, Cors from typegraph.runtimes.deno import DenoRuntime @@ -25,6 +28,6 @@ def basic_authentication(g: Graph): get_context=deno.identity(ctx).apply( { "username": g.from_context("username"), - } + }, ), ) diff --git a/examples/typegraphs/basic.ts b/examples/typegraphs/basic.ts index 529e49c669..86edbe9f34 100644 --- a/examples/typegraphs/basic.ts +++ b/examples/typegraphs/basic.ts @@ -30,5 +30,5 @@ await typegraph( }) .withPolicy(pub), }); - } + }, ); diff --git a/examples/typegraphs/cors.py b/examples/typegraphs/cors.py index 26b376b409..20ff44b535 100644 --- a/examples/typegraphs/cors.py +++ b/examples/typegraphs/cors.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.random import RandomRuntime diff --git a/examples/typegraphs/cors.ts b/examples/typegraphs/cors.ts index dedb2c5bdf..296ba3cc77 100644 --- a/examples/typegraphs/cors.ts +++ b/examples/typegraphs/cors.ts @@ -24,7 +24,7 @@ await typegraph( { catch_me_if_you_can: random.gen(t.string()), }, - Policy.public() + Policy.public(), ); - } + }, ); diff --git a/examples/typegraphs/database.py b/examples/typegraphs/database.py index 8fa996b1b0..c9b1ace93f 100644 --- a/examples/typegraphs/database.py +++ b/examples/typegraphs/database.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors # isort: off diff --git a/examples/typegraphs/database.ts b/examples/typegraphs/database.ts index 1e08a76bcb..364a34a220 100644 --- a/examples/typegraphs/database.ts +++ b/examples/typegraphs/database.ts @@ -24,7 +24,7 @@ await typegraph( body: t.string(), }, // highlight-next-line - { name: "message" } + { name: "message" }, ); g.expose( @@ -33,7 +33,7 @@ await typegraph( create_message: db.create(message), list_messages: db.findMany(message), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/deno.py b/examples/typegraphs/deno.py index d03e1bd6be..4119a54932 100644 --- a/examples/typegraphs/deno.py +++ b/examples/typegraphs/deno.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.deno import DenoRuntime diff --git a/examples/typegraphs/deno.ts b/examples/typegraphs/deno.ts index be47cd8f14..c69762936e 100644 --- a/examples/typegraphs/deno.ts +++ b/examples/typegraphs/deno.ts @@ -33,14 +33,14 @@ await typegraph( }; } `, - } + }, ); g.expose( { compute_fib: fib, }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/docs.py b/examples/typegraphs/docs.py index 21ed1bd074..baa7b024e9 100644 --- a/examples/typegraphs/docs.py +++ b/examples/typegraphs/docs.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes import HttpRuntime @@ -20,7 +23,7 @@ def docs(g): "email": t.email(), "listIds": t.list(t.integer()).set([8]), "header#api-key": t.string().from_secret("SENDINBLUE_KEY"), - } + }, ), t.struct({"id": t.integer().optional()}), ).with_policy(public) diff --git a/examples/typegraphs/example_rest.py b/examples/typegraphs/example_rest.py index d4b66c981a..612471ad85 100644 --- a/examples/typegraphs/example_rest.py +++ b/examples/typegraphs/example_rest.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors @@ -43,6 +46,6 @@ def example_rest(g: Graph): } } } - """ + """, ) # highlight-end diff --git a/examples/typegraphs/example_rest.ts b/examples/typegraphs/example_rest.ts index a9280af9be..b0a5c3c81a 100644 --- a/examples/typegraphs/example_rest.ts +++ b/examples/typegraphs/example_rest.ts @@ -19,7 +19,7 @@ await typegraph( id: t.integer(), author: user, }, - { name: "Post" } + { name: "Post" }, ); // skip:end @@ -41,9 +41,9 @@ await typegraph( } } } - ` + `, ); // highlight-end // skip:start - } + }, ); diff --git a/examples/typegraphs/execute.py b/examples/typegraphs/execute.py index ed46b99712..45c47c647f 100644 --- a/examples/typegraphs/execute.py +++ b/examples/typegraphs/execute.py @@ -1,9 +1,11 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.deno import DenoRuntime -from typegraph.graph.params import Auth -from typegraph.providers.prisma import PrismaRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.gen.exports.runtimes import EffectUpdate -from typegraph.graph.params import Cors +from typegraph.graph.params import Auth, Cors +from typegraph.providers.prisma import PrismaRuntime +from typegraph.runtimes.deno import DenoRuntime @typegraph( @@ -70,8 +72,8 @@ def roadmap(g: Graph): "authorEmail": g.inherit(), "votes": g.inherit(), "bucket": {"connect": g.inherit()}, - } - } + }, + }, ), create_vote=db.create(vote), set_vote_importance=db.execute( @@ -80,13 +82,13 @@ def roadmap(g: Graph): { "vote_id": t.uuid(), "importance": t.enum(["medium", "important", "critical"]), - } + }, ), EffectUpdate(True), ), get_context=deno.identity(t.struct({"username": t.string().optional()})).apply( { "username": g.from_context("username"), - } + }, ), ) diff --git a/examples/typegraphs/faas-runner.py b/examples/typegraphs/faas-runner.py index e69ae257ec..9c88ec46fc 100644 --- a/examples/typegraphs/faas-runner.py +++ b/examples/typegraphs/faas-runner.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes import DenoRuntime, PythonRuntime diff --git a/examples/typegraphs/faas-runner.ts b/examples/typegraphs/faas-runner.ts index 933a0e500a..5d840c82b7 100644 --- a/examples/typegraphs/faas-runner.ts +++ b/examples/typegraphs/faas-runner.ts @@ -26,10 +26,11 @@ typegraph( code: `lambda inp: sum(range(inp['n']))`, }), tscumsum: deno.func(inp, out, { - code: "({n}) => Array.from(Array(5).keys()).reduce((sum, e) => sum + e, 0)", + code: + "({n}) => Array.from(Array(5).keys()).reduce((sum, e) => sum + e, 0)", }), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/files-upload.py b/examples/typegraphs/files-upload.py index d61ebc3367..9dad3500ec 100644 --- a/examples/typegraphs/files-upload.py +++ b/examples/typegraphs/files-upload.py @@ -1,8 +1,11 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.providers.aws import S3Runtime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph # skip-next-line from typegraph.graph.params import Cors +from typegraph.providers.aws import S3Runtime @typegraph( diff --git a/examples/typegraphs/files-upload.ts b/examples/typegraphs/files-upload.ts index 047bc52b39..aea8bc1edf 100644 --- a/examples/typegraphs/files-upload.ts +++ b/examples/typegraphs/files-upload.ts @@ -23,11 +23,11 @@ await typegraph( signUploadUrl: s3.presignPut({ bucket: "examples" }), upload: s3.upload( "examples", - t.file({ allow: ["image/png", "image/jpeg"] }) + t.file({ allow: ["image/png", "image/jpeg"] }), ), uploadMany: s3.uploadAll("examples"), }, - Policy.public() + Policy.public(), ); - } + }, ); diff --git a/examples/typegraphs/first-typegraph.py b/examples/typegraphs/first-typegraph.py index c1dc355194..ed443a098b 100644 --- a/examples/typegraphs/first-typegraph.py +++ b/examples/typegraphs/first-typegraph.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes import RandomRuntime @@ -19,7 +22,7 @@ def first_typegraph(g: Graph): "id": t.integer(), "title": t.string(), "user_id": t.integer(), - } + }, ) # expose them with policies diff --git a/examples/typegraphs/first-typegraph.ts b/examples/typegraphs/first-typegraph.ts index b7ad5b7855..3d46e76c5d 100644 --- a/examples/typegraphs/first-typegraph.ts +++ b/examples/typegraphs/first-typegraph.ts @@ -25,7 +25,7 @@ await typegraph( // input → output via runtime function get_message: random.gen(message), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/func-ctx.py b/examples/typegraphs/func-ctx.py index 8bb2240e61..dd72483b15 100644 --- a/examples/typegraphs/func-ctx.py +++ b/examples/typegraphs/func-ctx.py @@ -1,7 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors, Rate - from typegraph.runtimes.deno import DenoRuntime @@ -30,7 +32,7 @@ def func_ctx(g: Graph): "url": t.string(), # token for accessing host typegraph "token": t.string(), - } + }, ), # http headers "headers": t.list(t.list(t.string())), @@ -39,7 +41,7 @@ def func_ctx(g: Graph): # FIXME: explanation "parent": t.string(), "context": t.string(), - } + }, ), # modeling arbitrary associative arrays in # graphql is difficult so we return a listified format. diff --git a/examples/typegraphs/func-ctx.ts b/examples/typegraphs/func-ctx.ts index 2e7f8c5ff7..1e388fcb59 100644 --- a/examples/typegraphs/func-ctx.ts +++ b/examples/typegraphs/func-ctx.ts @@ -48,11 +48,11 @@ await typegraph( headers: Object.entries(ctx.headers), secrets: Object.entries(ctx.secrets), }), - } + }, ), }, - Policy.public() + Policy.public(), ); // skip:start - } + }, ); diff --git a/examples/typegraphs/func-gql.py b/examples/typegraphs/func-gql.py index 1a9b123dcd..6d789fc3e1 100644 --- a/examples/typegraphs/func-gql.py +++ b/examples/typegraphs/func-gql.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph, fx +from typegraph import Graph, Policy, fx, t, typegraph from typegraph.graph.params import Cors, Rate - -from typegraph.runtimes.deno import DenoRuntime from typegraph.providers.prisma import PrismaRuntime +from typegraph.runtimes.deno import DenoRuntime @typegraph( @@ -45,7 +47,7 @@ def func_gql(g: Graph): createIdea=db.create(idea), createVote=deno.import_( t.struct({"ideaId": t.uuid(), "authorEmail": t.email()}).rename( - "CreateVoteInput" + "CreateVoteInput", ), t.struct( { @@ -59,9 +61,9 @@ def func_gql(g: Graph): "where": { "id": g.inherit().from_parent("voteId"), }, - } + }, ), - } + }, ).rename("CreateVoteOutput"), module="scripts/createVote.ts", name="handle", # name the exported function to run diff --git a/examples/typegraphs/func.py b/examples/typegraphs/func.py index 831fd82f58..c2f0e5a3b5 100644 --- a/examples/typegraphs/func.py +++ b/examples/typegraphs/func.py @@ -1,10 +1,13 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.deno import DenoRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph # skip:start -from typegraph.graph.params import Auth +from typegraph.graph.params import Auth, Cors from typegraph.providers.prisma import PrismaRuntime -from typegraph.graph.params import Cors +from typegraph.runtimes.deno import DenoRuntime + # skip:end @@ -75,8 +78,8 @@ def roadmap(g: Graph): "authorEmail": g.inherit(), "votes": g.inherit(), "bucket": {"connect": g.inherit()}, - } - } + }, + }, ), create_vote=db.create(vote), # skip:end @@ -102,7 +105,7 @@ def roadmap(g: Graph): } } } - """ + """, ) g.rest( @@ -120,6 +123,6 @@ def roadmap(g: Graph): } } } - """ + """, ) # skip:end diff --git a/examples/typegraphs/func.ts b/examples/typegraphs/func.ts index e010cb8aec..9f44056ff6 100644 --- a/examples/typegraphs/func.ts +++ b/examples/typegraphs/func.ts @@ -27,7 +27,7 @@ await typegraph( name: t.string(), ideas: t.list(g.ref("idea")), }, - { name: "bucket" } + { name: "bucket" }, ); const idea = t.struct( @@ -38,7 +38,7 @@ await typegraph( votes: t.list(g.ref("vote")), bucket: g.ref("bucket"), }, - { name: "idea" } + { name: "idea" }, ); const vote = t.struct( @@ -49,14 +49,14 @@ await typegraph( desc: t.string().optional(), idea: g.ref("idea"), }, - { name: "vote" } + { name: "vote" }, ); g.auth(Auth.basic(["andim"])); const admins = deno.policy( "admins", - "(_args, { context }) => !!context.username" + "(_args, { context }) => !!context.username", ); // skip:end @@ -82,7 +82,7 @@ await typegraph( name: "parse", }), }, - pub + pub, ); // skip:start @@ -99,7 +99,7 @@ await typegraph( } } } - ` + `, ); g.rest( @@ -117,8 +117,8 @@ await typegraph( } } } - ` + `, ); // skip:end - } + }, ); diff --git a/examples/typegraphs/functions.py b/examples/typegraphs/functions.py index 59a8ff029f..d3e62d6224 100644 --- a/examples/typegraphs/functions.py +++ b/examples/typegraphs/functions.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, t, Graph +from typegraph import Graph, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes import DenoRuntime, HttpRuntime diff --git a/examples/typegraphs/graphql-server.py b/examples/typegraphs/graphql-server.py index 6ff06b2d0a..59463144ef 100644 --- a/examples/typegraphs/graphql-server.py +++ b/examples/typegraphs/graphql-server.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.http import HttpRuntime @@ -23,7 +26,7 @@ def graphql_server(g: Graph): t.struct({"user": t.string().from_parent("login")}), t.struct({"name": t.string().optional()}), ), - } + }, ) g.expose( diff --git a/examples/typegraphs/graphql.py b/examples/typegraphs/graphql.py index 0f53236cec..5cbc73620a 100644 --- a/examples/typegraphs/graphql.py +++ b/examples/typegraphs/graphql.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.providers.prisma import PrismaRuntime @@ -36,8 +39,8 @@ def graphql(g: Graph): t.struct( { # highlight-next-line - "id": t.string(as_id=True).from_parent("user_id") - } + "id": t.string(as_id=True).from_parent("user_id"), + }, ), t.optional(user), ), diff --git a/examples/typegraphs/http-runtime.py b/examples/typegraphs/http-runtime.py index 30d8212d02..6067bab118 100644 --- a/examples/typegraphs/http-runtime.py +++ b/examples/typegraphs/http-runtime.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors # skip:end @@ -31,7 +34,7 @@ def http_runtime(g: Graph): "source_url": t.string(), "language": t.string(), "permalink": t.string(), - } + }, ), ), facts_as_text=facts.get( @@ -40,7 +43,7 @@ def http_runtime(g: Graph): { "header_accept": t.string().set("text/plain"), "language": t.enum(["en", "de"]), - } + }, ), t.string(), header_prefix="header_", diff --git a/examples/typegraphs/http-runtime.ts b/examples/typegraphs/http-runtime.ts index 2090af3984..9bb2374523 100644 --- a/examples/typegraphs/http-runtime.ts +++ b/examples/typegraphs/http-runtime.ts @@ -33,7 +33,7 @@ await typegraph( }), { path: "/random", - } + }, ), facts_as_text: facts.get( t.struct({ @@ -41,10 +41,10 @@ await typegraph( language: t.enum_(["en", "de"]), }), t.string(), - { path: "/random", headerPrefix: "header_" } + { path: "/random", headerPrefix: "header_" }, ), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/iam-provider.py b/examples/typegraphs/iam-provider.py index edee4048fa..dac792de3d 100644 --- a/examples/typegraphs/iam-provider.py +++ b/examples/typegraphs/iam-provider.py @@ -1,9 +1,12 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start from os import environ from urllib.parse import quote_plus -from typegraph import typegraph, Policy, t, Graph -from typegraph.graph.params import Cors, Auth +from typegraph import Graph, Policy, t, typegraph +from typegraph.graph.params import Auth, Cors from typegraph.runtimes import DenoRuntime diff --git a/examples/typegraphs/iam-provider.ts b/examples/typegraphs/iam-provider.ts index 86c74f7b2b..6b25e8a26b 100644 --- a/examples/typegraphs/iam-provider.ts +++ b/examples/typegraphs/iam-provider.ts @@ -27,9 +27,11 @@ typegraph( const deno = new DenoRuntime(); const host = getEnvOrDefault("TG_URL", "http://localhost:7890"); - const url = `${host}/iam-provider/auth/github?redirect_uri=${encodeURIComponent( - host - )}`; + const url = `${host}/iam-provider/auth/github?redirect_uri=${ + encodeURIComponent( + host, + ) + }`; g.expose( { @@ -39,11 +41,12 @@ typegraph( t.struct({}), t.struct({ username: t.string() }).optional(), { - code: "(_, { context }) => Object.keys(context).length === 0 ? null : context", - } + code: + "(_, { context }) => Object.keys(context).length === 0 ? null : context", + }, ), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/index.py b/examples/typegraphs/index.py index 30f2ff9879..686bf786f1 100644 --- a/examples/typegraphs/index.py +++ b/examples/typegraphs/index.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start import re @@ -44,7 +47,7 @@ def homepage(g: Graph): t.struct({"user": t.string().from_parent("login")}), t.struct({"name": t.string().optional()}), ), - } + }, ) # out of the box authenfication support diff --git a/examples/typegraphs/injections.py b/examples/typegraphs/injections.py index dcb2602463..a16880b191 100644 --- a/examples/typegraphs/injections.py +++ b/examples/typegraphs/injections.py @@ -1,4 +1,7 @@ -from typegraph import Policy, typegraph, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.deno import DenoRuntime @@ -20,7 +23,7 @@ def injection_example(g: Graph): "context_value": t.uuid().from_context("profile.userId"), "secret_value": t.string().from_secret("secret_name"), "dynamic_value": t.datetime().inject("now"), - } + }, ).rename("Input"), t.struct( { @@ -29,14 +32,14 @@ def injection_example(g: Graph): "secret_value": t.string(), "nested": deno.identity( t.struct( - {"parent_value": t.integer().from_parent("static_value")} + {"parent_value": t.integer().from_parent("static_value")}, ), ), "dynamic_value": t.datetime(), - } + }, ).rename("Output"), code=""" ({ static_value, context_value, secret_value, dynamic_value }) => ({ static_value, context_value, secret_value, dynamic_value }) """, - ).with_policy(pub) + ).with_policy(pub), ) diff --git a/examples/typegraphs/jwt.py b/examples/typegraphs/jwt.py index 4186f5f571..042a26b759 100644 --- a/examples/typegraphs/jwt.py +++ b/examples/typegraphs/jwt.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth, Cors from typegraph.runtimes.deno import DenoRuntime @@ -23,7 +26,7 @@ def jwt_authentication(g: Graph): get_context=deno.identity(ctx).apply( { "your_own_content": g.from_context("your_own_content"), - } + }, ), default_policy=[public], ) diff --git a/examples/typegraphs/jwt.ts b/examples/typegraphs/jwt.ts index 82fd389973..cc396ae5ed 100644 --- a/examples/typegraphs/jwt.ts +++ b/examples/typegraphs/jwt.ts @@ -27,7 +27,7 @@ typegraph( your_own_content: g.fromContext("your_own_content"), }), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/math.py b/examples/typegraphs/math.py index 054954b87e..f94d347b40 100644 --- a/examples/typegraphs/math.py +++ b/examples/typegraphs/math.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors, Rate # skip:end diff --git a/examples/typegraphs/math.ts b/examples/typegraphs/math.ts index bdec25bdfe..45db028804 100644 --- a/examples/typegraphs/math.ts +++ b/examples/typegraphs/math.ts @@ -24,7 +24,7 @@ await typegraph( // the policy implementation is based on functions itself const restrict_referer = deno.policy( "restrict_referer_policy", - '(_, context) => context.headers.referer && ["localhost", "metatype.dev"].includes(new URL(context.headers.referer).hostname)' + '(_, context) => context.headers.referer && ["localhost", "metatype.dev"].includes(new URL(context.headers.referer).hostname)', ); // or we can point to a local file that's accessible to the meta-cli @@ -42,15 +42,15 @@ await typegraph( randomItem: deno.func( t.struct({ items: t.list(t.string()) }), t.string(), - { code: random_item_fn } + { code: random_item_fn }, ), random: deno.func( t.struct({}), t.float(), - { code: "() => Math.random()" } // more inline code + { code: "() => Math.random()" }, // more inline code ), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/metagen-deno.py b/examples/typegraphs/metagen-deno.py index 7ef4e8bce7..b16dcf8180 100644 --- a/examples/typegraphs/metagen-deno.py +++ b/examples/typegraphs/metagen-deno.py @@ -1,7 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.deno import DenoRuntime + # skip:end @@ -18,7 +22,7 @@ def metagen_deno(g: Graph): "releaseTime": t.datetime(), "mp3Url": t.uri(), # explicit type names help when generating code - } + }, ).rename("idv3") deno = DenoRuntime() diff --git a/examples/typegraphs/metagen-py.py b/examples/typegraphs/metagen-py.py index de69d7baf1..282a11d184 100644 --- a/examples/typegraphs/metagen-py.py +++ b/examples/typegraphs/metagen-py.py @@ -1,7 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.python import PythonRuntime +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors +from typegraph.runtimes.python import PythonRuntime + # skip:end @@ -17,7 +21,7 @@ def metagen_py(g: Graph): "artist": t.string(), "releaseTime": t.datetime(), "mp3Url": t.uri(), - } + }, ).rename("idv3") python = PythonRuntime() diff --git a/examples/typegraphs/metagen-py.ts b/examples/typegraphs/metagen-py.ts index 5de27f2490..924932199b 100644 --- a/examples/typegraphs/metagen-py.ts +++ b/examples/typegraphs/metagen-py.ts @@ -32,7 +32,7 @@ await typegraph( }) .rename("remix_track"), // explicit names help }, - Policy.public() + Policy.public(), ); - } + }, ); diff --git a/examples/typegraphs/metagen-rs.py b/examples/typegraphs/metagen-rs.py index 5e7fae8a6c..507ae6a52f 100644 --- a/examples/typegraphs/metagen-rs.py +++ b/examples/typegraphs/metagen-rs.py @@ -1,7 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.wasm import WasmRuntime + # skip:end @@ -18,7 +22,7 @@ def metagen_rs(g: Graph): "releaseTime": t.datetime(), "mp3Url": t.uri(), # explicit type names help when generating code - } + }, ).rename("idv3") # the wire flavour is availible through a static diff --git a/examples/typegraphs/metagen-rs.ts b/examples/typegraphs/metagen-rs.ts index 3d0142d801..e4e3f74c3e 100644 --- a/examples/typegraphs/metagen-rs.ts +++ b/examples/typegraphs/metagen-rs.ts @@ -32,13 +32,13 @@ await typegraph( idv3, { name: "remix_track", - } + }, // the traits will map to the name of the materializer // and also the the name of the handler mentioned above ) .rename("remix_track"), }, - Policy.public() + Policy.public(), ); - } + }, ); diff --git a/examples/typegraphs/metagen-sdk.py b/examples/typegraphs/metagen-sdk.py index a4fc2cbbc8..c7dc3bc1de 100644 --- a/examples/typegraphs/metagen-sdk.py +++ b/examples/typegraphs/metagen-sdk.py @@ -1,11 +1,14 @@ -# skip:start -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.deno import DenoRuntime -from typegraph.graph.params import Cors +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 +# skip:start # skip:end import os + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.metagen import Metagen +from typegraph.graph.params import Cors +from typegraph.runtimes.deno import DenoRuntime @typegraph( @@ -20,7 +23,7 @@ def metagen_sdk(g: Graph): "artist": t.string(), "releaseTime": t.datetime(), "mp3Url": t.uri(), - } + }, ).rename("idv3") deno = DenoRuntime() @@ -36,7 +39,8 @@ def metagen_sdk(g: Graph): ) -if __name__ == "__main__" and False: +# if __name__ == "__main__" and False: +if False: metagen = Metagen( # the workspace root that our config is relative to os.path.dirname(os.path.abspath(__file__)), diff --git a/examples/typegraphs/metagen-sdk.ts b/examples/typegraphs/metagen-sdk.ts index 4e429514fa..130a1691ab 100644 --- a/examples/typegraphs/metagen-sdk.ts +++ b/examples/typegraphs/metagen-sdk.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // skip:start import { Policy, t, typegraph } from "@typegraph/sdk/index.ts"; import { DenoRuntime } from "@typegraph/sdk/runtimes/deno.ts"; @@ -38,6 +41,7 @@ const tg = await typegraph( }, ); +// deno-lint-ignore no-constant-condition if (false) { const myPath = import.meta.url.replace("file://", ""); const metagen = new Metagen( diff --git a/examples/typegraphs/metagen/py/remix.py b/examples/typegraphs/metagen/py/remix.py index 5992ea744d..455f9806d0 100644 --- a/examples/typegraphs/metagen/py/remix.py +++ b/examples/typegraphs/metagen/py/remix.py @@ -1,4 +1,7 @@ -from .remix_types import typed_remix_track, Idv3 +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from .remix_types import Idv3, typed_remix_track # the following decorator makes sure your function diff --git a/examples/typegraphs/metagen/py/remix_types.py b/examples/typegraphs/metagen/py/remix_types.py index 83d667e0ef..3a95c7c2d8 100644 --- a/examples/typegraphs/metagen/py/remix_types.py +++ b/examples/typegraphs/metagen/py/remix_types.py @@ -1,6 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from dataclasses import asdict, dataclass, fields from types import NoneType -from typing import Callable, List, Union, get_origin, ForwardRef, Any -from dataclasses import dataclass, asdict, fields +from typing import Any, Callable, ForwardRef, List, Union, get_origin FORWARD_REFS = {} diff --git a/examples/typegraphs/metagen/ts/fdk.ts b/examples/typegraphs/metagen/ts/fdk.ts index b34231aaa1..223bec680a 100644 --- a/examples/typegraphs/metagen/ts/fdk.ts +++ b/examples/typegraphs/metagen/ts/fdk.ts @@ -42,5 +42,4 @@ export type Idv3 = { mp3Url: StringUri; }; - export type RemixTrackHandler = Handler; diff --git a/examples/typegraphs/metagen/ts/remix.ts b/examples/typegraphs/metagen/ts/remix.ts index 0d0ecbac02..b69a0b4a53 100644 --- a/examples/typegraphs/metagen/ts/remix.ts +++ b/examples/typegraphs/metagen/ts/remix.ts @@ -1,4 +1,4 @@ -import type { RemixTrackHandler, Ctx, Idv3 } from "./fdk.ts"; +import type { Ctx, Idv3, RemixTrackHandler } from "./fdk.ts"; // the name of the export must match the one referred int he typegraph export const remix_track: RemixTrackHandler = (inp, cx: Ctx) => { diff --git a/examples/typegraphs/oauth2.py b/examples/typegraphs/oauth2.py index cfff1214e0..b83f84a1ae 100644 --- a/examples/typegraphs/oauth2.py +++ b/examples/typegraphs/oauth2.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth, Cors from typegraph.runtimes.deno import DenoRuntime @@ -26,6 +29,6 @@ def oauth2_authentication(g: Graph): get_context=deno.identity(ctx).apply( { "exp": g.from_context("exp"), - } + }, ), ) diff --git a/examples/typegraphs/oauth2.ts b/examples/typegraphs/oauth2.ts index 96172d572b..4164497f84 100644 --- a/examples/typegraphs/oauth2.ts +++ b/examples/typegraphs/oauth2.ts @@ -27,7 +27,7 @@ typegraph( exp: g.fromContext("exp"), }), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/policies.py b/examples/typegraphs/policies.py index 35a53d0773..0ecd99ce82 100644 --- a/examples/typegraphs/policies.py +++ b/examples/typegraphs/policies.py @@ -1,6 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph -from typegraph.graph.params import Cors, Auth +from typegraph import Graph, Policy, t, typegraph +from typegraph.graph.params import Auth, Cors from typegraph.runtimes.deno import DenoRuntime from typegraph.runtimes.random import RandomRuntime diff --git a/examples/typegraphs/policies.ts b/examples/typegraphs/policies.ts index e128ff32df..46651fc6b0 100644 --- a/examples/typegraphs/policies.ts +++ b/examples/typegraphs/policies.ts @@ -19,11 +19,11 @@ typegraph( const admin_only = deno.policy( "admin_only", // note: policies either return true | false | null - "(args, { context }) => context.username ? context.username === 'admin' : null" + "(args, { context }) => context.username ? context.username === 'admin' : null", ); const user_only = deno.policy( "user_only", - "(args, { context }) => context.username ? context.username === 'user' : null" + "(args, { context }) => context.username ? context.username === 'user' : null", ); g.auth(Auth.basic(["admin", "user"])); @@ -37,9 +37,9 @@ typegraph( both: random.gen(t.string()).withPolicy([user_only, admin_only]), // set default policy for the exposed functions }, - pub + pub, ); // skip:start - } + }, ); // skip:end diff --git a/examples/typegraphs/prisma-no-sugar.py.disabled b/examples/typegraphs/prisma-no-sugar.py.disabled index 869b2be4cd..1061f9ef7c 100644 --- a/examples/typegraphs/prisma-no-sugar.py.disabled +++ b/examples/typegraphs/prisma-no-sugar.py.disabled @@ -1,30 +1,30 @@ -# # skip:start -# from typegraph import typegraph, effects, t, Graph -# from typegraph.providers.prisma import PrismaRuntime -# -# -# @typegraph() -# def prisma_no_sugar(g: Graph): -# db = PrismaRuntime("database", "POSTGRES_CONN") -# message = t.struct({}) -# skip: end -# t.func( -# t.struct( -# { -# "data": t.struct( -# { -# # notice to absence of `id` as automatically generated -# "title": t.string(), -# "body": t.string(), -# } -# ) -# } -# ), -# t.list(message), -# PrismaOperationMat( -# db, -# "Message", -# "createOne", -# effect=effects.create(), -# ), -# ) +# skip:start +from typegraph import typegraph, effects, t, Graph +from typegraph.providers.prisma import PrismaRuntime + + +@typegraph() +def prisma_no_sugar(g: Graph): + db = PrismaRuntime("database", "POSTGRES_CONN") + message = t.struct({}) + skip: end + t.func( + t.struct( + { + "data": t.struct( + { + # notice to absence of `id` as automatically generated + "title": t.string(), + "body": t.string(), + } + ) + } + ), + t.list(message), + PrismaOperationMat( + db, + "Message", + "createOne", + effect=effects.create(), + ), + ) diff --git a/examples/typegraphs/prisma-runtime.py b/examples/typegraphs/prisma-runtime.py index a77bd4ed88..c17b25aa8c 100644 --- a/examples/typegraphs/prisma-runtime.py +++ b/examples/typegraphs/prisma-runtime.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start from typegraph import Policy, t from typegraph.graph.params import Cors @@ -41,7 +44,7 @@ def prisma_runtime(g: Graph): { "id": t.string(), "term": t.string(), - } + }, ), t.list(user), ), diff --git a/examples/typegraphs/prisma-runtime.ts b/examples/typegraphs/prisma-runtime.ts index c6bb7b2977..e446afc640 100644 --- a/examples/typegraphs/prisma-runtime.ts +++ b/examples/typegraphs/prisma-runtime.ts @@ -29,7 +29,7 @@ typegraph( email: t.email(), firstname: t.string({ min: 2, max: 2000 }, {}), }, - { name: "user" } + { name: "user" }, ); g.expose( @@ -42,10 +42,10 @@ typegraph( id: t.string(), term: t.string(), }), - t.list(user) + t.list(user), ), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/prisma.py b/examples/typegraphs/prisma.py index 80ad32e42a..8b8f717c68 100644 --- a/examples/typegraphs/prisma.py +++ b/examples/typegraphs/prisma.py @@ -1,6 +1,9 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.providers.prisma import PrismaRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors +from typegraph.providers.prisma import PrismaRuntime @typegraph( diff --git a/examples/typegraphs/programmable-api-gateway.py b/examples/typegraphs/programmable-api-gateway.py index 284c01b0d9..c4b0dbb697 100644 --- a/examples/typegraphs/programmable-api-gateway.py +++ b/examples/typegraphs/programmable-api-gateway.py @@ -1,7 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start import yaml - -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.deno import DenoRuntime diff --git a/examples/typegraphs/programmable-api-gateway.ts b/examples/typegraphs/programmable-api-gateway.ts index 9180126fd7..7f372f885d 100644 --- a/examples/typegraphs/programmable-api-gateway.ts +++ b/examples/typegraphs/programmable-api-gateway.ts @@ -17,7 +17,7 @@ typegraph( const pub = Policy.public(); const roulette_access = deno.policy( "roulette", - "() => Math.random() < 0.5" + "() => Math.random() < 0.5", ); // skip:next-line @@ -34,8 +34,8 @@ typegraph( foo: static_vals["foo"], }), }, - policy + policy, ); } - } + }, ); diff --git a/examples/typegraphs/quick-start-project.py b/examples/typegraphs/quick-start-project.py index 7339e1c806..4e5a458200 100644 --- a/examples/typegraphs/quick-start-project.py +++ b/examples/typegraphs/quick-start-project.py @@ -1,7 +1,10 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.providers.prisma import PrismaRuntime -from typegraph.runtimes import PythonRuntime, DenoRuntime +from typegraph.runtimes import DenoRuntime, PythonRuntime @typegraph( diff --git a/examples/typegraphs/quick-start-project.ts b/examples/typegraphs/quick-start-project.ts index 887b68b351..4b968de079 100644 --- a/examples/typegraphs/quick-start-project.ts +++ b/examples/typegraphs/quick-start-project.ts @@ -24,19 +24,19 @@ typegraph( title: t.string(), body: t.string(), }, - { name: "message" } // the name of our type + { name: "message" }, // the name of our type ); // custom functions const add = deno.func( t.struct({ first: t.float(), second: t.float() }), t.float(), - { code: "({first, second}) => first + second" } + { code: "({first, second}) => first + second" }, ); const hello = python.fromLambda( t.struct({ world: t.string() }), t.string(), - { code: `lambda x: f"Hello {x['world']}!"` } + { code: `lambda x: f"Hello {x['world']}!"` }, ); g.expose( @@ -46,7 +46,7 @@ typegraph( create_message: db.create(message), list_messages: db.findMany(message), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/random-field.py b/examples/typegraphs/random-field.py index 3bb1a071a9..c6dff64059 100644 --- a/examples/typegraphs/random-field.py +++ b/examples/typegraphs/random-field.py @@ -1,8 +1,11 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.deno import DenoRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph # skip:start from typegraph.graph.params import Cors +from typegraph.runtimes.deno import DenoRuntime # skip:end @@ -22,7 +25,7 @@ def random_field(g: Graph): { "performance": t.integer(), "bonus": bonus_items.from_random(), # this field is now generated randomly - } + }, ) # set a custom seed diff --git a/examples/typegraphs/random-field.ts b/examples/typegraphs/random-field.ts index 0b2e4eb9b7..53c4b2f71b 100644 --- a/examples/typegraphs/random-field.ts +++ b/examples/typegraphs/random-field.ts @@ -27,7 +27,7 @@ typegraph( `Daily bonus: ${(performance > 100 ? bonus : ["none"]).join(", ")}`, }), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/rate.py b/examples/typegraphs/rate.py index bffaf3edce..bf41d310a5 100644 --- a/examples/typegraphs/rate.py +++ b/examples/typegraphs/rate.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors, Rate from typegraph.runtimes.random import RandomRuntime diff --git a/examples/typegraphs/rate.ts b/examples/typegraphs/rate.ts index a3115c1d84..608c04c00b 100644 --- a/examples/typegraphs/rate.ts +++ b/examples/typegraphs/rate.ts @@ -39,7 +39,7 @@ typegraph( .gen(t.list(t.string())) .rate({ calls: false, weight: 2 }), // increment by # of results returned }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/reduce.py b/examples/typegraphs/reduce.py index f8e0993216..c7d5217b89 100644 --- a/examples/typegraphs/reduce.py +++ b/examples/typegraphs/reduce.py @@ -1,8 +1,10 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.deno import DenoRuntime -from typegraph.graph.params import Auth +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph +from typegraph.graph.params import Auth, Cors from typegraph.providers.prisma import PrismaRuntime -from typegraph.graph.params import Cors +from typegraph.runtimes.deno import DenoRuntime @typegraph( @@ -67,8 +69,8 @@ def roadmap(g: Graph): "authorEmail": g.inherit(), "votes": g.inherit(), "bucket": {"connect": g.inherit()}, - } - } + }, + }, ), create_vote=db.create(vote), ) diff --git a/examples/typegraphs/reduce.ts b/examples/typegraphs/reduce.ts index def512775c..00cdb815ee 100644 --- a/examples/typegraphs/reduce.ts +++ b/examples/typegraphs/reduce.ts @@ -20,7 +20,7 @@ typegraph( name: t.string(), ideas: t.list(g.ref("idea")), }, - { name: "bucket" } + { name: "bucket" }, ); const idea = t.struct( @@ -31,7 +31,7 @@ typegraph( votes: t.list(g.ref("vote")), bucket: g.ref("bucket"), }, - { name: "idea" } + { name: "idea" }, ); const vote = t.struct( @@ -42,14 +42,14 @@ typegraph( desc: t.string().optional(), idea: g.ref("idea"), }, - { name: "vote" } + { name: "vote" }, ); g.auth(Auth.basic(["andim"])); const admins = deno.policy( "admins", - "(_args, { context }) => !!context.username" + "(_args, { context }) => !!context.username", ); g.expose( @@ -68,7 +68,7 @@ typegraph( }), create_vote: db.create(vote), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/rest.py b/examples/typegraphs/rest.py index c0b62c8dce..088bf0a5f3 100644 --- a/examples/typegraphs/rest.py +++ b/examples/typegraphs/rest.py @@ -1,8 +1,10 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.deno import DenoRuntime -from typegraph.graph.params import Auth +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph +from typegraph.graph.params import Auth, Cors from typegraph.providers.prisma import PrismaRuntime -from typegraph.graph.params import Cors +from typegraph.runtimes.deno import DenoRuntime @typegraph( @@ -67,8 +69,8 @@ def roadmap(g: Graph): "authorEmail": g.inherit(), "votes": g.inherit(), "bucket": {"connect": g.inherit()}, - } - } + }, + }, ), create_vote=db.create(vote), ) @@ -86,7 +88,7 @@ def roadmap(g: Graph): } } } - """ + """, ) g.rest( @@ -104,5 +106,5 @@ def roadmap(g: Graph): } } } - """ + """, ) diff --git a/examples/typegraphs/rest.ts b/examples/typegraphs/rest.ts index c99aa80abb..60672ac706 100644 --- a/examples/typegraphs/rest.ts +++ b/examples/typegraphs/rest.ts @@ -20,7 +20,7 @@ typegraph( name: t.string(), ideas: t.list(g.ref("idea")), }, - { name: "bucket" } + { name: "bucket" }, ); const idea = t.struct( @@ -31,7 +31,7 @@ typegraph( votes: t.list(g.ref("vote")), bucket: g.ref("bucket"), }, - { name: "idea" } + { name: "idea" }, ); const vote = t.struct( @@ -42,14 +42,14 @@ typegraph( desc: t.string().optional(), idea: g.ref("idea"), }, - { name: "vote" } + { name: "vote" }, ); g.auth(Auth.basic(["andim"])); const admins = deno.policy( "admins", - "(_args, { context }) => !!context.username" + "(_args, { context }) => !!context.username", ); g.expose( @@ -68,7 +68,7 @@ typegraph( }), create_vote: db.create(vote), }, - pub + pub, ); g.rest( @@ -84,7 +84,7 @@ typegraph( } } } - ` + `, ); g.rest( @@ -102,7 +102,7 @@ typegraph( } } } - ` + `, ); - } + }, ); diff --git a/examples/typegraphs/roadmap-policies.py b/examples/typegraphs/roadmap-policies.py index 791355c2b6..9e740dd923 100644 --- a/examples/typegraphs/roadmap-policies.py +++ b/examples/typegraphs/roadmap-policies.py @@ -1,8 +1,10 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.deno import DenoRuntime -from typegraph.graph.params import Auth +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph +from typegraph.graph.params import Auth, Cors from typegraph.providers.prisma import PrismaRuntime -from typegraph.graph.params import Cors +from typegraph.runtimes.deno import DenoRuntime @typegraph( diff --git a/examples/typegraphs/roadmap-policies.ts b/examples/typegraphs/roadmap-policies.ts index e526e195e3..7902f05033 100644 --- a/examples/typegraphs/roadmap-policies.ts +++ b/examples/typegraphs/roadmap-policies.ts @@ -21,7 +21,7 @@ typegraph( name: t.string(), ideas: t.list(g.ref("idea")), }, - { name: "bucket" } + { name: "bucket" }, ); const idea = t.struct( @@ -32,7 +32,7 @@ typegraph( votes: t.list(g.ref("vote")), bucket: g.ref("bucket"), }, - { name: "idea" } + { name: "idea" }, ); const vote = t.struct( @@ -43,14 +43,14 @@ typegraph( desc: t.string().optional(), idea: g.ref("idea"), }, - { name: "vote" } + { name: "vote" }, ); g.auth(Auth.basic(["andim"])); const admins = deno.policy( "admins", - "(_args, { context }) => !!context.username" + "(_args, { context }) => !!context.username", ); g.expose( @@ -61,7 +61,7 @@ typegraph( create_idea: db.create(idea), create_vote: db.create(vote), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/roadmap-random.py b/examples/typegraphs/roadmap-random.py index ef07107f5a..2332c621f3 100644 --- a/examples/typegraphs/roadmap-random.py +++ b/examples/typegraphs/roadmap-random.py @@ -1,8 +1,12 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes.random import RandomRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph # skip:start from typegraph.graph.params import Cors +from typegraph.runtimes.random import RandomRuntime + # skip:end @@ -18,28 +22,28 @@ def roadmap(g: Graph): { "id": t.integer(as_id=True), "name": t.string(), - } + }, ) _vote = t.struct( { "id": t.uuid(), "authorEmail": t.email(), "importance": t.enum( - ["medium", "important", "critical"] + ["medium", "important", "critical"], ).optional(), # `enum_` is also a shorthand over `t.string` "createdAt": t.datetime(), "desc": t.string().optional(), # makes it optional - } + }, ) # skip:end idea = t.struct( { "id": t.uuid( - as_id=True + as_id=True, ), # uuid is just a shorthand alias for `t.string({format: "uuid"})` "name": t.string(), "authorEmail": t.email(), # another string shorthand - } + }, ) random = RandomRuntime(reset=None, seed=1) pub = Policy.public() diff --git a/examples/typegraphs/roadmap-random.ts b/examples/typegraphs/roadmap-random.ts index 02172f617d..628c666344 100644 --- a/examples/typegraphs/roadmap-random.ts +++ b/examples/typegraphs/roadmap-random.ts @@ -34,5 +34,5 @@ typegraph( const random = new RandomRuntime({ seed: 1 }); const pub = Policy.public(); g.expose({ get_idea: random.gen(idea) }, pub); - } + }, ); diff --git a/examples/typegraphs/runtimes.py b/examples/typegraphs/runtimes.py index 64983d2039..af3f307e08 100644 --- a/examples/typegraphs/runtimes.py +++ b/examples/typegraphs/runtimes.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, t, Graph +from typegraph import Graph, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes import HttpRuntime @@ -13,5 +16,7 @@ def runtimes(g: Graph): # same func as above http.get( - "/flip_coin", t.struct({}), t.enum(["head", "tail"]) + "/flip_coin", + t.struct({}), + t.enum(["head", "tail"]), ) # implicitly attaches runtime to all types diff --git a/examples/typegraphs/temporal.py b/examples/typegraphs/temporal.py index 571d2596fa..32037a7a68 100644 --- a/examples/typegraphs/temporal.py +++ b/examples/typegraphs/temporal.py @@ -1,7 +1,11 @@ -from typegraph import t, typegraph, Policy, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +import os + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.providers.temporal import TemporalRuntime -import os @typegraph( diff --git a/examples/typegraphs/temporal.ts b/examples/typegraphs/temporal.ts index b56afac5ea..89ff00055c 100644 --- a/examples/typegraphs/temporal.ts +++ b/examples/typegraphs/temporal.ts @@ -1,18 +1,9 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Policy, t, typegraph } from "@typegraph/sdk/index.ts"; import { TemporalRuntime } from "@typegraph/sdk/providers/temporal.ts"; - -// skip:start -function getEnvVariable( - key: string, - defaultValue?: string -): string | undefined { - const glob = globalThis as any; - const value = glob?.process - ? glob?.process.env?.[key] - : glob?.Deno.env.get(key); - return value ?? defaultValue; -} -// skip:end +import process from "process"; typegraph( { @@ -29,7 +20,7 @@ typegraph( namespaceSecret: "NAMESPACE", }); - const workflow_id = getEnvVariable("ID_FROM_ENV"); + const workflow_id = process.env["ID_FROM_ENV"]; const arg = t.struct({ some_field: t.string() }); g.expose( @@ -41,7 +32,7 @@ typegraph( ? temporal.describeWorkflow().reduce({ workflow_id }) : temporal.describeWorkflow(), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/triggers.py b/examples/typegraphs/triggers.py index 851ca038e8..37993ead34 100644 --- a/examples/typegraphs/triggers.py +++ b/examples/typegraphs/triggers.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.runtimes.http import HttpRuntime diff --git a/examples/typegraphs/triggers.ts b/examples/typegraphs/triggers.ts index ca4f92ba23..ac82710602 100644 --- a/examples/typegraphs/triggers.ts +++ b/examples/typegraphs/triggers.ts @@ -7,6 +7,7 @@ import { HttpRuntime } from "@typegraph/sdk/runtimes/http.ts"; typegraph( { name: "triggers", + // skip:next-line cors: { allowOrigin: ["https://metatype.dev", "http://localhost:3000"] }, }, (g) => { @@ -21,7 +22,7 @@ typegraph( path: "/flip_coin", }), }, - pub + pub, ); - } + }, ); diff --git a/examples/typegraphs/typecheck.py b/examples/typegraphs/typecheck.py index fb66b002b3..8b5ae9103d 100644 --- a/examples/typegraphs/typecheck.py +++ b/examples/typegraphs/typecheck.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, t, Graph +from typegraph import Graph, t, typegraph from typegraph.graph.params import Cors @@ -13,15 +16,15 @@ def typecheck(g: Graph): "name": t.string(max=200), "age": t.optional(t.integer()), # or t.integer().optional() "messages": t.list(t.struct({"text": t.string(), "sentAt": t.datetime()})), - } + }, ) # the typegate will accept data as follow - { + _ = { "name": "Alan", "age": 28, "messages": [{"text": "Hello!", "sentAt": "2022-12-28T01:11:10Z"}], } # and reject invalid data - {"name": "Turing", "messages": [{"sentAt": 1}]} + _ = {"name": "Turing", "messages": [{"sentAt": 1}]} diff --git a/examples/typegraphs/types.py b/examples/typegraphs/types.py index ea01834206..c4f644b4eb 100644 --- a/examples/typegraphs/types.py +++ b/examples/typegraphs/types.py @@ -1,5 +1,8 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # skip:start -from typegraph import typegraph, t, Graph +from typegraph import Graph, t, typegraph from typegraph.graph.params import Cors @@ -17,8 +20,8 @@ def types(g: Graph): { "model": t.string(), "name": t.string().optional(), - } - ) + }, + ), ), - } + }, ) diff --git a/examples/typegraphs/union-either.py b/examples/typegraphs/union-either.py new file mode 100644 index 0000000000..2a01f47ee8 --- /dev/null +++ b/examples/typegraphs/union-either.py @@ -0,0 +1,72 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +# skip:start +from typegraph import Graph, Policy, t, typegraph +from typegraph.graph.params import Cors +from typegraph.runtimes.deno import DenoRuntime + + +# skip:end +@typegraph( + # skip:start + cors=Cors(allow_origin=["https://metatype.dev", "http://localhost:3000"]), + # skip:end +) +def union_either(g: Graph): + deno = DenoRuntime() + members = [ + t.string().rename("scalar_1"), + t.integer().rename("scalar_2"), + t.struct( + { + "field1": t.string(), + }, + ).rename("comp_1"), + t.struct( + { + "field2": t.string(), + }, + ).rename("comp_2"), + t.list(t.string()).rename("scalar_list"), + # # FIXME: list of composites is broken + # t.list( + # t.struct( + # { + # "listField": t.string(), + # } + # ), + # ), + ] + g.expose( + Policy.public(), + outer=deno.func( + t.struct(), + t.struct( + { + "union": t.union(members), + "either": t.either(members), + "unionList": t.list(t.union(members)), + }, + ), + code="""() => ({ + either: { + field1: "1", + }, + union: { + field2: "2", + }, + unionList: [ + "scalar", + 2, + { + field1: "1", + }, + { + field2: "2", + }, + ["scalar_1", "scalar_2"], + ], + })""", + ), + ) diff --git a/examples/typegraphs/union-either.ts b/examples/typegraphs/union-either.ts new file mode 100644 index 0000000000..ec4d93bda8 --- /dev/null +++ b/examples/typegraphs/union-either.ts @@ -0,0 +1,65 @@ +// skip:start +import { Policy, t, typegraph } from "@typegraph/sdk/index.ts"; +import { DenoRuntime } from "@typegraph/sdk/runtimes/deno.ts"; + +// skip:end +typegraph( + { + name: "union-either", + // skip:next-line + cors: { allowOrigin: ["https://metatype.dev", "http://localhost:3000"] }, + }, + (g) => { + const deno = new DenoRuntime(); + const members = [ + t.string().rename("scalar_1"), + t.integer().rename("scalar_2"), + t.struct({ + field1: t.string(), + }).rename("comp_1"), + t.struct({ + field2: t.string(), + }).rename("comp_2"), + t.list(t.string()).rename("scalar_list"), + /* FIXME: list of composites is broken + t.list( + t.struct({ + listField: t.string(), + }), + ), */ + ]; + g.expose({ + outer: deno.func( + // input + t.struct({}), + // output + t.struct({ + union: t.union(members), + either: t.either(members), + unionList: t.list(t.union(members)), + }), + { + code: () => ({ + either: { + field1: "1", + }, + union: { + field2: "2", + }, + unionList: [ + "scalar", + 2, + { + field1: "1", + }, + { + field2: "2", + }, + ["scalar_1", "scalar_2"], + ], + }), + }, + ), + }, Policy.public()); + }, +); diff --git a/ghjk.ts b/ghjk.ts index 324ada15b9..67d63a6321 100644 --- a/ghjk.ts +++ b/ghjk.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // @ts-nocheck: Deno file import { METATYPE_VERSION, PUBLISHED_VERSION } from "./tools/consts.ts"; @@ -57,6 +60,10 @@ env("_python").install( packageName: "ruff", version: "0.4.7", })[0], + ports.npmi({ + packageName: "pyright", + version: "1.1.388", + })[0], ports.pipi({ packageName: "poetry", version: "1.8.3", diff --git a/pyproject.toml b/pyproject.toml index 3286edbfcd..f1ff2e17d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,3 +23,24 @@ pyyaml = "^6.0.1" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" + +[tool.ruff.lint] +select = [ + # pycodestyle + "E", + # Pyflakes + "F", + # pyupgrade + "UP", + # flake8-bugbear + "B", + # flake8-simplify + "SIM", + # isort + "I", +] +ignore = [ + # line too long + "E501", + "UP013" +] diff --git a/src/common/src/typegraph/validator/injection.rs b/src/common/src/typegraph/validator/injection.rs index cfdee4c4c2..09bd9cf381 100644 --- a/src/common/src/typegraph/validator/injection.rs +++ b/src/common/src/typegraph/validator/injection.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use indexmap::IndexMap; use serde_json::Value; diff --git a/src/meta-cli/src/cli/fdk_template.rs b/src/meta-cli/src/cli/fdk_template.rs index 7d363f114d..b7c8529111 100644 --- a/src/meta-cli/src/cli/fdk_template.rs +++ b/src/meta-cli/src/cli/fdk_template.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use async_trait::async_trait; use clap::{Parser, ValueEnum}; diff --git a/src/meta-cli/src/utils/shell_words.rs b/src/meta-cli/src/utils/shell_words.rs index 5c00018f2e..4e2df60909 100644 --- a/src/meta-cli/src/utils/shell_words.rs +++ b/src/meta-cli/src/utils/shell_words.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // no-auto-license-header /* diff --git a/src/meta-cli/tests/graphs/nested/graph0.py b/src/meta-cli/tests/graphs/nested/graph0.py index e69de29bb2..8e55187b7a 100644 --- a/src/meta-cli/tests/graphs/nested/graph0.py +++ b/src/meta-cli/tests/graphs/nested/graph0.py @@ -0,0 +1,2 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 diff --git a/src/meta-lsp/ts-language-server/src/analysis/diagnostics/context.ts b/src/meta-lsp/ts-language-server/src/analysis/diagnostics/context.ts index 71322451ee..ad90f9619e 100644 --- a/src/meta-lsp/ts-language-server/src/analysis/diagnostics/context.ts +++ b/src/meta-lsp/ts-language-server/src/analysis/diagnostics/context.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Diagnostic, DiagnosticSeverity } from "vscode-languageserver-types"; import { ScopeManager } from "../typescript-semantic/scope.ts"; import { diff --git a/src/meta-lsp/ts-language-server/src/analysis/exposed_function.ts b/src/meta-lsp/ts-language-server/src/analysis/exposed_function.ts index dc82d9e0c2..712996a101 100644 --- a/src/meta-lsp/ts-language-server/src/analysis/exposed_function.ts +++ b/src/meta-lsp/ts-language-server/src/analysis/exposed_function.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Parser } from "../parser.ts"; import { ModuleDiagnosticsContext } from "./diagnostics/context.ts"; import { InputType, Runtime } from "./runtimes/mod.ts"; diff --git a/src/meta-lsp/ts-language-server/src/analysis/runtimes/mod.ts b/src/meta-lsp/ts-language-server/src/analysis/runtimes/mod.ts index 29b1f2168b..f382675346 100644 --- a/src/meta-lsp/ts-language-server/src/analysis/runtimes/mod.ts +++ b/src/meta-lsp/ts-language-server/src/analysis/runtimes/mod.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Parser } from "../../parser.ts"; import { ModuleDiagnosticsContext } from "../diagnostics/context.ts"; import { TgType } from "../typescript-semantic/semantic-node.ts"; @@ -8,7 +11,7 @@ export type InputType = { }; export abstract class Runtime { - protected constructor(public node: Parser.SyntaxNode) { } + protected constructor(public node: Parser.SyntaxNode) {} static analyze( node: Parser.SyntaxNode, diff --git a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/scope.ts b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/scope.ts index 6f0d87bf4c..490e403769 100644 --- a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/scope.ts +++ b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/scope.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Parser, queryMatches } from "../../parser.ts"; import { ModuleDiagnosticsContext } from "../diagnostics/context.ts"; diff --git a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/semantic-node.ts b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/semantic-node.ts index 864f35a100..e563519dea 100644 --- a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/semantic-node.ts +++ b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/semantic-node.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Parser } from "../../parser.ts"; import { ModuleDiagnosticsContext } from "../diagnostics/context.ts"; import { asMethodCall } from "./utils/mod.ts"; @@ -28,7 +31,7 @@ export type TgTypeName = // ]; export abstract class SemanticNode { - protected constructor(public node: Parser.SyntaxNode) { } + protected constructor(public node: Parser.SyntaxNode) {} asType(): TgType | null { if (this instanceof TgType) { @@ -54,9 +57,10 @@ export abstract class TgType extends SemanticNode { } toString(): string { - return `TgType(${this.type}${this.children - .map((c) => `, ${c.key} => ${c.type.toString()}`) - .join("") + return `TgType(${this.type}${ + this.children + .map((c) => `, ${c.key} => ${c.type.toString()}`) + .join("") })`; } diff --git a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/symbols.ts b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/symbols.ts index 02f75a3658..f810e8065a 100644 --- a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/symbols.ts +++ b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/symbols.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { ScopeManager } from "./scope.ts"; import { SemanticNode } from "./semantic-node.ts"; @@ -9,7 +12,7 @@ export abstract class Symbol { public name: string, public node: Parser.SyntaxNode, private scopeManager: ScopeManager, - ) { } + ) {} } export class ImportSymbol extends Symbol { diff --git a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/utils/mod.ts b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/utils/mod.ts index 387d64c9f0..c6f23ba7cd 100644 --- a/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/utils/mod.ts +++ b/src/meta-lsp/ts-language-server/src/analysis/typescript-semantic/utils/mod.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Parser } from "../../../parser.ts"; export type MethodCall = { diff --git a/src/meta-lsp/ts-language-server/src/lsp_client.ts b/src/meta-lsp/ts-language-server/src/lsp_client.ts index c9e7848ef6..c7518160e6 100644 --- a/src/meta-lsp/ts-language-server/src/lsp_client.ts +++ b/src/meta-lsp/ts-language-server/src/lsp_client.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import child_process from "node:child_process"; import { JSONRPCEndpoint, LspClient } from "ts-lsp-client"; diff --git a/src/meta-lsp/ts-language-server/src/parser.ts b/src/meta-lsp/ts-language-server/src/parser.ts index 8fdc918c46..7de6247d5f 100644 --- a/src/meta-lsp/ts-language-server/src/parser.ts +++ b/src/meta-lsp/ts-language-server/src/parser.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import Parser = require("tree-sitter"); import { typescript as TypeScript } from "tree-sitter-typescript"; import { diff --git a/src/meta-lsp/ts-language-server/src/server.ts b/src/meta-lsp/ts-language-server/src/server.ts index d05c00b2ae..7a379f1bd6 100644 --- a/src/meta-lsp/ts-language-server/src/server.ts +++ b/src/meta-lsp/ts-language-server/src/server.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { LspServer } from "./server/index.ts"; const server = new LspServer(["deno", "lsp"]); diff --git a/src/meta-lsp/ts-language-server/src/server/documents.ts b/src/meta-lsp/ts-language-server/src/server/documents.ts index 40b2582844..11a0534c84 100644 --- a/src/meta-lsp/ts-language-server/src/server/documents.ts +++ b/src/meta-lsp/ts-language-server/src/server/documents.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Connection, TextDocuments } from "vscode-languageserver"; import { TextDocument } from "vscode-languageserver-textdocument"; import { ClientCapabilities } from "./mod.ts"; diff --git a/src/meta-lsp/ts-language-server/src/server/index.ts b/src/meta-lsp/ts-language-server/src/server/index.ts index 93166a06ca..e71540edd6 100644 --- a/src/meta-lsp/ts-language-server/src/server/index.ts +++ b/src/meta-lsp/ts-language-server/src/server/index.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { LspClient } from "ts-lsp-client"; import { createLspClient } from "../lsp_client.ts"; import { diff --git a/src/meta-lsp/ts-language-server/src/types.ts b/src/meta-lsp/ts-language-server/src/types.ts index 4dfd84a17e..bbfd219d3d 100644 --- a/src/meta-lsp/ts-language-server/src/types.ts +++ b/src/meta-lsp/ts-language-server/src/types.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Parser } from "../parser.ts"; export type TypegraphDefinition = { diff --git a/src/meta-lsp/ts-language-server/tests/expose_analysis.test.ts b/src/meta-lsp/ts-language-server/tests/expose_analysis.test.ts index d9660c561e..0e312c33e4 100644 --- a/src/meta-lsp/ts-language-server/tests/expose_analysis.test.ts +++ b/src/meta-lsp/ts-language-server/tests/expose_analysis.test.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { typescript } from "tree-sitter-typescript"; import { findTypegraphDefinitions, diff --git a/src/meta-lsp/ts-language-server/tests/typegraphs/deno_types.ts b/src/meta-lsp/ts-language-server/tests/typegraphs/deno_types.ts index b2ae684dc0..1e36f95d1a 100644 --- a/src/meta-lsp/ts-language-server/tests/typegraphs/deno_types.ts +++ b/src/meta-lsp/ts-language-server/tests/typegraphs/deno_types.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // TODO use deployed version of metatype in the import map import { Policy, t, typegraph } from "npm:@typegraph/sdk@0.2.4"; import { PythonRuntime } from "npm:@typegraph/sdk@0.2.4/runtimes/python"; diff --git a/src/meta-lsp/ts-language-server/tests/utils.ts b/src/meta-lsp/ts-language-server/tests/utils.ts index e69de29bb2..23d9e15ccf 100644 --- a/src/meta-lsp/ts-language-server/tests/utils.ts +++ b/src/meta-lsp/ts-language-server/tests/utils.ts @@ -0,0 +1,2 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 diff --git a/src/meta-lsp/vscode-metatype-support/src/extension.ts b/src/meta-lsp/vscode-metatype-support/src/extension.ts index 2cf821b9ed..c0a373c0af 100644 --- a/src/meta-lsp/vscode-metatype-support/src/extension.ts +++ b/src/meta-lsp/vscode-metatype-support/src/extension.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { join } from "node:path"; import { ExtensionContext } from "vscode"; diff --git a/src/metagen/fixtures/tg.ts b/src/metagen/fixtures/tg.ts index 12fbe189ba..e0e4dae44e 100644 --- a/src/metagen/fixtures/tg.ts +++ b/src/metagen/fixtures/tg.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Policy, t, typegraph } from "@typegraph/sdk/index.ts"; import { WasmRuntime } from "@typegraph/sdk/runtimes/wasm.ts"; diff --git a/src/metagen/src/client_py/static/client.py b/src/metagen/src/client_py/static/client.py index d943e26f9f..445b4048a3 100644 --- a/src/metagen/src/client_py/static/client.py +++ b/src/metagen/src/client_py/static/client.py @@ -1,9 +1,12 @@ -import typing +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import dataclasses as dc +import http.client as http_c import json -import urllib.request as request +import typing import urllib.error -import http.client as http_c +from urllib import request def selection_to_nodes( @@ -15,9 +18,9 @@ def selection_to_nodes( flags = selection.get("_") if flags is not None and not isinstance(flags, SelectionFlags): raise Exception( - f"selection field '_' should be of type SelectionFlags but found {type(flags)}" + f"selection field '_' should be of type SelectionFlags but found {type(flags)}", ) - select_all = True if flags is not None and flags.select_all else False + select_all = flags is not None and flags.select_all found_nodes = set(selection.keys()) for node_name, meta_fn in metas.items(): found_nodes.discard(node_name) @@ -45,7 +48,7 @@ def selection_to_nodes( continue if isinstance(instance_selection, Alias): raise Exception( - f"nested Alias node discovered at {parent_path}.{instance_name}" + f"nested Alias node discovered at {parent_path}.{instance_name}", ) instance_args: typing.Optional[NodeArgs] = None @@ -60,7 +63,7 @@ def selection_to_nodes( raise Exception( f"node at {parent_path}.{instance_name} is a node that " + "requires arguments " - + f"but detected argument is typeof {type(arg)}" + + f"but detected argument is typeof {type(arg)}", ) # convert arg dict to NodeArgs @@ -70,7 +73,7 @@ def selection_to_nodes( ty_name = expected_args.pop(key) if ty_name is None: raise Exception( - f"unexpected argument ${key} at {parent_path}.{instance_name}" + f"unexpected argument ${key} at {parent_path}.{instance_name}", ) instance_args[key] = NodeArgValue(ty_name, val) @@ -85,7 +88,7 @@ def selection_to_nodes( raise Exception( f"node at {parent_path}.{instance_name} is a composite " + "that requires an argument object " - + f"but selection is typeof {type(sub_selections)}" + + f"but selection is typeof {type(sub_selections)}", ) sub_selections = sub_selections[1] @@ -112,7 +115,7 @@ def selection_to_nodes( if meta.sub_nodes is not None: if meta.variants is not None: raise Exception( - "unreachable: union/either NodeMetas can't have subnodes" + "unreachable: union/either NodeMetas can't have subnodes", ) sub_nodes = selection_to_nodes( typing.cast("SelectionErased", sub_selections), @@ -148,7 +151,7 @@ def selection_to_nodes( instance_name="__typename", args=None, sub_nodes=None, - ) + ), ) union_selections[variant_ty] = nodes @@ -259,8 +262,7 @@ def get(self, key: str) -> PlaceholderValue: class Alias(typing.Generic[SelectionT]): - """ - Request multiple instances of a single node under different + """Request multiple instances of a single node under different aliases. """ @@ -277,7 +279,10 @@ def __init__(self, **aliases: SelectionT): None, ] CompositeSelectNoArgs = typing.Union[ - SelectionT, Alias[SelectionT], typing.Literal[False], None + SelectionT, + Alias[SelectionT], + typing.Literal[False], + None, ] CompositeSelectArgs = typing.Union[ typing.Tuple[typing.Union[ArgT, PlaceholderArgs], SelectionT], @@ -367,7 +372,7 @@ def convert_query_node_gql( gql_ty = ty_to_gql_ty_map[variant_ty] if gql_ty is None: raise Exception( - f"unreachable: no graphql type found for variant {variant_ty}" + f"unreachable: no graphql type found for variant {variant_ty}", ) gql_ty = gql_ty.strip("!") @@ -380,9 +385,9 @@ def convert_query_node_gql( out += f" {{ {sub_node_list}}}" elif isinstance(node.sub_nodes, list): sub_node_list = "" - for node in node.sub_nodes: + for sub_node in node.sub_nodes: sub_node_list += ( - f"{convert_query_node_gql(ty_to_gql_ty_map, node, variables)} " + f"{convert_query_node_gql(ty_to_gql_ty_map, sub_node, variables)} " ) out += f" {{ {sub_node_list}}}" return out @@ -402,7 +407,7 @@ def __init__( def build_gql( self, query: typing.Mapping[str, SelectNode], - ty: typing.Union[typing.Literal["query"], typing.Literal["mutation"]], + ty: typing.Literal["query", "mutation"], name: str = "", ): variables: typing.Dict[str, NodeArgValue] = {} @@ -436,7 +441,7 @@ def build_req( { "accept": "application/json", "content-type": "application/json", - } + }, ) data = json.dumps({"query": doc, "variables": variables}).encode("utf-8") return GraphQLRequest( @@ -468,8 +473,11 @@ def fetch( try: with request.urlopen( request.Request( - url=req.addr, method=req.method, headers=req.headers, data=req.body - ) + url=req.addr, + method=req.method, + headers=req.headers, + data=req.body, + ), ) as res: http_res: http_c.HTTPResponse = res return self.handle_response( @@ -478,7 +486,7 @@ def fetch( status=http_res.status, body=http_res.read(), headers={key: val for key, val in http_res.headers.items()}, - ) + ), ) except request.HTTPError as res: return self.handle_response( @@ -487,10 +495,10 @@ def fetch( status=res.status or 599, body=res.read(), headers={key: val for key, val in res.headers.items()}, - ) + ), ) except urllib.error.URLError as err: - raise Exception(f"URL error: {err.reason}") + raise Exception(f"URL error: {err.reason}") from err def query( self, @@ -499,7 +507,9 @@ def query( name: str = "", ) -> typing.Dict[str, Out]: doc, variables = self.build_gql( - {key: val for key, val in inp.items()}, "query", name + {key: val for key, val in inp.items()}, + "query", + name, ) return self.fetch(doc, variables, opts) @@ -510,7 +520,9 @@ def mutation( name: str = "", ) -> typing.Dict[str, Out]: doc, variables = self.build_gql( - {key: val for key, val in inp.items()}, "mutation", name + {key: val for key, val in inp.items()}, + "mutation", + name, ) return self.fetch(doc, variables, opts) @@ -534,7 +546,7 @@ def __init__( self, transport: GraphQLTransportBase, fun: typing.Callable[[PreparedArgs], typing.Mapping[str, SelectNode[Out]]], - ty: typing.Union[typing.Literal["query"], typing.Literal["mutation"]], + ty: typing.Literal["query", "mutation"], name: str = "", ): dry_run_node = fun(PreparedArgs()) @@ -564,7 +576,7 @@ def __init__( self, transport: GraphQLTransportUrlib, fun: typing.Callable[[PreparedArgs], typing.Mapping[str, SelectNode[Out]]], - ty: typing.Union[typing.Literal["query"], typing.Literal["mutation"]], + ty: typing.Literal["query", "mutation"], name: str = "", ): super().__init__(transport, fun, ty, name) @@ -589,10 +601,14 @@ def __init__(self, ty_to_gql_ty_map: typing.Dict[str, str]): self.ty_to_gql_ty_map = ty_to_gql_ty_map def graphql_sync( - self, addr: str, opts: typing.Optional[GraphQLTransportOptions] = None + self, + addr: str, + opts: typing.Optional[GraphQLTransportOptions] = None, ): return GraphQLTransportUrlib( - addr, opts or GraphQLTransportOptions({}), self.ty_to_gql_ty_map + addr, + opts or GraphQLTransportOptions({}), + self.ty_to_gql_ty_map, ) diff --git a/src/metagen/src/client_ts/static/mod.ts b/src/metagen/src/client_ts/static/mod.ts index 3c7ba074fa..3a075fb461 100644 --- a/src/metagen/src/client_ts/static/mod.ts +++ b/src/metagen/src/client_ts/static/mod.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + function _selectionToNodeSet( selection: Selection, metas: [string, () => NodeMeta][], diff --git a/src/metagen/src/fdk_substantial/mod.rs b/src/metagen/src/fdk_substantial/mod.rs index 494d76ee87..26f80816ea 100644 --- a/src/metagen/src/fdk_substantial/mod.rs +++ b/src/metagen/src/fdk_substantial/mod.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // TODO: keyword filtering use crate::interlude::*; diff --git a/src/metagen/src/fdk_substantial/static/substantial.py b/src/metagen/src/fdk_substantial/static/substantial.py index 621b0bdb4d..1a64363118 100644 --- a/src/metagen/src/fdk_substantial/static/substantial.py +++ b/src/metagen/src/fdk_substantial/static/substantial.py @@ -1,6 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from datetime import timedelta -from typing import Any, Callable, Optional from types import RetryStrategy +from typing import Any, Callable, Optional class Context: diff --git a/src/metagen/src/fdk_substantial/static/types.py b/src/metagen/src/fdk_substantial/static/types.py index e10d852ca0..af87fe6058 100644 --- a/src/metagen/src/fdk_substantial/static/types.py +++ b/src/metagen/src/fdk_substantial/static/types.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from dataclasses import dataclass from typing import Union diff --git a/src/metagen/src/fdk_substantial/static/workflow.py b/src/metagen/src/fdk_substantial/static/workflow.py index 285844fa3c..377591f45a 100644 --- a/src/metagen/src/fdk_substantial/static/workflow.py +++ b/src/metagen/src/fdk_substantial/static/workflow.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from substantial import workflow, Context # noqa from substantial.types import RetryStrategy # noqa diff --git a/src/metagen/src/fdk_typescript/static/fdk.ts b/src/metagen/src/fdk_typescript/static/fdk.ts index ef276b7d43..28361dcebc 100644 --- a/src/metagen/src/fdk_typescript/static/fdk.ts +++ b/src/metagen/src/fdk_typescript/static/fdk.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + export type Ctx = { parent?: Record; /** diff --git a/src/pyrt_wit_wire/main.py b/src/pyrt_wit_wire/main.py index 28689e3fc9..ef5c268929 100644 --- a/src/pyrt_wit_wire/main.py +++ b/src/pyrt_wit_wire/main.py @@ -1,10 +1,13 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import importlib import importlib.abc import importlib.machinery import importlib.util +import inspect import json import os -import inspect import sys import traceback import types @@ -42,7 +45,7 @@ class Ctx: def gql(self, query: str, variables: str) -> Any: data = json.loads( - hostcall("gql", json=json.dumps({"query": query, "variables": variables})) + hostcall("gql", json=json.dumps({"query": query, "variables": variables})), ) return data["data"] @@ -57,24 +60,24 @@ def init(self, args: InitArgs): raise err except Exception as err: traceback.print_exc() - raise Err(InitError_Other(str(err))) + raise Err(InitError_Other(str(err))) from err return InitResponse(ok=True) def handle(self, req: HandleReq): handler = handlers.get(req.op_name) if handler is None: print( - f"no handler found for {req.op_name}, registered handlers: {[op for op in handlers]}" + f"no handler found for {req.op_name}, registered handlers: {[op for op in handlers]}", ) raise Err(HandleErr_NoHandler()) try: return handler.handle(req) except json.JSONDecodeError as err: traceback.print_exc() - raise Err(HandleErr_InJsonErr(str(err))) + raise Err(HandleErr_InJsonErr(str(err))) from err except Exception as err: traceback.print_exc() - raise Err(HandleErr_HandlerErr(str(err))) + raise Err(HandleErr_HandlerErr(str(err))) from err class ErasedHandler: @@ -103,19 +106,19 @@ def op_to_handler(op: MatInfo) -> ErasedHandler: modules_raw = data_parsed["sources"] finder = ThePathFinder( - {os.path.join(prefix, path): modules_raw[path] for path in modules_raw} + {os.path.join(prefix, path): modules_raw[path] for path in modules_raw}, ) sys.meta_path.append(finder) try: module = importlib.import_module( ThePathFinder.path_to_module( - os.path.join(prefix, data_parsed["root_src_path"]) - ) + os.path.join(prefix, data_parsed["root_src_path"]), + ), ) except Exception as err: finder.debug() - raise Err(InitError_Other(f"{err}")) + raise Err(InitError_Other(f"{err}")) from err return ErasedHandler(handler_fn=getattr(module, data_parsed["func_name"])) elif data_parsed["ty"] == "lambda": fn = eval(data_parsed["source"]) @@ -127,7 +130,7 @@ def op_to_handler(op: MatInfo) -> ErasedHandler: class ThePathFinder(importlib.abc.MetaPathFinder): @staticmethod def path_to_module(path: str): - return os.path.splitext((os.path.normpath(path)))[0].replace("/", ".") + return os.path.splitext(os.path.normpath(path))[0].replace("/", ".") def debug(self): print("= Loaded modules summary == == == ==") @@ -165,7 +168,10 @@ def find_spec(self, fullname: str, _path, target=None): # our fake loader will give out the raw module src # when asked FakeFileLoader( - fullname, path, src=self._mods_raw[path], is_package=False + fullname, + path, + src=self._mods_raw[path], + is_package=False, ), ) # when one imports foo.bar.keg @@ -177,7 +183,8 @@ def find_spec(self, fullname: str, _path, target=None): if fullname in self._pkg_names: path = self._pkg_names[fullname] return importlib.util.spec_from_loader( - fullname, FakeFileLoader(fullname, path, src="", is_package=True) + fullname, + FakeFileLoader(fullname, path, src="", is_package=True), ) diff --git a/src/substantial/src/backends/fs.rs b/src/substantial/src/backends/fs.rs index f154dd7fa5..373c9e76c7 100644 --- a/src/substantial/src/backends/fs.rs +++ b/src/substantial/src/backends/fs.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use super::key_value::{Item, KeyValueBackend, KeyValueLike}; use anyhow::{Context, Result}; use chrono::{DateTime, Utc}; diff --git a/src/substantial/src/backends/key_value.rs b/src/substantial/src/backends/key_value.rs index be0d9a65c4..cd6cfce7ad 100644 --- a/src/substantial/src/backends/key_value.rs +++ b/src/substantial/src/backends/key_value.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use super::{Backend, BackendMetadataWriter, NextRun}; use crate::{ converters::{MetadataEvent, MetadataPayload}, diff --git a/src/substantial/src/backends/memory.rs b/src/substantial/src/backends/memory.rs index 40c2fa0912..0c23871968 100644 --- a/src/substantial/src/backends/memory.rs +++ b/src/substantial/src/backends/memory.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use super::key_value::{Item, KeyValueBackend, KeyValueLike}; use anyhow::Result; use chrono::{DateTime, Utc}; diff --git a/src/substantial/src/backends/mod.rs b/src/substantial/src/backends/mod.rs index f6541f64ff..6a4a8841f6 100644 --- a/src/substantial/src/backends/mod.rs +++ b/src/substantial/src/backends/mod.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; diff --git a/src/substantial/src/backends/redis.rs b/src/substantial/src/backends/redis.rs index 72a4b5139e..cee8ff228e 100644 --- a/src/substantial/src/backends/redis.rs +++ b/src/substantial/src/backends/redis.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use std::sync::Mutex; use super::{Backend, BackendMetadataWriter, NextRun}; diff --git a/src/substantial/src/converters.rs b/src/substantial/src/converters.rs index 3c146ca090..ea346d1288 100644 --- a/src/substantial/src/converters.rs +++ b/src/substantial/src/converters.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use std::collections::HashMap; use anyhow::{bail, Context, Ok, Result}; diff --git a/src/substantial/src/lib.rs b/src/substantial/src/lib.rs index 89fe1cf78e..81b09d8a52 100644 --- a/src/substantial/src/lib.rs +++ b/src/substantial/src/lib.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + pub mod backends; pub mod converters; pub mod protocol; diff --git a/src/substantial/tests/mod.rs b/src/substantial/tests/mod.rs index 26e5469297..e218f9a887 100644 --- a/src/substantial/tests/mod.rs +++ b/src/substantial/tests/mod.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + #[cfg(test)] mod tests { use std::{collections::HashMap, fmt::Debug, path::PathBuf, thread::sleep, time::Duration}; diff --git a/src/typegate/src/runtimes/substantial/agent.ts b/src/typegate/src/runtimes/substantial/agent.ts index 78439d637c..4fe0b4b7eb 100644 --- a/src/typegate/src/runtimes/substantial/agent.ts +++ b/src/typegate/src/runtimes/substantial/agent.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { AddScheduleInput, Backend, @@ -16,7 +19,7 @@ import { } from "./types.ts"; import { RunId, WorkerManager } from "./workflow_worker_manager.ts"; -const logger = getLogger(); +const logger = getLogger(import.meta, "WARN"); export interface StdKwargs { taskContext: TaskContext; @@ -117,8 +120,6 @@ export class Agent { } async #nextIteration() { - logger.warn("POLL"); - // Note: in multiple agents/typegate scenario, a single node may acquire all runs for itself within a tick span // To account for that, keep this reasonable const acquireMaxForThisAgent = this.config.maxAcquirePerTick; @@ -169,7 +170,7 @@ export class Agent { lease_seconds: this.config.leaseLifespanSec, }); - logger.info(`Active leases: ${activeRunIds.join(", ")}`); + logger.debug(`Active leases: ${activeRunIds.join(", ")}`); const next = await Meta.substantial.agentNextRun({ backend: this.backend, @@ -342,7 +343,7 @@ export class Agent { ) { this.workerManager.destroyWorker(workflowName, runId); // ! - logger.warn(`Interrupt "${workflowName}": ${result}"`); + logger.debug(`Interrupt "${workflowName}": ${result}"`); // TODO: make all of these transactional diff --git a/src/typegate/src/runtimes/substantial/workflow_worker_manager.ts b/src/typegate/src/runtimes/substantial/workflow_worker_manager.ts index 62ff176d53..f40a299d4d 100644 --- a/src/typegate/src/runtimes/substantial/workflow_worker_manager.ts +++ b/src/typegate/src/runtimes/substantial/workflow_worker_manager.ts @@ -13,7 +13,7 @@ import { WorkerEventHandler, } from "./types.ts"; -const logger = getLogger(); +const logger = getLogger(import.meta, "WARN"); export type WorkerRecord = { worker: Worker; diff --git a/src/typegate/src/typegraph/mod.ts b/src/typegate/src/typegraph/mod.ts index aaec624dba..83b6a4ffcc 100644 --- a/src/typegate/src/typegraph/mod.ts +++ b/src/typegate/src/typegraph/mod.ts @@ -68,7 +68,9 @@ export class SecretManager { const value = this.secretOrNull(name); ensure( value != null, - `cannot find secret "${name}" for "${this.typegraphName}"`, + `cannot find secret "${name}" for "${this.typegraphName}". Availaible secrets include: [${ + Object.keys(this.secrets) + }]`, ); return value as string; } diff --git a/src/typegate/src/typegraphs/introspection.json b/src/typegate/src/typegraphs/introspection.json index 71997398b4..eeabf338f6 100644 --- a/src/typegate/src/typegraphs/introspection.json +++ b/src/typegate/src/typegraphs/introspection.json @@ -635,4 +635,4 @@ "randomSeed": null, "artifacts": {} } -} \ No newline at end of file +} diff --git a/src/typegate/src/typegraphs/introspection.py b/src/typegate/src/typegraphs/introspection.py index 1cef3dbe91..8b68f51b8d 100644 --- a/src/typegate/src/typegraphs/introspection.py +++ b/src/typegate/src/typegraphs/introspection.py @@ -13,21 +13,24 @@ @typegraph() def introspection(g: Graph): resolver_mat_id = runtimes.register_typegraph_materializer( - store, TypegraphOperation.RESOLVER + store, + TypegraphOperation.RESOLVER, ) if isinstance(resolver_mat_id, Err): raise Exception(resolver_mat_id.value) resolver_mat = Materializer(resolver_mat_id.value, effect=fx.read()) type_mat_id = runtimes.register_typegraph_materializer( - store, TypegraphOperation.GET_TYPE + store, + TypegraphOperation.GET_TYPE, ) if isinstance(type_mat_id, Err): raise Exception(type_mat_id.value) type_mat = Materializer(type_mat_id.value, effect=fx.read()) schema_mat_id = runtimes.register_typegraph_materializer( - store, TypegraphOperation.GET_SCHEMA + store, + TypegraphOperation.GET_SCHEMA, ) if isinstance(schema_mat_id, Err): raise Exception(schema_mat_id.value) @@ -66,7 +69,7 @@ def introspection(g: Graph): # injection test # "fieldName": g.proxy("field", lambda x: x.name), # "parent": g.proxy("type", lambda x: x.name), - } + }, ), t.list(input_value), resolver_mat, @@ -163,7 +166,9 @@ def introspection(g: Graph): public = Policy.public() get_type = t.func( - t.struct({"name": t.string()}), type.optional(), type_mat + t.struct({"name": t.string()}), + type.optional(), + type_mat, ).with_policy(public) g.expose(__type=get_type) diff --git a/src/typegate/src/typegraphs/prisma_migration.json b/src/typegate/src/typegraphs/prisma_migration.json index c44d6428ba..6d5d98040d 100644 --- a/src/typegate/src/typegraphs/prisma_migration.json +++ b/src/typegate/src/typegraphs/prisma_migration.json @@ -411,4 +411,4 @@ "randomSeed": null, "artifacts": {} } -} \ No newline at end of file +} diff --git a/src/typegate/src/typegraphs/prisma_migration.py b/src/typegate/src/typegraphs/prisma_migration.py index ddc96df004..5f7a80a21a 100644 --- a/src/typegate/src/typegraphs/prisma_migration.py +++ b/src/typegate/src/typegraphs/prisma_migration.py @@ -26,7 +26,8 @@ def prisma_migration(g: Graph): deno = DenoRuntime() admin_only = deno.policy( - "admin_only", code="(_args, { context }) => context.username === 'admin'" + "admin_only", + code="(_args, { context }) => context.username === 'admin'", ) g.auth(Auth.basic(["admin"])) diff --git a/src/typegate/src/typegraphs/typegate.json b/src/typegate/src/typegraphs/typegate.json index 8d1e0881a3..391ec404f0 100644 --- a/src/typegate/src/typegraphs/typegate.json +++ b/src/typegate/src/typegraphs/typegate.json @@ -956,4 +956,4 @@ "randomSeed": null, "artifacts": {} } -} \ No newline at end of file +} diff --git a/src/typegate/src/typegraphs/typegate.py b/src/typegate/src/typegraphs/typegate.py index 2b65527830..00e5ef827b 100644 --- a/src/typegate/src/typegraphs/typegate.py +++ b/src/typegate/src/typegraphs/typegate.py @@ -70,9 +70,9 @@ "repeatableread", "snapshot", "serializable", - ] + ], ).optional(), - } + }, ).optional(), }, name="PrismaBatchQuery", @@ -97,39 +97,45 @@ def typegate(g: Graph): deno = DenoRuntime() admin_only = deno.policy( - "admin_only", code="(_args, { context }) => context.username === 'admin'" + "admin_only", + code="(_args, { context }) => context.username === 'admin'", ) g.auth(Auth.basic(["admin"])) list_typegraphs_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.LIST_TYPEGRAPHS + store, + TypegateOperation.LIST_TYPEGRAPHS, ) if isinstance(list_typegraphs_mat_id, Err): raise Exception(list_typegraphs_mat_id.value) list_typegraphs_mat = Materializer(list_typegraphs_mat_id.value, effect=fx.read()) find_typegraph_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.FIND_TYPEGRAPH + store, + TypegateOperation.FIND_TYPEGRAPH, ) if isinstance(find_typegraph_mat_id, Err): raise Exception(find_typegraph_mat_id.value) find_typegraph_mat = Materializer(find_typegraph_mat_id.value, effect=fx.read()) add_typegraph_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.ADD_TYPEGRAPH + store, + TypegateOperation.ADD_TYPEGRAPH, ) if isinstance(add_typegraph_mat_id, Err): raise Exception(add_typegraph_mat_id.value) add_typegraph_mat = Materializer(add_typegraph_mat_id.value, effect=fx.create(True)) remove_typegraphs_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.REMOVE_TYPEGRAPHS + store, + TypegateOperation.REMOVE_TYPEGRAPHS, ) if isinstance(remove_typegraphs_mat_id, Err): raise Exception(remove_typegraphs_mat_id.value) remove_typegraphs_mat = Materializer( - remove_typegraphs_mat_id.value, effect=fx.delete(True) + remove_typegraphs_mat_id.value, + effect=fx.delete(True), ) serialized_typegraph_mat_id = runtimes.register_typegate_materializer( @@ -139,7 +145,8 @@ def typegate(g: Graph): if isinstance(serialized_typegraph_mat_id, Err): raise Exception(serialized_typegraph_mat_id.value) serialized_typegraph_mat = Materializer( - serialized_typegraph_mat_id.value, effect=fx.read() + serialized_typegraph_mat_id.value, + effect=fx.read(), ) arg_info_by_path_id = runtimes.register_typegate_materializer( @@ -166,7 +173,7 @@ def typegate(g: Graph): "queryType": t.string(), "fn": t.string(), "argPaths": t.list(path), - } + }, ) shallow_type_info = t.struct( @@ -185,16 +192,16 @@ def typegate(g: Graph): type_info = shallow_type_info.extend( { "fields": t.list( - t.struct({"subPath": path, "termNode": g.ref("TypeInfo")}) + t.struct({"subPath": path, "termNode": g.ref("TypeInfo")}), ).optional(), - } + }, ).rename("TypeInfo") operation_parameter = t.struct( { "name": t.string(), "type": type_info, - } + }, ) operation_info = t.struct( @@ -215,7 +222,8 @@ def typegate(g: Graph): if isinstance(find_available_operations_mat_id, Err): raise Exception(find_available_operations_mat_id.value) find_list_queries_mat = Materializer( - find_available_operations_mat_id.value, effect=fx.read() + find_available_operations_mat_id.value, + effect=fx.read(), ) find_available_operations = t.func( # TODO filters: query/mutation @@ -235,8 +243,8 @@ def typegate(g: Graph): "name": t.string(), "as_id": t.boolean(), "type": shallow_type_info, - } - ) + }, + ), ), }, name="PrismaModelInfo", @@ -249,7 +257,8 @@ def typegate(g: Graph): if isinstance(find_prisma_models_mat_id, Err): raise Exception(find_prisma_models_mat_id.value) find_prisma_models_mat = Materializer( - find_prisma_models_mat_id.value, effect=fx.read() + find_prisma_models_mat_id.value, + effect=fx.read(), ) find_prisma_models = t.func( t.struct({"typegraph": t.string()}), @@ -259,7 +268,8 @@ def typegate(g: Graph): ) raw_prisma_read_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.RAW_PRISMA_READ + store, + TypegateOperation.RAW_PRISMA_READ, ) if isinstance(raw_prisma_read_mat_id, Err): raise Exception(raw_prisma_read_mat_id.value) @@ -269,7 +279,8 @@ def typegate(g: Graph): ) raw_prisma_create_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.RAW_PRISMA_CREATE + store, + TypegateOperation.RAW_PRISMA_CREATE, ) if isinstance(raw_prisma_create_mat_id, Err): raise Exception(raw_prisma_create_mat_id.value) @@ -279,7 +290,8 @@ def typegate(g: Graph): ) raw_prisma_update_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.RAW_PRISMA_UPDATE + store, + TypegateOperation.RAW_PRISMA_UPDATE, ) if isinstance(raw_prisma_update_mat_id, Err): raise Exception(raw_prisma_update_mat_id.value) @@ -289,7 +301,8 @@ def typegate(g: Graph): ) raw_prisma_delete_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.RAW_PRISMA_DELETE + store, + TypegateOperation.RAW_PRISMA_DELETE, ) if isinstance(raw_prisma_delete_mat_id, Err): raise Exception(raw_prisma_delete_mat_id.value) @@ -305,12 +318,13 @@ def typegate(g: Graph): # prisma runtime name "runtime": t.string(), "query": prisma_query, - } + }, ) raw_prisma_op_out = t.json() query_prisma_model_mat_id = runtimes.register_typegate_materializer( - store, TypegateOperation.QUERY_PRISMA_MODEL + store, + TypegateOperation.QUERY_PRISMA_MODEL, ) if isinstance(query_prisma_model_mat_id, Err): raise Exception(query_prisma_model_mat_id.value) @@ -322,7 +336,7 @@ def typegate(g: Graph): "model": t.string(), "offset": t.integer(), "limit": t.integer(), - } + }, ), t.struct( { @@ -332,12 +346,12 @@ def typegate(g: Graph): "name": t.string(), "as_id": t.boolean(), "type": shallow_type_info, - } - ) + }, + ), ), "rowCount": t.integer(), "data": t.list(t.json()), - } + }, ), Materializer(query_prisma_model_mat_id.value, effect=fx.read()), ) @@ -362,7 +376,7 @@ def typegate(g: Graph): "fromString": t.json(), "secrets": t.json(), "targetVersion": t.string(), - } + }, ), t.struct( { @@ -372,19 +386,19 @@ def typegate(g: Graph): { "type": t.enum(["info", "warning", "error"]), "text": t.string(), - } - ) + }, + ), ), "migrations": t.list( t.struct( { "runtime": t.string(), "migrations": t.string(), - } - ) + }, + ), ), "failure": t.json().optional(), - } + }, ), add_typegraph_mat, rate_calls=True, @@ -396,7 +410,10 @@ def typegate(g: Graph): rate_calls=True, ), argInfoByPath=t.func( - arg_info_inp, t.list(type_info), arg_info_by_path_mat, rate_calls=True + arg_info_inp, + t.list(type_info), + arg_info_by_path_mat, + rate_calls=True, ), findAvailableOperations=find_available_operations, findPrismaModels=find_prisma_models, diff --git a/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs b/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs index d273666cdc..5a2f26e9dc 100644 --- a/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs +++ b/src/typegraph/core/src/runtimes/prisma/type_generation/mod.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // // SPDX-License-Identifier: MPL-2.0 diff --git a/src/typegraph/core/src/types/type_ref.rs b/src/typegraph/core/src/types/type_ref.rs index aa4a0b09ac..57cd33b591 100644 --- a/src/typegraph/core/src/types/type_ref.rs +++ b/src/typegraph/core/src/types/type_ref.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use std::hash::Hash; use std::rc::Rc; diff --git a/src/typegraph/core/src/types/type_ref/as_id.rs b/src/typegraph/core/src/types/type_ref/as_id.rs index c5d2160eae..8b2c578b37 100644 --- a/src/typegraph/core/src/types/type_ref/as_id.rs +++ b/src/typegraph/core/src/types/type_ref/as_id.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use serde::{Deserialize, Serialize}; use super::{ExtendedTypeDef, FindAttribute as _, RefAttr, TypeRef}; diff --git a/src/typegraph/core/src/types/type_ref/injection.rs b/src/typegraph/core/src/types/type_ref/injection.rs index 9ae2846057..7296cc758b 100644 --- a/src/typegraph/core/src/types/type_ref/injection.rs +++ b/src/typegraph/core/src/types/type_ref/injection.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use super::{RefAttr, TypeRef}; use crate::types::Type; use crate::wit::utils::ReduceEntry; diff --git a/src/typegraph/core/src/types/type_ref/policy.rs b/src/typegraph/core/src/types/type_ref/policy.rs index 18e965fc23..6995a8b331 100644 --- a/src/typegraph/core/src/types/type_ref/policy.rs +++ b/src/typegraph/core/src/types/type_ref/policy.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use crate::errors::{Result, TgError}; use crate::types::Type; use serde::{Deserialize, Serialize}; diff --git a/src/typegraph/core/src/types/type_ref/runtime_config.rs b/src/typegraph/core/src/types/type_ref/runtime_config.rs index fc26313706..bcd2438f13 100644 --- a/src/typegraph/core/src/types/type_ref/runtime_config.rs +++ b/src/typegraph/core/src/types/type_ref/runtime_config.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use super::{RefAttr, TypeRef}; use crate::errors::{Result, TgError}; use crate::types::Type; diff --git a/src/typegraph/core/src/types/type_ref/xdef.rs b/src/typegraph/core/src/types/type_ref/xdef.rs index 0cf7ce5960..613c5c9635 100644 --- a/src/typegraph/core/src/types/type_ref/xdef.rs +++ b/src/typegraph/core/src/types/type_ref/xdef.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use super::{FlatTypeRef, FlatTypeRefTarget, RefAttr, RefAttrs, TypeRef}; use crate::errors::Result; use crate::global_store::Store; diff --git a/src/typegraph/core/src/utils/postprocess/naming.rs b/src/typegraph/core/src/utils/postprocess/naming.rs index 708a38581a..ab636ae38a 100644 --- a/src/typegraph/core/src/utils/postprocess/naming.rs +++ b/src/typegraph/core/src/utils/postprocess/naming.rs @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + use std::{ collections::{HashMap, HashSet}, rc::Rc, diff --git a/src/typegraph/deno/deno.json b/src/typegraph/deno/deno.json index 960caa6de9..ad7121212f 100644 --- a/src/typegraph/deno/deno.json +++ b/src/typegraph/deno/deno.json @@ -8,6 +8,13 @@ "!README.md" ] }, + "lint": { + "rules": { + "exclude": [ + "no-external-import" + ] + } + }, "exports": { "./deps/_import.ts": "./src/deps/_import.ts", "./deps/mod.ts": "./src/deps/mod.ts", @@ -25,6 +32,7 @@ "./providers/temporal.ts": "./src/providers/temporal.ts", "./runtimes/deno.ts": "./src/runtimes/deno.ts", "./runtimes/graphql.ts": "./src/runtimes/graphql.ts", + "./runtimes/grpc.ts": "./src/runtimes/grpc.ts", "./runtimes/http.ts": "./src/runtimes/http.ts", "./runtimes/kv.ts": "./src/runtimes/kv.ts", "./runtimes/mod.ts": "./src/runtimes/mod.ts", @@ -37,9 +45,6 @@ "./tg_manage.ts": "./src/tg_manage.ts", "./typegraph.ts": "./src/typegraph.ts", "./types.ts": "./src/types.ts", - "./utils/func_utils.ts": "./src/utils/func_utils.ts", - "./utils/injection_utils.ts": "./src/utils/injection_utils.ts", - "./utils/type_utils.ts": "./src/utils/type_utils.ts", "./wit.ts": "./src/wit.ts" } } diff --git a/src/typegraph/deno/src/deps/_import.ts b/src/typegraph/deno/src/deps/_import.ts index b21c30e5ab..855c2d0015 100644 --- a/src/typegraph/deno/src/deps/_import.ts +++ b/src/typegraph/deno/src/deps/_import.ts @@ -31,6 +31,7 @@ export interface Bind { export const up = 3; +// deno-lint-ignore no-explicit-any export function caller(this: Bind | any, levelUp = up): string | undefined { const err = new Error(); const stack = err.stack?.split("\n")[levelUp]; @@ -39,6 +40,7 @@ export function caller(this: Bind | any, levelUp = up): string | undefined { } } +// deno-lint-ignore no-explicit-any export function getFile(this: Bind | any, stack: string): string { stack = stack.substr(stack.indexOf("at ") + 3); if (!stack.startsWith("file://")) { @@ -48,7 +50,7 @@ export function getFile(this: Bind | any, stack: string): string { let file = `${path[0]}:${path[1]}`; if ((this as Bind)?.cb) { - const cb = (this as Bind).cb as any; + const cb = (this as Bind).cb!; file = cb(file); } return file; diff --git a/src/typegraph/deno/src/deps/mod.ts b/src/typegraph/deno/src/deps/mod.ts index 1c558b0f17..0ad837fc8c 100644 --- a/src/typegraph/deno/src/deps/mod.ts +++ b/src/typegraph/deno/src/deps/mod.ts @@ -2,13 +2,16 @@ // SPDX-License-Identifier: MPL-2.0 export { caller } from "./_import.ts"; -export function mapValues( - object: object, - fn: (value: any, key: string, object: object) => any, -): any { +export function mapValues< + O extends Record, + T, +>( + object: O, + fn: (value: O[keyof O], key: keyof O, object: O) => T, +): Record { const newEntries = Object.entries(object).map(([k, v]) => [ k, - fn(v, k, object), + fn(v as O[keyof O], k, object), ]); return Object.fromEntries(newEntries); } diff --git a/src/typegraph/deno/src/effects.ts b/src/typegraph/deno/src/effects.ts index 8c5dbcdf7e..92bd6edd92 100644 --- a/src/typegraph/deno/src/effects.ts +++ b/src/typegraph/deno/src/effects.ts @@ -1,7 +1,7 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { +import type { EffectCreate, EffectDelete, EffectRead, diff --git a/src/typegraph/deno/src/envs/cli.ts b/src/typegraph/deno/src/envs/cli.ts index 62e0295150..03c3dc0bc7 100644 --- a/src/typegraph/deno/src/envs/cli.ts +++ b/src/typegraph/deno/src/envs/cli.ts @@ -43,7 +43,7 @@ export function loadCliEnv(): CliEnv | null { } else { switch (key) { case "command": - if (!COMMANDS.includes(envValue as any)) { + if (!(COMMANDS as readonly string[]).includes(envValue)) { throw new Error( `${name} env value should be one of: serialize, deploy`, ); @@ -93,7 +93,7 @@ export function loadCliEnv(): CliEnv | null { return record as CliEnv; } -export const CLI_ENV = loadCliEnv(); +export const CLI_ENV: CliEnv | null = loadCliEnv(); /** check if running in the meta cli */ export function hasCliEnv(): boolean { diff --git a/src/typegraph/deno/src/io.ts b/src/typegraph/deno/src/io.ts index e11fab63ab..a572c7e258 100644 --- a/src/typegraph/deno/src/io.ts +++ b/src/typegraph/deno/src/io.ts @@ -30,6 +30,7 @@ type RpcNotificationMethod = | "Success" | "Failure"; +// deno-lint-ignore no-explicit-any const rpcNotify = (method: RpcNotificationMethod, params: any = null) => { const message = JSON.stringify({ jsonrpc: JSONRPC_VERSION, @@ -39,6 +40,7 @@ const rpcNotify = (method: RpcNotificationMethod, params: any = null) => { writeRpcMessage(message); }; +// deno-lint-ignore no-explicit-any function getOutput(args: any[]) { return args .map((arg) => { @@ -53,24 +55,36 @@ function getOutput(args: any[]) { .join(" "); } -export const log = { - debug(...args: any[]) { +export const log: { + // deno-lint-ignore no-explicit-any + debug(...args: any[]): void; + // deno-lint-ignore no-explicit-any + info(...args: any[]): void; + // deno-lint-ignore no-explicit-any + warn(...args: any[]): void; + // deno-lint-ignore no-explicit-any + error(...args: any[]): void; + // deno-lint-ignore no-explicit-any + failure(data: any): void; + // deno-lint-ignore no-explicit-any + success(data: any, noEncode?: boolean): void; +} = { + debug(...args): void { rpcNotify("Debug", { message: getOutput(args) }); }, - info(...args: any[]) { + info(...args): void { rpcNotify("Info", { message: getOutput(args) }); }, - warn(...args: any[]) { + warn(...args): void { rpcNotify("Warning", { message: getOutput(args) }); }, - error(...args: any[]) { + error(...args): void { rpcNotify("Error", { message: getOutput(args) }); }, - - failure(data: any) { + failure(data): void { rpcNotify("Failure", { data: data }); }, - success(data: any, noEncode = false) { + success(data, noEncode = false): void { if (noEncode) { rpcNotify("Success", { data: JSON.parse(data) }); } else { @@ -80,7 +94,7 @@ export const log = { }; class RpcResponseReader { - private buffer: string = ""; + private buffer = ""; constructor() { process.stdin.setEncoding("utf-8"); @@ -109,7 +123,7 @@ class RpcResponseReader { resolve(message.result); break; } - } catch (e) { + } catch { reject("invalid message"); } } @@ -124,6 +138,7 @@ const rpcCall = (() => { const responseReader = new RpcResponseReader(); let latestRpcId = 0; + // deno-lint-ignore no-explicit-any return (method: string, params: any = null) => { const rpcId = latestRpcId++; const rpcMessage = JSON.stringify({ diff --git a/src/typegraph/deno/src/metagen.ts b/src/typegraph/deno/src/metagen.ts index ac347c11f1..d0bd191e83 100644 --- a/src/typegraph/deno/src/metagen.ts +++ b/src/typegraph/deno/src/metagen.ts @@ -1,12 +1,12 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { +import type { FdkConfig, FdkOutput, SerializeParams, } from "./gen/typegraph_core.d.ts"; -import { TypegraphOutput } from "./typegraph.ts"; +import type { TypegraphOutput } from "./typegraph.ts"; import { wit_utils } from "./wit.ts"; import { freezeTgOutput } from "./utils/func_utils.ts"; @@ -46,7 +46,7 @@ export class Metagen { overwrite?: false, ): Array { const fdkConfig = this.getFdkConfig(tgOutput, targetName); - return wit_utils.metagenExec(fdkConfig).map((value: any) => ({ + return wit_utils.metagenExec(fdkConfig).map((value) => ({ ...value, overwrite: overwrite ?? value.overwrite, })) as Array; diff --git a/src/typegraph/deno/src/params.ts b/src/typegraph/deno/src/params.ts index 669cc40279..25cbd2d7d0 100644 --- a/src/typegraph/deno/src/params.ts +++ b/src/typegraph/deno/src/params.ts @@ -2,12 +2,13 @@ // SPDX-License-Identifier: MPL-2.0 import { RawAuth } from "./typegraph.ts"; -import { Auth as Auth_, wit_utils } from "./wit.ts"; -import * as t from "./types.ts"; +import { type Auth as Auth_, wit_utils } from "./wit.ts"; +import type * as t from "./types.ts"; export type StdOauth2Profiler = | { profiler: "default" } | { profiler: "none" } + // deno-lint-ignore no-explicit-any | { profiler: "extended"; extension: any } | { profiler: "custom"; id: number }; @@ -19,6 +20,7 @@ export function defaultProfiler(): StdOauth2Profiler { return { profiler: "default" }; } +// deno-lint-ignore no-explicit-any export function extendedProfiler(extension: any): StdOauth2Profiler { return { profiler: "extended", extension }; } @@ -28,13 +30,13 @@ export function customProfiler(func: t.Typedef): StdOauth2Profiler { } export class Auth { - static jwt(name: string, format: string, algorithm?: any): Auth_ { - if (!algorithm) { - algorithm = {}; + static jwt(name: string, format: string, algorithmParams?: object): Auth_ { + if (!algorithmParams) { + algorithmParams = {}; } const authData = [ ["format", JSON.stringify(format)], - ["algorithm", JSON.stringify(algorithm)], + ["algorithm", JSON.stringify(algorithmParams)], ] as [string, string][]; return { diff --git a/src/typegraph/deno/src/policy.ts b/src/typegraph/deno/src/policy.ts index 8059b87508..13454f192c 100644 --- a/src/typegraph/deno/src/policy.ts +++ b/src/typegraph/deno/src/policy.ts @@ -1,15 +1,15 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { ContextCheck, MaterializerId } from "./gen/typegraph_core.d.ts"; +import type { ContextCheck, MaterializerId } from "./gen/typegraph_core.d.ts"; import { core } from "./wit.ts"; -interface PolicyPerEffectAlt { +type PolicyPerEffectAlt = { update?: Policy; delete?: Policy; create?: Policy; read?: Policy; -} +}; export class PolicyPerEffectObject { constructor(public readonly value: PolicyPerEffectAlt) {} diff --git a/src/typegraph/deno/src/providers/aws.ts b/src/typegraph/deno/src/providers/aws.ts index 25cb62b2b6..e71ddaa12c 100644 --- a/src/typegraph/deno/src/providers/aws.ts +++ b/src/typegraph/deno/src/providers/aws.ts @@ -1,9 +1,9 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { Materializer, Runtime } from "../runtimes/mod.ts"; +import { type Materializer, Runtime } from "../runtimes/mod.ts"; import { aws } from "../wit.ts"; -import { +import type { S3PresignGetParams, S3PresignPutParams, S3RuntimeData, diff --git a/src/typegraph/deno/src/providers/prisma.ts b/src/typegraph/deno/src/providers/prisma.ts index 790d59d07a..137a8f81e9 100644 --- a/src/typegraph/deno/src/providers/prisma.ts +++ b/src/typegraph/deno/src/providers/prisma.ts @@ -5,7 +5,7 @@ import { Runtime } from "../runtimes/mod.ts"; import { runtimes } from "../wit.ts"; import { Typedef } from "../types.ts"; import { t } from "../index.ts"; -import { Effect } from "../gen/typegraph_core.d.ts"; +import type { Effect } from "../gen/typegraph_core.d.ts"; import { genRef } from "./../typegraph.ts"; type PrismaLinkArg = { diff --git a/src/typegraph/deno/src/providers/temporal.ts b/src/typegraph/deno/src/providers/temporal.ts index 729a1d1ff2..b2184affe0 100644 --- a/src/typegraph/deno/src/providers/temporal.ts +++ b/src/typegraph/deno/src/providers/temporal.ts @@ -3,8 +3,8 @@ import { Runtime } from "../runtimes/mod.ts"; import { runtimes } from "../wit.ts"; -import { Func, Typedef } from "../types.ts"; -import { +import { Func, type Typedef } from "../types.ts"; +import type { TemporalOperationData, TemporalOperationType, } from "../gen/typegraph_core.d.ts"; diff --git a/src/typegraph/deno/src/runtimes/deno.ts b/src/typegraph/deno/src/runtimes/deno.ts index ebf68b35a4..f72cc9b6e3 100644 --- a/src/typegraph/deno/src/runtimes/deno.ts +++ b/src/typegraph/deno/src/runtimes/deno.ts @@ -26,6 +26,7 @@ interface PredefinedFuncMat extends Materializer { } export interface DenoFunc { + // deno-lint-ignore no-explicit-any code: string | ((...args: any[]) => any); secrets?: Array; effect?: Effect; @@ -39,6 +40,7 @@ export interface DenoImport { effect?: Effect; } +// deno-lint-ignore no-explicit-any function stringifyFn(code: string | ((...any: []) => any)) { if (typeof code == "function") { const source = code.toString(); @@ -115,6 +117,7 @@ export class DenoRuntime extends Runtime { } /** use a static function already registered on the typegate */ + // deno-lint-ignore no-explicit-any static

(out: P, value: any): t.Func { const mat = { _id: runtimes.registerDenoStatic( diff --git a/src/typegraph/deno/src/runtimes/graphql.ts b/src/typegraph/deno/src/runtimes/graphql.ts index e53fa2abc1..4e89980417 100644 --- a/src/typegraph/deno/src/runtimes/graphql.ts +++ b/src/typegraph/deno/src/runtimes/graphql.ts @@ -1,10 +1,10 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { Effect } from "../gen/typegraph_core.d.ts"; +import type { Effect } from "../gen/typegraph_core.d.ts"; import * as t from "../types.ts"; import { runtimes } from "../wit.ts"; -import { Materializer, Runtime } from "./mod.ts"; +import { type Materializer, Runtime } from "./mod.ts"; import { fx } from "../index.ts"; export class GraphQLRuntime extends Runtime { diff --git a/src/typegraph/deno/src/runtimes/grpc.ts b/src/typegraph/deno/src/runtimes/grpc.ts index d75be27f79..c32635d401 100644 --- a/src/typegraph/deno/src/runtimes/grpc.ts +++ b/src/typegraph/deno/src/runtimes/grpc.ts @@ -14,7 +14,7 @@ export class GrpcRuntime extends Runtime { super(id); } - call(method: string) { + call(method: string): Func { const funcData = runtimes.callGrpcMethod(this._id, { method: method }); return Func.fromTypeFunc(funcData); } diff --git a/src/typegraph/deno/src/runtimes/http.ts b/src/typegraph/deno/src/runtimes/http.ts index 992ad7ac93..7965bfadff 100644 --- a/src/typegraph/deno/src/runtimes/http.ts +++ b/src/typegraph/deno/src/runtimes/http.ts @@ -2,13 +2,13 @@ // SPDX-License-Identifier: MPL-2.0 import * as t from "../types.ts"; -import { +import type { Effect, HttpMethod, MaterializerHttpRequest, } from "../gen/typegraph_core.d.ts"; import { runtimes } from "../wit.ts"; -import { Materializer, Runtime } from "./mod.ts"; +import { type Materializer, Runtime } from "./mod.ts"; import { fx } from "../index.ts"; type HttpRequestMat = diff --git a/src/typegraph/deno/src/runtimes/kv.ts b/src/typegraph/deno/src/runtimes/kv.ts index d3965b3a65..4c29222ae0 100644 --- a/src/typegraph/deno/src/runtimes/kv.ts +++ b/src/typegraph/deno/src/runtimes/kv.ts @@ -1,10 +1,10 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { Materializer, Runtime } from "./mod.ts"; +import { type Materializer, Runtime } from "./mod.ts"; import * as t from "../types.ts"; import { runtimes } from "../wit.ts"; -import { Effect, KvMaterializer } from "../gen/typegraph_core.d.ts"; +import type { Effect, KvMaterializer } from "../gen/typegraph_core.d.ts"; import { fx } from "../index.ts"; @@ -34,7 +34,11 @@ export class KvRuntime extends Runtime { return new KvOperationMat(mad_id, operation); } - set() { + set(): t.Func< + t.Struct<{ key: t.String; value: t.String }>, + t.String, + KvOperationMat + > { const mat = this.#operation("set", fx.update()); return t.func( t.struct({ "key": t.string(), "value": t.string() }), @@ -43,18 +47,18 @@ export class KvRuntime extends Runtime { ); } - get() { + get(): t.Func, t.Optional, KvOperationMat> { const mat = this.#operation("get", fx.read()); // FIXME: consolidate response type construction inside tg_core return t.func(t.struct({ "key": t.string() }), t.string().optional(), mat); } - delete() { + delete(): t.Func, t.Integer, KvOperationMat> { const mat = this.#operation("delete", fx.delete_()); return t.func(t.struct({ "key": t.string() }), t.integer(), mat); } - keys() { + keys(): t.Func, t.List, KvOperationMat> { const mat = this.#operation("keys", fx.read()); return t.func( t.struct({ "filter": t.string().optional() }), @@ -63,7 +67,7 @@ export class KvRuntime extends Runtime { ); } - values() { + values(): t.Func, t.List, KvOperationMat> { const mat = this.#operation("values", fx.read()); return t.func( t.struct({ "filter": t.string().optional() }), diff --git a/src/typegraph/deno/src/runtimes/python.ts b/src/typegraph/deno/src/runtimes/python.ts index 791a59306f..391afac0d2 100644 --- a/src/typegraph/deno/src/runtimes/python.ts +++ b/src/typegraph/deno/src/runtimes/python.ts @@ -3,10 +3,9 @@ import * as t from "../types.ts"; import { runtimes } from "../wit.ts"; -import { Effect, SubstantialBackend } from "../gen/typegraph_core.d.ts"; -import { Materializer, Runtime } from "./mod.ts"; +import type { Effect } from "../gen/typegraph_core.d.ts"; +import { type Materializer, Runtime } from "./mod.ts"; import { fx } from "../index.ts"; -import { SubstantialRuntime } from "../runtimes/substantial.ts"; interface LambdaMat extends Materializer { fn: string; diff --git a/src/typegraph/deno/src/runtimes/random.ts b/src/typegraph/deno/src/runtimes/random.ts index 330944e561..1c57a5f4f8 100644 --- a/src/typegraph/deno/src/runtimes/random.ts +++ b/src/typegraph/deno/src/runtimes/random.ts @@ -3,8 +3,8 @@ import * as t from "../types.ts"; import { runtimes } from "../wit.ts"; -import { RandomRuntimeData } from "../gen/typegraph_core.d.ts"; -import { Materializer, Runtime } from "./mod.ts"; +import type { RandomRuntimeData } from "../gen/typegraph_core.d.ts"; +import { type Materializer, Runtime } from "./mod.ts"; import { fx } from "../index.ts"; interface RandomMat extends Materializer { diff --git a/src/typegraph/deno/src/runtimes/wasm.ts b/src/typegraph/deno/src/runtimes/wasm.ts index 462f8a261c..cf42c433e2 100644 --- a/src/typegraph/deno/src/runtimes/wasm.ts +++ b/src/typegraph/deno/src/runtimes/wasm.ts @@ -3,8 +3,8 @@ import * as t from "../types.ts"; import { runtimes } from "../wit.ts"; -import { Effect } from "../gen/typegraph_core.d.ts"; -import { Materializer, Runtime } from "./mod.ts"; +import type { Effect } from "../gen/typegraph_core.d.ts"; +import { type Materializer, Runtime } from "./mod.ts"; import { fx } from "../index.ts"; export class WasmRuntime extends Runtime { diff --git a/src/typegraph/deno/src/tg_artifact_upload.ts b/src/typegraph/deno/src/tg_artifact_upload.ts index d762f9623f..f552588be7 100644 --- a/src/typegraph/deno/src/tg_artifact_upload.ts +++ b/src/typegraph/deno/src/tg_artifact_upload.ts @@ -1,8 +1,8 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { BasicAuth } from "./tg_deploy.ts"; -import { Artifact } from "./gen/typegraph_core.d.ts"; +import type { BasicAuth } from "./tg_deploy.ts"; +import type { Artifact } from "./gen/typegraph_core.d.ts"; import { dirname, join } from "node:path"; import * as fsp from "node:fs/promises"; import { log } from "./io.ts"; @@ -60,7 +60,7 @@ export class ArtifactUploader { private async upload( token: string | null, meta: UploadArtifactMeta, - ): Promise { + ): Promise { const uploadHeaders = new Headers({ "Content-Type": "application/octet-stream", }); @@ -89,7 +89,7 @@ export class ArtifactUploader { body: new Uint8Array(content), } as RequestInit, `failed to upload artifact ${meta.relativePath}`, - ); + ) as object; log.info("✓ artifact uploaded:", meta.relativePath); return res; @@ -107,7 +107,7 @@ export class ArtifactUploader { } private handleUploadErrors( - results: PromiseSettledResult[], + results: PromiseSettledResult[], artifactMetas: UploadArtifactMeta[], ) { let errors = 0; diff --git a/src/typegraph/deno/src/tg_deploy.ts b/src/typegraph/deno/src/tg_deploy.ts index 0443cae334..498ef7a613 100644 --- a/src/typegraph/deno/src/tg_deploy.ts +++ b/src/typegraph/deno/src/tg_deploy.ts @@ -1,9 +1,12 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { MigrationAction, SerializeParams } from "./gen/typegraph_core.d.ts"; +import type { + MigrationAction, + SerializeParams, +} from "./gen/typegraph_core.d.ts"; import { ArtifactUploader } from "./tg_artifact_upload.ts"; -import { TypegraphOutput } from "./typegraph.ts"; +import type { TypegraphOutput } from "./typegraph.ts"; import { wit_utils } from "./wit.ts"; import { execRequest } from "./utils/func_utils.ts"; import { log } from "./io.ts"; @@ -36,10 +39,12 @@ export interface TypegraphRemoveParams { export interface DeployResult { serialized: string; + // deno-lint-ignore no-explicit-any response: Record; } export interface RemoveResult { + // deno-lint-ignore no-explicit-any typegate: Record | string; } @@ -108,6 +113,7 @@ export async function tgDeploy( }), }, `tgDeploy failed to deploy typegraph ${typegraph.name}`, + // deno-lint-ignore no-explicit-any )) as Record; if (response.errors) { @@ -154,6 +160,7 @@ export async function tgRemove( body: wit_utils.gqlRemoveQuery([typegraphName.toString()]), }, `tgRemove failed to remove typegraph ${typegraphName}`, + // deno-lint-ignore no-explicit-any )) as Record | string; return { typegate: response }; diff --git a/src/typegraph/deno/src/tg_manage.ts b/src/typegraph/deno/src/tg_manage.ts index 57bcfc6e17..0537205a52 100644 --- a/src/typegraph/deno/src/tg_manage.ts +++ b/src/typegraph/deno/src/tg_manage.ts @@ -1,12 +1,12 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { SerializeParams } from "./gen/typegraph_core.d.ts"; +import type { SerializeParams } from "./gen/typegraph_core.d.ts"; import { BasicAuth, tgDeploy } from "./tg_deploy.ts"; -import { TgFinalizationResult, TypegraphOutput } from "./typegraph.ts"; +import type { TgFinalizationResult, TypegraphOutput } from "./typegraph.ts"; import { freezeTgOutput } from "./utils/func_utils.ts"; import { log, rpc } from "./io.ts"; -import { CliEnv, getCliEnv } from "./envs/cli.ts"; +import { type CliEnv, getCliEnv } from "./envs/cli.ts"; import * as path from "node:path"; export class Manager { @@ -27,7 +27,7 @@ export class Manager { await this.#deploy(); break; case "list": - await this.#list(); + this.#list(); break; default: throw new Error( @@ -61,7 +61,7 @@ export class Manager { pretty: false, }); log.success(finalizationResult.tgJson, true); - } catch (err: any) { + } catch (err) { log.failure({ typegraph: this.#typegraph.name, errors: getErrorStack(err, "failed to serialize typegraph"), @@ -102,7 +102,7 @@ export class Manager { let frozenSerialized: TgFinalizationResult; try { frozenSerialized = frozenOut.serialize(params); - } catch (err: any) { + } catch (err) { log.failure({ typegraph: this.#typegraph.name, errors: getErrorStack(err, "failed to serialize typegraph"), @@ -139,7 +139,7 @@ export class Manager { }, ...response, }); - } catch (err: any) { + } catch (err) { log.failure({ typegraph: this.#typegraph.name, errors: getErrorStack(err, "failed to deploy typegraph"), @@ -148,11 +148,12 @@ export class Manager { } } - async #list(): Promise { + #list() { log.success({ typegraph: this.#typegraph.name }); } } +// deno-lint-ignore no-explicit-any function getErrorStack(err: any, defaultErr: string): string[] { if (err instanceof Error) { log.debug(err); diff --git a/src/typegraph/deno/src/typegraph.ts b/src/typegraph/deno/src/typegraph.ts index 1d7a4fd4e9..d48c09b044 100644 --- a/src/typegraph/deno/src/typegraph.ts +++ b/src/typegraph/deno/src/typegraph.ts @@ -3,16 +3,21 @@ import * as t from "./types.ts"; import { core } from "./gen/typegraph_core.js"; -import { caller, dirname, fromFileUrl } from "./deps/mod.ts"; -import { InjectionValue } from "./utils/type_utils.ts"; +import { caller, fromFileUrl } from "./deps/mod.ts"; +import type { InjectionValue } from "./utils/type_utils.ts"; import { serializeFromParentInjection, serializeGenericInjection, serializeStaticInjection, } from "./utils/injection_utils.ts"; -import { Auth, Cors as CorsWit, Rate, wit_utils } from "./wit.ts"; +import { + type Auth, + type Cors as CorsWit, + type Rate, + wit_utils, +} from "./wit.ts"; import { getPolicyChain } from "./types.ts"; -import { Artifact, SerializeParams } from "./gen/typegraph_core.d.ts"; +import type { Artifact, SerializeParams } from "./gen/typegraph_core.d.ts"; import { Manager } from "./tg_manage.ts"; import { log } from "./io.ts"; import { hasCliEnv } from "./envs/cli.ts"; @@ -38,6 +43,7 @@ export class ApplyFromArg { } export class ApplyFromStatic { + // deno-lint-ignore no-explicit-any constructor(public value: any) {} } @@ -56,6 +62,7 @@ export class ApplyFromParent { const InjectionSource = { asArg: (name?: string, type?: t.Typedef): ApplyFromArg => new ApplyFromArg(name ?? null, type?._id ?? null), + // deno-lint-ignore no-explicit-any set: (value: any): ApplyFromStatic => new ApplyFromStatic(value), fromSecret: (key: string): ApplyFromSecret => new ApplyFromSecret(key), fromContext: (key: string, type?: t.Typedef): ApplyFromContext => @@ -219,11 +226,12 @@ export async function typegraph( try { builder(g); - } catch (err) { + // deno-lint-ignore no-explicit-any + } catch (err: any) { if (err.payload && !err.cause) { err.cause = err.payload; } - if ("stack" in err.cause) { + if (err.cause && "stack" in err.cause) { console.error(`Error in typegraph '${name}':`); for (const msg of err.cause.stack) { console.error(`- ${msg}`); @@ -239,14 +247,16 @@ export async function typegraph( try { const [tgJson, ref_artifacts] = core.serializeTypegraph( config, - ) as Array; // FIXME: bad typing? + // deno-lint-ignore no-explicit-any + ) as Array; const result: TgFinalizationResult = { tgJson: tgJson, ref_artifacts: ref_artifacts, }; return result; - } catch (err) { - const stack = (err as any)?.payload?.stack; + // deno-lint-ignore no-explicit-any + } catch (err: any) { + const stack = err?.payload?.stack; if (stack) { // FIXME: jco generated code throws new Error(object) => prints [Object object] throw new Error(stack.join("\n")); diff --git a/src/typegraph/deno/src/types.ts b/src/typegraph/deno/src/types.ts index 7a41510d14..c037153c14 100644 --- a/src/typegraph/deno/src/types.ts +++ b/src/typegraph/deno/src/types.ts @@ -2,9 +2,8 @@ // SPDX-License-Identifier: MPL-2.0 import { core, wit_utils } from "./wit.ts"; -import { +import type { ParameterTransform, - PolicyPerEffect, PolicySpec as WitPolicySpec, TypeEither, TypeFile, @@ -15,14 +14,14 @@ import { TypeString, TypeUnion, } from "./gen/typegraph_core.d.ts"; -import { FuncParams } from "./gen/typegraph_core.d.ts"; -import { Materializer } from "./runtimes/mod.ts"; +import type { FuncParams } from "./gen/typegraph_core.d.ts"; +import type { Materializer } from "./runtimes/mod.ts"; import { mapValues } from "./deps/mod.ts"; import Policy, { PolicyPerEffectObject } from "./policy.ts"; import { - AsIdField, - Base, - BaseEx, + type AsIdField, + type Base, + type BaseEx, buildReduceEntries, withBase, } from "./utils/func_utils.ts"; @@ -31,14 +30,14 @@ import { serializeGenericInjection, serializeStaticInjection, } from "./utils/injection_utils.ts"; -import { InjectionValue } from "./utils/type_utils.ts"; +import type { InjectionValue } from "./utils/type_utils.ts"; import { ApplyFromArg, ApplyFromContext, ApplyFromParent, ApplyFromSecret, ApplyFromStatic, - InheritDef, + type InheritDef, } from "./typegraph.ts"; import { log } from "./io.ts"; @@ -74,8 +73,8 @@ export function getPolicyChain( tag: "per-effect", val: mapValues( p instanceof PolicyPerEffectObject ? p.value : p, - (v: any) => v._id, - ) as unknown as PolicyPerEffect, + (v) => v?._id, + ), } as const; }); } @@ -195,7 +194,7 @@ export function boolean( return new Boolean(withBase(core.booleanb(), base)); } -class Integer extends Typedef implements Readonly { +export class Integer extends Typedef implements Readonly { readonly min?: number; readonly max?: number; readonly exclusiveMinimum?: number; @@ -269,7 +268,7 @@ export function float( ); } -class StringT extends Typedef implements Readonly { +export class String extends Typedef implements Readonly { readonly min?: number; readonly max?: number; readonly format?: string; @@ -295,52 +294,52 @@ class StringT extends Typedef implements Readonly { export function string( data: TypeString = {}, base: BaseEx = {}, -): StringT { - return new StringT(withBase(core.stringb(data), base), data); +): String { + return new String(withBase(core.stringb(data), base), data); } /** uuid type */ -export function uuid(base: BaseEx = {}): StringT { +export function uuid(base: BaseEx = {}): String { return string({ format: "uuid" }, base); } /** email type */ -export function email(): StringT { +export function email(): String { return string({ format: "email" }); } /** uri type */ -export function uri(): StringT { +export function uri(): String { return string({ format: "uri" }); } /** ean type */ -export function ean(): StringT { +export function ean(): String { return string({ format: "ean" }); } /** path type */ -export function path(): StringT { +export function path(): String { return string({ format: "path" }); } /** datetime type */ -export function datetime(): StringT { +export function datetime(): String { return string({ format: "date-time" }); } /** json type */ -export function json(): StringT { +export function json(): String { return string({ format: "json" }); } /** hostname type */ -export function hostname(): StringT { +export function hostname(): String { return string({ format: "hostname" }); } /** phone number type */ -export function phone(): StringT { +export function phone(): String { return string({ format: "phone" }); } @@ -349,7 +348,7 @@ export function phone(): StringT { export function enum_( variants: string[], base: Base = {}, -): StringT { +): String { return string( { enumeration: variants.map((variant) => JSON.stringify(variant)), @@ -382,7 +381,7 @@ export function file( ); } -class List extends Typedef { +export class List extends Typedef { readonly min?: number; readonly max?: number; readonly items?: number; @@ -413,7 +412,7 @@ export function list( ); } -class Optional extends Typedef { +export class Optional extends Typedef { readonly item?: number; readonly defaultItem?: string; diff --git a/src/typegraph/deno/src/utils/func_utils.ts b/src/typegraph/deno/src/utils/func_utils.ts index bd02a69214..6e9f6623c7 100644 --- a/src/typegraph/deno/src/utils/func_utils.ts +++ b/src/typegraph/deno/src/utils/func_utils.ts @@ -1,14 +1,16 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 +// jsr-private-module + import { InheritDef, - TgFinalizationResult, - TypegraphOutput, + type TgFinalizationResult, + type TypegraphOutput, } from "../typegraph.ts"; -import { ReduceEntry } from "../gen/typegraph_core.d.ts"; +import type { ReduceEntry } from "../gen/typegraph_core.d.ts"; import { serializeStaticInjection } from "./injection_utils.ts"; -import { SerializeParams } from "../gen/typegraph_core.d.ts"; +import type { SerializeParams } from "../gen/typegraph_core.d.ts"; import { log } from "../io.ts"; import { core } from "../wit.ts"; @@ -125,22 +127,6 @@ export function buildReduceEntries( throw new Error(`unsupported type "${typeof node}" at ${currPath.join(".")}`); } -export function getEnvVariable( - key: string, - defaultValue?: string, -): string | undefined { - const glob = globalThis as any; - const value = glob?.process - ? glob?.process.env?.[key] - : glob?.Deno.env.get(key); - return value ?? defaultValue; -} - -export function getAllEnvVariables(): any { - const glob = globalThis as any; - return glob?.process ? glob?.process.env : glob?.Deno.env.toObject(); -} - const frozenMemo: Record = {}; /** Create a reusable version of a `TypegraphOutput` */ diff --git a/src/typegraph/deno/src/utils/injection_utils.ts b/src/typegraph/deno/src/utils/injection_utils.ts index 6bb05242cb..98797f12d1 100644 --- a/src/typegraph/deno/src/utils/injection_utils.ts +++ b/src/typegraph/deno/src/utils/injection_utils.ts @@ -1,8 +1,10 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 +// jsr-private-module + import { CREATE, DELETE, READ, UPDATE } from "../effects.ts"; -import { InjectionSource, InjectionValue } from "./type_utils.ts"; +import type { InjectionSource, InjectionValue } from "./type_utils.ts"; import { stringifySymbol } from "./func_utils.ts"; export function serializeInjection( @@ -16,11 +18,13 @@ export function serializeInjection( const symbols = [UPDATE, DELETE, CREATE, READ]; const noOtherType = Object.keys(value).length == 0; const isPerEffect = noOtherType && - symbols.some((symbol) => (value as any)?.[symbol] !== undefined); + symbols.some((symbol) => + (value as Record)?.[symbol] !== undefined + ); if (isPerEffect) { const dataEntries = symbols.map((symbol) => { - const valueGiven = (value as any)?.[symbol]; + const valueGiven = (value as Record)?.[symbol]; return [stringifySymbol(symbol), valueGiven && valueMapper(valueGiven)]; }); @@ -43,7 +47,7 @@ export function serializeInjection( export function serializeGenericInjection( source: InjectionSource, value: InjectionValue, -) { +): string { const allowed: InjectionSource[] = ["dynamic", "context", "secret", "random"]; if (allowed.includes(source)) { return serializeInjection(source, value); @@ -55,7 +59,9 @@ export function serializeStaticInjection(value: InjectionValue) { return serializeInjection("static", value, (x: unknown) => JSON.stringify(x)); } -export function serializeFromParentInjection(value: InjectionValue) { +export function serializeFromParentInjection( + value: InjectionValue, +): string { if (typeof value !== "string") { const isObject = typeof value === "object" && !Array.isArray(value) && value !== null; @@ -68,7 +74,9 @@ export function serializeFromParentInjection(value: InjectionValue) { const symbols = [UPDATE, DELETE, CREATE, READ]; const noOtherType = Object.keys(value).length == 0; const isPerEffect = noOtherType && - symbols.some((symbol) => (value as any)?.[symbol] !== undefined); + symbols.some((symbol) => + (value as Record)?.[symbol] !== undefined + ); if (!isPerEffect) { throw new Error("object keys should be of type EffectType"); diff --git a/src/typegraph/deno/src/utils/type_utils.ts b/src/typegraph/deno/src/utils/type_utils.ts index 8c6b72e40c..6971d11116 100644 --- a/src/typegraph/deno/src/utils/type_utils.ts +++ b/src/typegraph/deno/src/utils/type_utils.ts @@ -1,7 +1,9 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { PerEffect } from "../effects.ts"; +// jsr-private-module + +import type { PerEffect } from "../effects.ts"; type RequiredKeys = { [K in keyof T]-?: object extends { [P in K]: T[K] } ? never : K; diff --git a/src/typegraph/deno/src/wit.ts b/src/typegraph/deno/src/wit.ts index 9d6def4c09..ca84041f04 100644 --- a/src/typegraph/deno/src/wit.ts +++ b/src/typegraph/deno/src/wit.ts @@ -1,10 +1,10 @@ // Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. // SPDX-License-Identifier: MPL-2.0 -import { MetatypeTypegraphCore } from "./gen/typegraph_core.d.ts"; -import { MetatypeTypegraphRuntimes } from "./gen/typegraph_core.d.ts"; -import { MetatypeTypegraphAws } from "./gen/typegraph_core.d.ts"; -import { MetatypeTypegraphUtils } from "./gen/typegraph_core.d.ts"; +import type { MetatypeTypegraphCore } from "./gen/typegraph_core.d.ts"; +import type { MetatypeTypegraphRuntimes } from "./gen/typegraph_core.d.ts"; +import type { MetatypeTypegraphAws } from "./gen/typegraph_core.d.ts"; +import type { MetatypeTypegraphUtils } from "./gen/typegraph_core.d.ts"; import * as js from "./gen/typegraph_core.js"; export const core = js.core as typeof MetatypeTypegraphCore; diff --git a/src/typegraph/python/typegraph/deploy/request.py b/src/typegraph/python/typegraph/deploy/request.py index 819cfc44d5..c2c6f48681 100644 --- a/src/typegraph/python/typegraph/deploy/request.py +++ b/src/typegraph/python/typegraph/deploy/request.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 from enum import Enum -from typing import Optional, Any +from typing import Any, Optional from typegraph.python.typegraph.graph.shared_types import BasicAuth from typegraph.python.typegraph.io import DeployTarget diff --git a/src/typegraph/python/typegraph/envs/cli.py b/src/typegraph/python/typegraph/envs/cli.py index 9471001d4f..084f43dd64 100644 --- a/src/typegraph/python/typegraph/envs/cli.py +++ b/src/typegraph/python/typegraph/envs/cli.py @@ -2,9 +2,10 @@ # SPDX-License-Identifier: MPL-2.0 from dataclasses import dataclass -from typing import Optional, List -from os import environ from enum import Enum +from os import environ +from typing import List, Optional + from typegraph.io import Log _required_cli_envs = ( @@ -64,9 +65,11 @@ def load(cls) -> Optional["CliEnv"]: try: d["command"] = Command(d["command"]) - except ValueError as e: + except ValueError as err: variants = ", ".join(v.value for v in Command) - raise Exception(f"MCLI_COMMAND env value should be one of: {variants}; {e}") + raise Exception( + f"MCLI_COMMAND env value should be one of: {variants}; {err}" + ) from err raw_filter: str = d["filter"] if raw_filter == "all": diff --git a/src/typegraph/python/typegraph/graph/metagen.py b/src/typegraph/python/typegraph/graph/metagen.py index 5b819be41f..94c88baa4a 100644 --- a/src/typegraph/python/typegraph/graph/metagen.py +++ b/src/typegraph/python/typegraph/graph/metagen.py @@ -3,10 +3,11 @@ import json from typing import List, Union + from typegraph.gen.exports.core import ( MigrationAction, - SerializeParams, PrismaMigrationConfig, + SerializeParams, ) from typegraph.gen.exports.utils import FdkConfig, FdkOutput from typegraph.gen.types import Err @@ -37,7 +38,9 @@ def _get_fdk_config( migrations_dir="prisma-migrations", migration_actions=[], default_migration_action=MigrationAction( - apply=False, create=False, reset=False + apply=False, + create=False, + reset=False, ), ), pretty=False, diff --git a/src/typegraph/python/typegraph/graph/params.py b/src/typegraph/python/typegraph/graph/params.py index 8cc457b5a0..da586defc9 100644 --- a/src/typegraph/python/typegraph/graph/params.py +++ b/src/typegraph/python/typegraph/graph/params.py @@ -1,13 +1,13 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from dataclasses import dataclass import json -from typing import List, Optional, TYPE_CHECKING, Any -from typegraph.gen.exports import utils -from typegraph.wit import ErrorStack, store, wit_utils +from dataclasses import dataclass +from typing import TYPE_CHECKING, Any, List, Optional +from typegraph.gen.exports import utils from typegraph.gen.types import Err +from typegraph.wit import ErrorStack, store, wit_utils if TYPE_CHECKING: from typegraph import t @@ -65,26 +65,24 @@ class Cors: def __init__( self, *, - allow_origin: List[str] = [], - allow_headers: List[str] = [], - expose_headers: List[str] = [], - allow_methods: List[str] = [], + allow_origin: Optional[List[str]] = None, + allow_headers: Optional[List[str]] = None, + expose_headers: Optional[List[str]] = None, + allow_methods: Optional[List[str]] = None, allow_credentials: bool = True, max_age_sec: Optional[int] = None, ): - self.allow_origin = allow_origin - self.allow_headers = allow_headers - self.expose_headers = expose_headers - self.allow_methods = allow_methods + self.allow_origin = allow_origin or [] + self.allow_headers = allow_headers or [] + self.expose_headers = expose_headers or [] + self.allow_methods = allow_methods or [] self.allow_credentials = allow_credentials self.max_age_sec = max_age_sec class Auth: def jwt(name: str, format: str, algorithm: None) -> "utils.Auth": - """ - [Documentation](http://localhost:3000/docs/guides/authentication#jwt-authentication) - """ + """[Documentation](http://localhost:3000/docs/guides/authentication#jwt-authentication)""" if algorithm is None: algorithm = {} @@ -125,72 +123,86 @@ def oauth2( ) def oauth2_digitalocean( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("digitalocean", scopes, profiler) def oauth2_discord( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("discord", scopes, profiler) def oauth2_dropbox( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("dropbox", scopes, profiler) def oauth2_facebook( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("facebook", scopes, profiler) def oauth2_github( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("github", scopes, profiler) def oauth2_gitlab( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("gitlab", scopes, profiler) def oauth2_google( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("google", scopes, profiler) def oauth2_instagram( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("instagram", scopes, profiler) def oauth2_linkedin( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("linkedin", scopes, profiler) def oauth2_microsoft( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("microsoft", scopes, profiler) def oauth2_reddit( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("reddit", scopes, profiler) def oauth2_slack( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("slack", scopes, profiler) def oauth2_stackexchange( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("stackexchange", scopes, profiler) def oauth2_twitter( - scopes: str, profiler: Optional[StdOauth2Profiler] = None + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ) -> "utils.Auth": return RawAuth.from_std("twitter", scopes, profiler) @@ -201,17 +213,26 @@ class RawAuth: @classmethod def from_std( - cls, service: str, scopes: str, profiler: Optional[StdOauth2Profiler] = None + cls, + service: str, + scopes: str, + profiler: Optional[StdOauth2Profiler] = None, ): if isinstance(profiler, NoProfiler): res = wit_utils.oauth2_without_profiler(store, service, scopes) elif isinstance(profiler, ExtendedProfiler): res = wit_utils.oauth2_with_extended_profiler( - store, service, scopes, json.dumps(profiler.extension) + store, + service, + scopes, + json.dumps(profiler.extension), ) elif isinstance(profiler, CustomProfiler): res = wit_utils.oauth2_with_custom_profiler( - store, service, scopes, profiler.func._id + store, + service, + scopes, + profiler.func._id, ) else: # default profiler res = wit_utils.oauth2(store, service, scopes) diff --git a/src/typegraph/python/typegraph/graph/shared_types.py b/src/typegraph/python/typegraph/graph/shared_types.py index cce409a2c8..850c93e489 100644 --- a/src/typegraph/python/typegraph/graph/shared_types.py +++ b/src/typegraph/python/typegraph/graph/shared_types.py @@ -4,6 +4,7 @@ from base64 import b64encode from dataclasses import dataclass from typing import Callable, List + from typegraph.gen.exports.core import Artifact from typegraph.wit import SerializeParams @@ -26,7 +27,7 @@ class BasicAuth: password: str def as_header_value(self): - payload = b64encode(f"{self.username}:{self.password}".encode("utf-8")).decode( - "utf-8" + payload = b64encode(f"{self.username}:{self.password}".encode()).decode( + "utf-8", ) return f"Basic {payload}" diff --git a/src/typegraph/python/typegraph/graph/tg_artifact_upload.py b/src/typegraph/python/typegraph/graph/tg_artifact_upload.py index a907b4b011..ca31d81977 100644 --- a/src/typegraph/python/typegraph/graph/tg_artifact_upload.py +++ b/src/typegraph/python/typegraph/graph/tg_artifact_upload.py @@ -6,7 +6,8 @@ import sys from dataclasses import dataclass from typing import Any, Dict, List, Optional, Union -from urllib import request, parse as Url +from urllib import parse as Url +from urllib import request from urllib.error import HTTPError from typegraph.gen.exports.core import Artifact @@ -65,9 +66,9 @@ def __get_upload_tokens( try: response = request.urlopen(req) - except HTTPError as e: - Log.error("error message:", e.fp.read().decode()) - raise Exception(f"failed to get upload URLs: {e}") + except HTTPError as err: + Log.error("error message:", err.fp.read().decode()) + raise Exception(f"failed to get upload URLs: {err}") from err if response.status != 200: raise Exception(f"failed to get upload URLs: {response}") @@ -115,11 +116,11 @@ def __upload( ) try: response = request.urlopen(upload_req) - except HTTPError as e: - Log.error("failed to upload artifact", meta.relativePath, e) - errmsg = json.load(e.fp).get("error", None) + except HTTPError as err: + Log.error("failed to upload artifact", meta.relativePath, err) + errmsg = json.load(err.fp).get("error", None) Log.error("error message:", errmsg) - raise Exception(errmsg) + raise Exception(errmsg) from err if response.status != 201: raise Exception(f"failed to upload artifact {path} {response.status}") diff --git a/src/typegraph/python/typegraph/graph/tg_deploy.py b/src/typegraph/python/typegraph/graph/tg_deploy.py index af5d01e311..5f75605a6d 100644 --- a/src/typegraph/python/typegraph/graph/tg_deploy.py +++ b/src/typegraph/python/typegraph/graph/tg_deploy.py @@ -3,19 +3,19 @@ import json from dataclasses import dataclass +from platform import python_version from typing import Any, Dict, Optional, Union from urllib import request -from platform import python_version +from typegraph import version as sdk_version +from typegraph.gen.exports.core import MigrationAction, PrismaMigrationConfig from typegraph.gen.exports.utils import QueryDeployParams from typegraph.gen.types import Err -from typegraph.gen.exports.core import MigrationAction, PrismaMigrationConfig from typegraph.graph.shared_types import BasicAuth from typegraph.graph.tg_artifact_upload import ArtifactUploader from typegraph.graph.typegraph import TypegraphOutput -from typegraph.wit import ErrorStack, SerializeParams, store, wit_utils -from typegraph import version as sdk_version from typegraph.io import Log +from typegraph.wit import ErrorStack, SerializeParams, store, wit_utils @dataclass @@ -177,12 +177,12 @@ def exec_request(req: Any): # Note: 400 status and such, the response body # is hidden within the exception and can be consumed through .read() return res - except Exception as e: - raise Exception(f"{e}: {req.full_url}") + except Exception as err: + raise Exception(f"{err}: {req.full_url}") from err def handle_response(res: Any, url=""): try: return json.loads(res) - except Exception as _: - raise Exception(f'Expected json object: got "{res}": {url}') + except Exception as err: + raise Exception(f'Expected json object: got "{res}": {url}') from err diff --git a/src/typegraph/python/typegraph/graph/tg_manage.py b/src/typegraph/python/typegraph/graph/tg_manage.py index d2ab111606..c463181f2e 100644 --- a/src/typegraph/python/typegraph/graph/tg_manage.py +++ b/src/typegraph/python/typegraph/graph/tg_manage.py @@ -4,10 +4,11 @@ import traceback from pathlib import Path +from typegraph.envs.cli import CliEnv, Command, get_cli_env from typegraph.gen.exports.core import ( - SerializeParams, MigrationAction, PrismaMigrationConfig, + SerializeParams, ) from typegraph.graph.shared_types import TypegraphOutput from typegraph.graph.tg_deploy import ( @@ -15,10 +16,9 @@ TypegraphDeployParams, tg_deploy, ) -from typegraph.wit import ErrorStack -from typegraph.utils import freeze_tg_output from typegraph.io import Log, Rpc -from typegraph.envs.cli import CliEnv, Command, get_cli_env +from typegraph.utils import freeze_tg_output +from typegraph.wit import ErrorStack class Manager: @@ -129,7 +129,7 @@ def deploy(self): "value": ret.serialized, }, **response, - } + }, ) except Exception as err: Log.debug(traceback.format_exc()) diff --git a/src/typegraph/python/typegraph/graph/typegraph.py b/src/typegraph/python/typegraph/graph/typegraph.py index 135bb1e6de..b2b24fb0b3 100644 --- a/src/typegraph/python/typegraph/graph/typegraph.py +++ b/src/typegraph/python/typegraph/graph/typegraph.py @@ -4,24 +4,24 @@ import inspect from dataclasses import dataclass from pathlib import Path -from typing import TYPE_CHECKING, Callable, List, Optional, Union, Any +from typing import TYPE_CHECKING, Any, Callable, List, Optional, Union +from typegraph.envs.cli import CLI_ENV from typegraph.gen.exports.core import ( - SerializeParams, - Rate, - TypegraphInitParams, + Cors as CoreCors, ) from typegraph.gen.exports.core import ( - Cors as CoreCors, + Rate, + SerializeParams, + TypegraphInitParams, ) from typegraph.gen.exports.utils import Auth from typegraph.gen.types import Err from typegraph.graph.params import Cors, RawAuth from typegraph.graph.shared_types import FinalizationResult, TypegraphOutput -from typegraph.policy import Policy, PolicyPerEffect, PolicySpec, get_policy_chain -from typegraph.envs.cli import CLI_ENV -from typegraph.wit import ErrorStack, core, store, wit_utils from typegraph.io import Log +from typegraph.policy import Policy, PolicyPerEffect, PolicySpec, get_policy_chain +from typegraph.wit import Error, ErrorStack, core, store, wit_utils if TYPE_CHECKING: from typegraph import t @@ -69,7 +69,7 @@ def __init__( @classmethod def get_active(cls) -> Optional["Typegraph"]: if len(cls._context) == 0: - raise ErrorStack("No active typegraph") + raise ErrorStack(Error(["No active typegraph"])) return cls._context[-1] def __call__(self, **kwargs: ExposeItem): diff --git a/src/typegraph/python/typegraph/host/host.py b/src/typegraph/python/typegraph/host/host.py index 145a500360..0c218ad742 100644 --- a/src/typegraph/python/typegraph/host/host.py +++ b/src/typegraph/python/typegraph/host/host.py @@ -48,8 +48,8 @@ def path_exists(self, path: str) -> Result[bool, str]: def read_file(self, path: str) -> Result[bytes, str]: try: - file = open(path, mode="rb") - return Ok(file.read()) + with open(path, mode="rb") as file: + return Ok(file.read()) except Exception as e: return Err(str(e)) @@ -57,9 +57,9 @@ def write_file(self, path: str, data: bytes) -> Result[None, str]: try: dirname = os.path.dirname(path) os.makedirs(dirname, exist_ok=True) - file = open(path, "wb") - file.write(data) - return Ok(None) + with open(path, "wb") as file: + file.write(data) + return Ok(None) except Exception as e: return Err(str(e)) diff --git a/src/typegraph/python/typegraph/injection.py b/src/typegraph/python/typegraph/injection.py index 611d42b861..5b329b562e 100644 --- a/src/typegraph/python/typegraph/injection.py +++ b/src/typegraph/python/typegraph/injection.py @@ -2,20 +2,20 @@ # SPDX-License-Identifier: MPL-2.0 import json -from typing import Callable, Dict, Union, Optional +from typing import Any, Callable, Dict, Optional, Union from typegraph.effects import EffectType def serialize_injection( source: str, - value: Union[any, Dict[EffectType, any]], - value_mapper: Callable[[any], any] = lambda x: x, + value: Union[Any, Dict[EffectType, Any]], + value_mapper: Callable[[Any], Any] = lambda x: x, ): if ( isinstance(value, dict) and len(value) > 0 - and all(isinstance(k, EffectType) for k in value.keys()) + and all(isinstance(k, EffectType) for k in value) ): value_per_effect = { str(k.name.lower()): value_mapper(v) for k, v in value.items() @@ -28,13 +28,15 @@ def serialize_injection( return json.dumps({"source": source, "data": {"value": value_mapper(value)}}) -def serialize_static_injection(value: Union[any, Dict[EffectType, any]]): +def serialize_static_injection(value: Union[Any, Dict[EffectType, Any]]): return serialize_injection( - "static", value=value, value_mapper=lambda x: json.dumps(x) + "static", + value=value, + value_mapper=lambda x: json.dumps(x), ) -def serialize_generic_injection(source: str, value: Union[any, Dict[EffectType, any]]): +def serialize_generic_injection(source: str, value: Union[Any, Dict[EffectType, Any]]): allowed = ["dynamic", "context", "secret", "random"] if source in allowed: return serialize_injection(source, value=value) @@ -46,9 +48,7 @@ def serialize_parent_injection(value: Union[str, Dict[EffectType, str]]): if not isinstance(value, dict): raise Exception("type not supported") - is_per_effect = len(value) > 0 and all( - isinstance(k, EffectType) for k in value.keys() - ) + is_per_effect = len(value) > 0 and all(isinstance(k, EffectType) for k in value) if not is_per_effect: raise Exception("object keys should be of type EffectType") @@ -58,11 +58,11 @@ def serialize_parent_injection(value: Union[str, Dict[EffectType, str]]): class InheritDef: payload: Optional[str] = None - def set(self, value: Union[any, Dict[EffectType, any]]): + def set(self, value: Union[Any, Dict[EffectType, Any]]): self.payload = serialize_static_injection(value) return self - def inject(self, value: Union[any, Dict[EffectType, any]]): + def inject(self, value: Union[Any, Dict[EffectType, Any]]): self.payload = serialize_generic_injection("dynamic", value) return self diff --git a/src/typegraph/python/typegraph/io.py b/src/typegraph/python/typegraph/io.py index df43374bf2..ceb510cbc9 100644 --- a/src/typegraph/python/typegraph/io.py +++ b/src/typegraph/python/typegraph/io.py @@ -1,13 +1,13 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from typing import Any, Optional, Dict -from fileinput import FileInput -from dataclasses import dataclass -from typegraph.graph.shared_types import BasicAuth -from typegraph.gen.exports.core import MigrationAction import json +from dataclasses import dataclass +from fileinput import FileInput +from typing import Any, Dict, Optional +from typegraph.gen.exports.core import MigrationAction +from typegraph.graph.shared_types import BasicAuth _JSONRPC_VERSION = "2.0" @@ -23,7 +23,7 @@ def rpc_notify(method: str, params: Any): "jsonrpc": _JSONRPC_VERSION, "method": method, "params": params, - } + }, ) write_rpc_message(message) @@ -83,7 +83,7 @@ def read(self, rpc_id: int): if parsed.get("id") != rpc_id: Log.error( - f"rpc response: expected sequential requestests, unexpected rpc id {parsed.get('id')}" + f"rpc response: expected sequential requestests, unexpected rpc id {parsed.get('id')}", ) continue @@ -104,7 +104,7 @@ def call(cls, method: str, params: Any): "id": rpc_id, "method": method, "params": params, - } + }, ) write_rpc_message(rpc_message) @@ -162,7 +162,7 @@ def get_deploy_data(typegraph: str) -> DeployData: return DeployData( secrets=res["secrets"], default_migration_action=migration_action_from_dict( - res["defaultMigrationAction"] + res["defaultMigrationAction"], ), migration_actions={ k: migration_action_from_dict(v) diff --git a/src/typegraph/python/typegraph/policy.py b/src/typegraph/python/typegraph/policy.py index 8694571835..d1fab1feec 100644 --- a/src/typegraph/python/typegraph/policy.py +++ b/src/typegraph/python/typegraph/policy.py @@ -6,9 +6,9 @@ from typing import List, Optional, Union from typegraph.gen.exports.core import ( + ContextCheckNotNull, ContextCheckPattern, ContextCheckValue, - ContextCheckNotNull, Err, MaterializerId, PolicySpecPerEffect, @@ -36,9 +36,7 @@ def __init__(self, id: int, name: str): @classmethod def public(cls): - """ - Public access - """ + """Public access""" res = core.get_public_policy(store) if isinstance(res, Err): raise Exception(res.value) @@ -52,7 +50,9 @@ def context(cls, key: str, check: Optional[Union[str, Pattern]] = None) -> "Poli res = core.register_context_policy(store, key, ContextCheckValue(check)) else: res = core.register_context_policy( - store, key, ContextCheckPattern(check.pattern) + store, + key, + ContextCheckPattern(check.pattern), ) if isinstance(res, Err): @@ -114,7 +114,7 @@ def get_policy_chain(policies: PolicySpec) -> List[WitPolicySpec]: update=p.update and p.update.id, delete=p.delete and p.delete.id, read=p.read and p.read.id, - ) + ), ) for p in policies ] diff --git a/src/typegraph/python/typegraph/providers/aws.py b/src/typegraph/python/typegraph/providers/aws.py index 2d6030bce9..d2d0c2a0e6 100644 --- a/src/typegraph/python/typegraph/providers/aws.py +++ b/src/typegraph/python/typegraph/providers/aws.py @@ -13,7 +13,7 @@ from typegraph.gen.exports.runtimes import EffectCreate, EffectRead from typegraph.gen.types import Err from typegraph.runtimes.base import Materializer, Runtime -from typegraph.wit import aws, ErrorStack, store +from typegraph.wit import ErrorStack, aws, store class S3Runtime(Runtime): @@ -115,7 +115,7 @@ def list(self, bucket: str): { "keys": t.list(t.struct({"key": t.string(), "size": t.integer()})), "prefix": t.list(t.string()), - } + }, ), S3ListMat(mat_id.value, bucket=bucket, effect=EffectRead()), ) @@ -132,7 +132,7 @@ def upload(self, bucket: str, file_type: Optional[t.file] = None): { "file": file_type, "path": t.string().optional(), - } + }, ), t.boolean(), S3UploadMat(mat_id.value, bucket=bucket, effect=EffectCreate(True)), @@ -150,7 +150,7 @@ def upload_all(self, bucket: str, file_type: Optional[t.file] = None): { "prefix": t.string().optional(""), "files": t.list(file_type), - } + }, ), t.boolean(), S3UploadAllMat(mat_id.value, bucket=bucket, effect=EffectCreate(True)), diff --git a/src/typegraph/python/typegraph/providers/prisma.py b/src/typegraph/python/typegraph/providers/prisma.py index 80696ccddf..31fb56baa3 100644 --- a/src/typegraph/python/typegraph/providers/prisma.py +++ b/src/typegraph/python/typegraph/providers/prisma.py @@ -1,18 +1,18 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from typing import Union, Optional +from typing import Optional, Union -from typegraph.runtimes.base import Runtime -from typegraph.wit import ErrorStack, runtimes, store -from typegraph.gen.types import Err +from typegraph import t from typegraph.gen.exports.runtimes import ( Effect, - PrismaRuntimeData, PrismaLinkData, + PrismaRuntimeData, ) -from typegraph import t +from typegraph.gen.types import Err from typegraph.graph.typegraph import gen_ref +from typegraph.runtimes.base import Runtime +from typegraph.wit import ErrorStack, runtimes, store class PrismaRuntime(Runtime): @@ -21,7 +21,8 @@ class PrismaRuntime(Runtime): def __init__(self, name: str, connection_string_secret: str): runtime_id = runtimes.register_prisma_runtime( - store, PrismaRuntimeData(name, connection_string_secret) + store, + PrismaRuntimeData(name, connection_string_secret), ) if isinstance(runtime_id, Err): raise ErrorStack(runtime_id.value) @@ -141,7 +142,10 @@ def execute(self, query: str, parameters: t.typedef, effect: Effect) -> t.func: return t.func.from_type_func(type.value) def query_raw( - self, query: str, parameters: Union[None, t.typedef], output: t.typedef + self, + query: str, + parameters: Union[None, t.typedef], + output: t.typedef, ) -> t.func: params_id = None if parameters is None else parameters._id type = runtimes.prisma_query_raw(store, self.id, query, params_id, output._id) @@ -159,7 +163,11 @@ def link( unique: Optional[bool] = None, ): return prisma_link( - target_type, name=name, fkey=fkey, field=field, unique=unique + target_type, + name=name, + fkey=fkey, + field=field, + unique=unique, ) diff --git a/src/typegraph/python/typegraph/providers/temporal.py b/src/typegraph/python/typegraph/providers/temporal.py index 104505fe45..3686bf138b 100644 --- a/src/typegraph/python/typegraph/providers/temporal.py +++ b/src/typegraph/python/typegraph/providers/temporal.py @@ -1,24 +1,22 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from typing import Union, Optional - -from typegraph.runtimes.base import Runtime +from typing import Optional, Union +from typegraph import t from typegraph.gen.exports.runtimes import ( TemporalOperationData, - TemporalRuntimeData, TemporalOperationType, - TemporalOperationTypeStartWorkflow, - TemporalOperationTypeSignalWorkflow, - TemporalOperationTypeQueryWorkflow, TemporalOperationTypeDescribeWorkflow, + TemporalOperationTypeQueryWorkflow, + TemporalOperationTypeSignalWorkflow, + TemporalOperationTypeStartWorkflow, + TemporalRuntimeData, ) from typegraph.gen.types import Err +from typegraph.runtimes.base import Runtime from typegraph.wit import runtimes, store -from typegraph import t - class TemporalRuntime(Runtime): name: str @@ -26,10 +24,16 @@ class TemporalRuntime(Runtime): namespace_secret: Optional[str] def __init__( - self, name: str, host_secret: str, *, namespace_secret: Optional[str] = None + self, + name: str, + host_secret: str, + *, + namespace_secret: Optional[str] = None, ): data = TemporalRuntimeData( - name=name, host_secret=host_secret, namespace_secret=namespace_secret + name=name, + host_secret=host_secret, + namespace_secret=namespace_secret, ) runtime_id = runtimes.register_temporal_runtime(store, data) if isinstance(runtime_id, Err): @@ -59,7 +63,9 @@ def _generic_temporal_func( def start_workflow(self, workflow_type: str, arg: t.typedef): return self._generic_temporal_func( - TemporalOperationTypeStartWorkflow(), workflow_type, arg + TemporalOperationTypeStartWorkflow(), + workflow_type, + arg, ) def signal_workflow(self, signal_name: str, arg: t.typedef): @@ -71,7 +77,10 @@ def signal_workflow(self, signal_name: str, arg: t.typedef): def query_workflow(self, query_type: str, arg: t.typedef, out: t.typedef): return self._generic_temporal_func( - TemporalOperationTypeQueryWorkflow(), query_type, arg, out + TemporalOperationTypeQueryWorkflow(), + query_type, + arg, + out, ) def describe_workflow(self): diff --git a/src/typegraph/python/typegraph/runtimes/__init__.py b/src/typegraph/python/typegraph/runtimes/__init__.py index d21ee52856..4a19adfb2b 100644 --- a/src/typegraph/python/typegraph/runtimes/__init__.py +++ b/src/typegraph/python/typegraph/runtimes/__init__.py @@ -3,7 +3,7 @@ from typegraph.runtimes.deno import DenoRuntime # noqa from typegraph.runtimes.graphql import GraphQLRuntime # noqa -from typegraph.runtimes.random import RandomRuntime # noqa +from typegraph.runtimes.random import RandomRuntime from typegraph.runtimes.http import HttpRuntime # noqa from typegraph.runtimes.python import PythonRuntime # noqa from typegraph.runtimes.random import RandomRuntime # noqa diff --git a/src/typegraph/python/typegraph/runtimes/deno.py b/src/typegraph/python/typegraph/runtimes/deno.py index 58657df4a9..f3b4dc8203 100644 --- a/src/typegraph/python/typegraph/runtimes/deno.py +++ b/src/typegraph/python/typegraph/runtimes/deno.py @@ -34,7 +34,9 @@ def static(self, out: "t.typedef", value: Any): from typegraph import t mat_id = runtimes.register_deno_static( - store, MaterializerDenoStatic(json.dumps(value)), out._id + store, + MaterializerDenoStatic(json.dumps(value)), + out._id, ) if isinstance(mat_id, Err): @@ -73,7 +75,9 @@ def func( from typegraph import t return t.func( - inp, out, FunMat(mat_id.value, code=code, secrets=secrets, effect=effect) + inp, + out, + FunMat(mat_id.value, code=code, secrets=secrets, effect=effect), ) def import_( @@ -83,7 +87,7 @@ def import_( *, module: str, name: str, - deps: List[str] = [], + deps: Optional[List[str]] = None, effect: Optional[Effect] = None, secrets: Optional[List[str]] = None, ): @@ -92,7 +96,10 @@ def import_( mat_id = runtimes.import_deno_function( store, MaterializerDenoImport( - func_name=name, module=module, secrets=secrets, deps=deps + func_name=name, + module=module, + secrets=secrets, + deps=deps or [], ), effect, ) @@ -118,7 +125,8 @@ def identity(self, inp: "t.struct") -> "t.func": from typegraph import t res = runtimes.get_predefined_deno_func( - store, MaterializerDenoPredefined(name="identity") + store, + MaterializerDenoPredefined(name="identity"), ) if isinstance(res, Err): raise Exception(res.value) @@ -130,7 +138,10 @@ def identity(self, inp: "t.struct") -> "t.func": ) def policy( - self, name: str, code: str, secrets: Optional[List[str]] = None + self, + name: str, + code: str, + secrets: Optional[List[str]] = None, ) -> Policy: secrets = secrets or [] mat_id = runtimes.register_deno_func( @@ -159,7 +170,10 @@ def import_policy( res = runtimes.import_deno_function( store, MaterializerDenoImport( - func_name=func_name, module=module, secrets=secrets or [], deps=[] + func_name=func_name, + module=module, + secrets=secrets or [], + deps=[], ), EffectRead(), ) diff --git a/src/typegraph/python/typegraph/runtimes/graphql.py b/src/typegraph/python/typegraph/runtimes/graphql.py index 95b1c54a76..8636dad054 100644 --- a/src/typegraph/python/typegraph/runtimes/graphql.py +++ b/src/typegraph/python/typegraph/runtimes/graphql.py @@ -32,7 +32,8 @@ class GraphQLRuntime(Runtime): def __init__(self, endpoint: str): runtime_id = runtimes.register_graphql_runtime( - store, GraphqlRuntimeData(endpoint=endpoint) + store, + GraphqlRuntimeData(endpoint=endpoint), ) if isinstance(runtime_id, Err): raise Exception(runtime_id.value) @@ -41,7 +42,11 @@ def __init__(self, endpoint: str): self.endpoint = endpoint def query( - self, inp: "t.struct", out: "t.typedef", *, path: Optional[List[str]] = None + self, + inp: "t.struct", + out: "t.typedef", + *, + path: Optional[List[str]] = None, ): mat_id = runtimes.graphql_query( store, diff --git a/src/typegraph/python/typegraph/runtimes/http.py b/src/typegraph/python/typegraph/runtimes/http.py index c44311654c..65b8b9a1fb 100644 --- a/src/typegraph/python/typegraph/runtimes/http.py +++ b/src/typegraph/python/typegraph/runtimes/http.py @@ -37,6 +37,7 @@ class HttpRequestOptions: body_fields: Optional[List[str]] = None auth_token_field: Optional[str] = None + @staticmethod def from_kwargs(**kwargs: HttpRequestKwargs): return HttpRequestOptions( content_type=kwargs.get("content_type", None), @@ -67,7 +68,8 @@ def __init__( basic_auth_secret: Optional[str] = None, ): runtime_id = runtimes.register_http_runtime( - store, HttpRuntimeData(endpoint, cert_secret, basic_auth_secret) + store, + HttpRuntimeData(endpoint, cert_secret, basic_auth_secret), ) if isinstance(runtime_id, Err): raise Exception(runtime_id.value) @@ -140,7 +142,7 @@ def post( inp: "t.struct", out: "t.typedef", *, - effect: Effect = fx.create(), + effect: Optional[Effect] = None, **kwargs: HttpRequestKwargs, ): return self.__request( @@ -148,7 +150,7 @@ def post( path, inp, out, - effect, + effect or fx.create(), HttpRequestOptions.from_kwargs(**kwargs), ) @@ -158,7 +160,7 @@ def put( inp: "t.struct", out: "t.typedef", *, - effect: Effect = fx.update(), + effect: Optional[Effect] = None, **kwargs: HttpRequestKwargs, ): return self.__request( @@ -166,7 +168,7 @@ def put( path, inp, out, - effect, + effect or fx.update(), HttpRequestOptions.from_kwargs(**kwargs), ) @@ -176,7 +178,7 @@ def patch( inp: "t.struct", out: "t.typedef", *, - effect: Effect = fx.update(), + effect: Optional[Effect] = None, **kwargs: HttpRequestKwargs, ): return self.__request( @@ -184,7 +186,7 @@ def patch( path, inp, out, - effect, + effect or fx.update(), HttpRequestOptions.from_kwargs(**kwargs), ) @@ -194,7 +196,7 @@ def delete( inp: "t.struct", out: "t.typedef", *, - effect: Effect = fx.delete(), + effect: Optional[Effect] = None, **kwargs: HttpRequestKwargs, ): return self.__request( @@ -202,6 +204,6 @@ def delete( path, inp, out, - effect, + effect or fx.delete(), HttpRequestOptions.from_kwargs(**kwargs), ) diff --git a/src/typegraph/python/typegraph/runtimes/kv.py b/src/typegraph/python/typegraph/runtimes/kv.py index 653adc33a4..d6ee15d6a1 100644 --- a/src/typegraph/python/typegraph/runtimes/kv.py +++ b/src/typegraph/python/typegraph/runtimes/kv.py @@ -34,7 +34,9 @@ def get(self): def set(self): mat = self.__operation(KvMaterializer.SET, fx.update()) return t.func( - t.struct({"key": t.string(), "value": t.string()}), t.string(), mat + t.struct({"key": t.string(), "value": t.string()}), + t.string(), + mat, ) def delete(self): @@ -44,7 +46,9 @@ def delete(self): def keys(self): mat = self.__operation(KvMaterializer.KEYS, fx.read()) return t.func( - t.struct({"filter": t.optional(t.string())}), t.list(t.string()), mat + t.struct({"filter": t.optional(t.string())}), + t.list(t.string()), + mat, ) def values(self): @@ -57,7 +61,9 @@ def values(self): def __operation(self, operation: KvMaterializer, effect: Effect): mat_id = runtimes.kv_operation( - store, BaseMaterializer(self.id, effect), operation + store, + BaseMaterializer(self.id, effect), + operation, ) if isinstance(mat_id, Err): raise Exception(mat_id.value) diff --git a/src/typegraph/python/typegraph/runtimes/python.py b/src/typegraph/python/typegraph/runtimes/python.py index 807036e612..361dc73347 100644 --- a/src/typegraph/python/typegraph/runtimes/python.py +++ b/src/typegraph/python/typegraph/runtimes/python.py @@ -3,9 +3,10 @@ import ast import inspect from dataclasses import dataclass -from typing import TYPE_CHECKING, List, Optional +from typing import TYPE_CHECKING, Callable, List, Optional from astunparse import unparse + from typegraph.gen.exports.runtimes import ( BaseMaterializer, Effect, @@ -25,26 +26,30 @@ class PythonRuntime(Runtime): def __init__(self): - super().__init__(runtimes.register_python_runtime(store)) + res = runtimes.register_python_runtime(store) + if isinstance(res, Err): + raise Exception("unexpected", res.value) + super().__init__(res.value) def from_lambda( self, inp: "t.struct", out: "t.typedef", - function: callable, + function: Callable, *, - effect: Effect = EffectRead(), + effect: Optional[Effect] = None, # secrets: Optional[List[str]] = None, ): - lambdas, _defs = DefinitionCollector.collect(function) + effect = effect or EffectRead() + lambdas, _ = DefinitionCollector.collect(function) assert len(lambdas) == 1 fn = str(lambdas[0]) if fn.startswith("(") and fn.endswith(")"): fn = fn[1:-1] mat_id = runtimes.from_python_lambda( store, - BaseMaterializer(runtime=self.id.value, effect=effect), - MaterializerPythonLambda(runtime=self.id.value, fn=fn), + BaseMaterializer(runtime=self.id, effect=effect), + MaterializerPythonLambda(runtime=self.id, fn=fn), ) if isinstance(mat_id, Err): @@ -62,18 +67,19 @@ def from_def( self, inp: "t.struct", out: "t.typedef", - function: callable, + function: Callable, *, - effect: Effect = EffectRead(), + effect: Optional[Effect] = None, ): - _lambdas, defs = DefinitionCollector.collect(function) + effect = effect or EffectRead() + _, defs = DefinitionCollector.collect(function) assert len(defs) == 1 name, fn = defs[0] mat_id = runtimes.from_python_def( store, - BaseMaterializer(runtime=self.id.value, effect=effect), - MaterializerPythonDef(runtime=self.id.value, name=name, fn=fn), + BaseMaterializer(runtime=self.id, effect=effect), + MaterializerPythonDef(runtime=self.id, name=name, fn=fn), ) if isinstance(mat_id, Err): @@ -94,21 +100,21 @@ def import_( *, module: str, name: str, - deps: List[str] = [], + deps: Optional[List[str]] = None, effect: Optional[Effect] = None, secrets: Optional[List[str]] = None, ): effect = effect or EffectRead() secrets = secrets or [] - base = BaseMaterializer(runtime=self.id.value, effect=effect) + base = BaseMaterializer(runtime=self.id, effect=effect) mat_id = runtimes.from_python_module( store, base, MaterializerPythonModule( file=module, - deps=deps, - runtime=self.id.value, + deps=deps or [], + runtime=self.id, ), ) @@ -119,7 +125,9 @@ def import_( store, base, MaterializerPythonImport( - module=mat_id.value, func_name=name, secrets=secrets + module=mat_id.value, + func_name=name, + secrets=secrets, ), ) diff --git a/src/typegraph/python/typegraph/runtimes/random.py b/src/typegraph/python/typegraph/runtimes/random.py index 2754f461fa..9ed8aabdd4 100644 --- a/src/typegraph/python/typegraph/runtimes/random.py +++ b/src/typegraph/python/typegraph/runtimes/random.py @@ -19,8 +19,9 @@ class RandomRuntime(Runtime): def __init__(self, seed: Optional[int] = None, reset: Optional[str] = ""): super().__init__( runtimes.register_random_runtime( - store, data=RandomRuntimeData(seed=seed, reset=reset) - ) + store, + data=RandomRuntimeData(seed=seed, reset=reset), + ), ) def gen( diff --git a/src/typegraph/python/typegraph/runtimes/substantial.py b/src/typegraph/python/typegraph/runtimes/substantial.py index f0cb7a80c6..97a71bbcf0 100644 --- a/src/typegraph/python/typegraph/runtimes/substantial.py +++ b/src/typegraph/python/typegraph/runtimes/substantial.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 from typing import List, Optional + from typegraph import t from typegraph.gen.exports.runtimes import ( RedisBackend, @@ -56,13 +57,13 @@ def _generic_substantial_func( def start(self, kwargs: "t.struct", *, secrets: Optional[List[str]] = None): return self._generic_substantial_func( SubstantialOperationDataStart( - SubstantialStartData(kwargs._id, secrets or []) - ) + SubstantialStartData(kwargs._id, secrets or []), + ), ) def start_raw(self, *, secrets: Optional[List[str]] = None): return self._generic_substantial_func( - SubstantialOperationDataStartRaw(SubstantialStartData(None, secrets or [])) + SubstantialOperationDataStartRaw(SubstantialStartData(None, secrets or [])), ) def stop(self): @@ -79,7 +80,7 @@ def query_resources(self): def query_results(self, output: "t.typedef"): return self._generic_substantial_func( - SubstantialOperationDataResults(output._id) + SubstantialOperationDataResults(output._id), ) def query_results_raw(self): @@ -87,7 +88,7 @@ def query_results_raw(self): def _internal_link_parent_child(self): return self._generic_substantial_func( - SubstantialOperationDataInternalLinkParentChild() + SubstantialOperationDataInternalLinkParentChild(), ) def internals(self): @@ -115,16 +116,19 @@ def redis(connection_string_secret: str): class WorkflowFile: - def __init__(self, file: str, kind: WorkflowKind, deps: List[str] = []): + def __init__(self, file: str, kind: WorkflowKind, deps: Optional[List[str]]): + deps = deps or [] self.file = file self.kind = kind self.deps = deps self.workflows: List[str] = [] - def deno(*, file: str, deps: List[str] = []): + def deno(*, file: str, deps: Optional[List[str]] = None): + deps = deps or [] return WorkflowFile(file, WorkflowKind.DENO, deps) - def python(*, file: str, deps: List[str] = []): + def python(*, file: str, deps: Optional[List[str]] = None): + deps = deps or [] return WorkflowFile(file, WorkflowKind.PYTHON, deps) def import_(self, names: List[str]): @@ -133,5 +137,8 @@ def import_(self, names: List[str]): def build(self): return WorkflowFileDescription( - workflows=self.workflows, deps=self.deps, file=self.file, kind=self.kind + workflows=self.workflows, + deps=self.deps, + file=self.file, + kind=self.kind, ) diff --git a/src/typegraph/python/typegraph/runtimes/wasm.py b/src/typegraph/python/typegraph/runtimes/wasm.py index 0e9e28afe6..64818d9946 100644 --- a/src/typegraph/python/typegraph/runtimes/wasm.py +++ b/src/typegraph/python/typegraph/runtimes/wasm.py @@ -3,20 +3,19 @@ from dataclasses import dataclass from typing import Optional +from typegraph import t from typegraph.gen.exports.runtimes import ( BaseMaterializer, Effect, EffectRead, - WasmRuntimeData, MaterializerWasmReflectedFunc, MaterializerWasmWireHandler, + WasmRuntimeData, ) from typegraph.gen.types import Err from typegraph.runtimes.base import Materializer, Runtime from typegraph.wit import runtimes, store -from typegraph import t - class WasmRuntime(Runtime): @staticmethod diff --git a/src/typegraph/python/typegraph/t.py b/src/typegraph/python/typegraph/t.py index 5e6215d0cf..b6d68b590a 100644 --- a/src/typegraph/python/typegraph/t.py +++ b/src/typegraph/python/typegraph/t.py @@ -1,9 +1,9 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -import json as JsonLib -from typing import Any, Dict, List, Optional, Tuple, Union, Literal import copy +import json as JsonLib +from typing import Any, Dict, List, Literal, Optional, Tuple, Union from typing_extensions import Self @@ -11,36 +11,38 @@ from typegraph.gen.exports.core import ( FuncParams, ParameterTransform, - TypeList, TypeEither, TypeFile, TypeFloat, TypeFunc, TypeInteger, + TypeList, TypeOptional, TypeString, TypeStruct, TypeUnion, +) +from typegraph.gen.exports.core import ( PolicySpec as WitPolicySpec, ) from typegraph.gen.exports.runtimes import EffectRead from typegraph.gen.types import Err from typegraph.graph.typegraph import ( - ErrorStack, - core, - store, ApplyFromArg, ApplyFromContext, ApplyFromParent, ApplyFromSecret, ApplyFromStatic, + ErrorStack, + core, + store, ) -from typegraph.io import Log from typegraph.injection import ( serialize_generic_injection, serialize_parent_injection, serialize_static_injection, ) +from typegraph.io import Log from typegraph.policy import Policy, PolicyPerEffect, PolicySpec, get_policy_chain from typegraph.runtimes.deno import Materializer from typegraph.utils import ( @@ -303,7 +305,10 @@ def __init__( class boolean(typedef): def __init__( - self, *, name: Optional[str] = None, config: Optional[ConfigSpec] = None + self, + *, + name: Optional[str] = None, + config: Optional[ConfigSpec] = None, ): res = core.booleanb(store) if isinstance(res, Err): @@ -336,7 +341,11 @@ def __init__( enum_variants = og_list(JsonLib.dumps(variant) for variant in enum) data = TypeString( - min=min, max=max, pattern=pattern, format=format, enumeration=enum_variants + min=min, + max=max, + pattern=pattern, + format=format, + enumeration=enum_variants, ) res = core.stringb( @@ -566,7 +575,7 @@ def __init__( if self.__class__ != struct: # custom class if len(self.__class__.__bases__) > 1: raise ErrorStack.from_str( - "multiple inheritance is currently not supported" + "multiple inheritance is currently not supported", ) (base,) = self.__class__.__bases__ child_cls = self.__class__ @@ -590,7 +599,7 @@ def __init__( while curr_base != struct: if len(curr_base.__bases__) > 1: raise ErrorStack( - "multiple inheritance is currently not supported" + "multiple inheritance is currently not supported", ) (curr_base,) = curr_base.__bases__ fields = set([i for i in vars(curr_base) if not i.startswith("__")]) @@ -630,7 +639,11 @@ def extend(self, props: Dict[str, typedef]): ApplyParamObjectNode = Dict[str, "ApplyParamNode"] ApplyParamArrayNode = List["ApplyParamNode"] ApplyParamLeafNode = Union[ - ApplyFromArg, ApplyFromStatic, ApplyFromContext, ApplyFromSecret, ApplyFromParent + ApplyFromArg, + ApplyFromStatic, + ApplyFromContext, + ApplyFromSecret, + ApplyFromParent, ] ApplyParamNode = Union[ApplyParamObjectNode, ApplyParamArrayNode, ApplyParamLeafNode] @@ -713,7 +726,9 @@ def rate(self, calls: bool = False, weight: Optional[int] = None) -> "func": def extend(self, props: Dict[str, typedef]): res = core.extend_struct( - store, self.out._id, og_list((k, v._id) for k, v in props.items()) + store, + self.out._id, + og_list((k, v._id) for k, v in props.items()), ) if isinstance(res, Err): raise ErrorStack(res.value) @@ -771,7 +786,9 @@ def apply(self, value: ApplyParamObjectNode) -> "func": @staticmethod def from_type_func( - data: FuncParams, rate_calls: bool = False, rate_weight: Optional[int] = None + data: FuncParams, + rate_calls: bool = False, + rate_weight: Optional[int] = None, ) -> "func": # Note: effect is a just placeholder # in the deno frontend, we do not have to fill the effect attribute on materializers diff --git a/src/typegraph/python/typegraph/utils.py b/src/typegraph/python/typegraph/utils.py index c7b091a733..f0fc3d9c39 100644 --- a/src/typegraph/python/typegraph/utils.py +++ b/src/typegraph/python/typegraph/utils.py @@ -22,10 +22,7 @@ def serialize_config(config: Optional[ConfigSpec]) -> Optional[str]: if config is None: return None - if isinstance(config, list): - lst = config - else: - lst = [config] + lst = config if isinstance(config, list) else [config] if len(lst) == 0: return None @@ -40,7 +37,7 @@ def serialize_config(config: Optional[ConfigSpec]) -> Optional[str]: def build_reduce_entries(node: Any, paths: List[ReduceEntry], curr_path: List[str]): if node is None: - raise Exception(f"unsupported value {str(node)} at {'.'.join(curr_path)},") + raise Exception(f"unsupported value {node!s} at {'.'.join(curr_path)},") if isinstance(node, InheritDef): if node.payload is None: @@ -53,7 +50,7 @@ def build_reduce_entries(node: Any, paths: List[ReduceEntry], curr_path: List[st ReduceEntry( path=curr_path, injection_data=serialize_static_injection(node), - ) + ), ) return paths @@ -62,12 +59,12 @@ def build_reduce_entries(node: Any, paths: List[ReduceEntry], curr_path: List[st build_reduce_entries(v, paths, curr_path + [k]) return paths - if isinstance(node, int) or isinstance(node, str) or isinstance(node, bool): + if isinstance(node, (bool, int, str)): paths.append( ReduceEntry( path=curr_path, injection_data=serialize_static_injection(node), - ) + ), ) return paths @@ -75,17 +72,19 @@ def build_reduce_entries(node: Any, paths: List[ReduceEntry], curr_path: List[st def unpack_tarb64(tar_b64: str, dest: str): - return wit_utils.unpack_tarb64(store, tar_b64, dest) + return wit_utils.unpack_tar_ba(store, tar_b64, dest) frozen_memo: Dict[str, FinalizationResult] = {} def freeze_tg_output( - config: SerializeParams, tg_output: TypegraphOutput + config: SerializeParams, + tg_output: TypegraphOutput, ) -> TypegraphOutput: if tg_output.name not in frozen_memo: frozen_memo[tg_output.name] = tg_output.serialize(config) return TypegraphOutput( - name=tg_output.name, serialize=lambda _: frozen_memo[tg_output.name] + name=tg_output.name, + serialize=lambda _: frozen_memo[tg_output.name], ) diff --git a/src/typegraph/python/typegraph/wit.py b/src/typegraph/python/typegraph/wit.py index 83b857f017..9dc7ee277d 100644 --- a/src/typegraph/python/typegraph/wit.py +++ b/src/typegraph/python/typegraph/wit.py @@ -1,22 +1,24 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from wasmtime import Store from typing import List +from wasmtime import Store + from typegraph.gen import Root, RootImports from typegraph.gen.exports.aws import Aws -from typegraph.gen.exports.core import Core, Error -from typegraph.gen.exports.runtimes import Runtimes -from typegraph.gen.exports.utils import Utils -from typegraph.host.host import HostImpl # Make sure the imports are similar to the node implementation from typegraph.gen.exports.core import ( - SerializeParams, # noqa - PrismaMigrationConfig, # noqa + Core, + Error, MigrationAction, # noqa + PrismaMigrationConfig, # noqa + SerializeParams, # noqa ) +from typegraph.gen.exports.runtimes import Runtimes +from typegraph.gen.exports.utils import Utils +from typegraph.host.host import HostImpl store = Store() _typegraph_core = Root(store, RootImports(HostImpl())) @@ -31,8 +33,9 @@ class ErrorStack(Exception): stack: List[str] def __init__(self, err: Error): - super(ErrorStack, self).__init__("\n".join(f"- {msg}" for msg in err.stack)) + super().__init__("\n".join(f"- {msg}" for msg in err.stack)) self.stack = err.stack + @staticmethod def from_str(msg: str) -> "ErrorStack": return ErrorStack(Error([msg])) diff --git a/tests/auth/auth.py b/tests/auth/auth.py index cf1c9c7f63..581ec6a817 100644 --- a/tests/auth/auth.py +++ b/tests/auth/auth.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth from typegraph.runtimes.deno import DenoRuntime from typegraph.runtimes.http import HttpRuntime @@ -16,7 +19,8 @@ def auth(g: Graph): public = Policy.public() private = deno.policy("private", "(_args, { context }) => !!context.user1") with_token = deno.policy( - "with_token", "(_args, { context }) => { return !!context.accessToken; }" + "with_token", + "(_args, { context }) => { return !!context.accessToken; }", ) x = t.struct({"x": t.integer()}) @@ -39,7 +43,7 @@ def auth(g: Graph): lambda p: {"id": p["id"]}, ), scopes="openid profile email", - ) + ), ) g.expose( @@ -53,7 +57,7 @@ def auth(g: Graph): { "id": t.integer(), "login": t.string(), - } + }, ), auth_token_field="token", ).with_policy(public), diff --git a/tests/auto/test/test.py b/tests/auto/test/test.py index c71dccec53..22cec3b15f 100644 --- a/tests/auto/test/test.py +++ b/tests/auto/test/test.py @@ -1,7 +1,7 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime diff --git a/tests/crypto/crypto_test.ts b/tests/crypto/crypto_test.ts index fe794b1763..a65422fab2 100644 --- a/tests/crypto/crypto_test.ts +++ b/tests/crypto/crypto_test.ts @@ -5,7 +5,10 @@ import { defaultTypegateConfigBase, getTypegateConfig, } from "@metatype/typegate/config.ts"; -import { TypegateCryptoKeys, unsafeExtractJWT } from "@metatype/typegate/crypto.ts"; +import { + TypegateCryptoKeys, + unsafeExtractJWT, +} from "@metatype/typegate/crypto.ts"; import { assertEquals } from "@std/assert"; const gateConfig = getTypegateConfig({ diff --git a/tests/dedup/dedup_test.ts b/tests/dedup/dedup_test.ts index c6985433f9..651d97b714 100644 --- a/tests/dedup/dedup_test.ts +++ b/tests/dedup/dedup_test.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Meta } from "test-utils/mod.ts"; import { Typegraph } from "@metatype/typegate/typegraph/types.ts"; import { assert, assertEquals } from "@std/assert"; diff --git a/tests/docs/how-tos/prog_deploy/prog_deploy.py b/tests/docs/how-tos/prog_deploy/prog_deploy.py index 0e53ac081a..c957b6f14a 100644 --- a/tests/docs/how-tos/prog_deploy/prog_deploy.py +++ b/tests/docs/how-tos/prog_deploy/prog_deploy.py @@ -1,19 +1,23 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import os -from os import path # skip:start import sys +from os import path + +from typegraph import Graph, Policy, t, typegraph # skip:end from typegraph.gen.exports.core import MigrationAction from typegraph.graph.shared_types import BasicAuth from typegraph.graph.tg_deploy import ( + TypegateConnectionOptions, TypegraphDeployParams, tg_deploy, - TypegateConnectionOptions, ) from typegraph.runtimes.deno import DenoRuntime -from typegraph import Graph, Policy, t, typegraph # Your typegraph diff --git a/tests/docs/how-tos/prog_deploy/prog_remove.py b/tests/docs/how-tos/prog_deploy/prog_remove.py index c26f27f8e9..92e9f936d1 100644 --- a/tests/docs/how-tos/prog_deploy/prog_remove.py +++ b/tests/docs/how-tos/prog_deploy/prog_remove.py @@ -1,15 +1,18 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # .. +# skip:start +import sys + +from typegraph import Graph, typegraph +from typegraph.graph.shared_types import BasicAuth from typegraph.graph.tg_deploy import ( TypegateConnectionOptions, TypegraphRemoveParams, tg_remove, ) -from typegraph import Graph, typegraph -from typegraph.graph.shared_types import BasicAuth - -# skip:start -import sys # skip:end diff --git a/tests/e2e/cli/artifacts/ops.ts b/tests/e2e/cli/artifacts/ops.ts index cbd08ebe39..dc0fea8ce4 100644 --- a/tests/e2e/cli/artifacts/ops.ts +++ b/tests/e2e/cli/artifacts/ops.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + export function add({ lhs, rhs }: { lhs: number; rhs: number }) { return lhs + rhs; } diff --git a/tests/e2e/cli/dev_test.ts b/tests/e2e/cli/dev_test.ts index 245ae1838b..d7b06ea134 100644 --- a/tests/e2e/cli/dev_test.ts +++ b/tests/e2e/cli/dev_test.ts @@ -8,13 +8,12 @@ import { randomSchema, reset } from "test-utils/database.ts"; import { TestModule } from "test-utils/test_module.ts"; import { $ } from "@david/dax"; import { - termProcess, - Lines, - LineWriter, + ctrlcProcess, enumerateAllChildUNIX, isPIDAliveUNIX, - killProcess, - ctrlcProcess, + Lines, + LineWriter, + termProcess, } from "../../utils/process.ts"; import { workspaceDir } from "../../utils/dir.ts"; @@ -32,7 +31,7 @@ const tgName = `migration-failure-test-${testCode}`; async function writeTypegraph( version: number | null, - target = `migration_${testCode}.py` + target = `migration_${testCode}.py`, ) { if (version == null) { await m.shell([ @@ -95,7 +94,7 @@ Meta.test( await stderr.readWhile((line) => { // console.log("meta dev>", line); return !$.stripAnsi(line).includes( - `successfully deployed typegraph ${tgName} from migration.py` + `successfully deployed typegraph ${tgName} from migration.py`, ); }); @@ -132,7 +131,7 @@ Meta.test( await stderr.readWhile((line) => { // console.log("meta dev>", line); return !$.stripAnsi(line).includes( - `successfully deployed typegraph ${tgName}` + `successfully deployed typegraph ${tgName}`, ); }); @@ -154,7 +153,7 @@ Meta.test( }) .on(e); }); - } + }, ); async function listSubdirs(path: string): Promise { @@ -216,7 +215,7 @@ Meta.test( await stderr.readWhile((line) => { console.log("line:", line); return !$.stripAnsi(line).includes( - `successfully deployed typegraph ${tgName}` + `successfully deployed typegraph ${tgName}`, ); }); @@ -247,7 +246,7 @@ Meta.test( const migrationsDir = resolve( t.workingDir, "prisma-migrations", - `${tgName}/main` + `${tgName}/main`, ); console.log("Typegate migration dir", migrationsDir); @@ -271,11 +270,59 @@ Meta.test( await t.should("have removed latest migration", async () => { assert((await listSubdirs(migrationsDir)).length === 1); }); - } + }, ); const examplesDir = $.path(workspaceDir).join("examples"); +const skipDeployed = new Set(["play.ts"]); + +const expectedDeployed = [ + ["authentication.ts", "authentication"], + ["backend-for-frontend.ts", "backend-for-frontend"], + ["basic.ts", "basic-authentication"], + ["cors.ts", "cors"], + ["database.ts", "database"], + ["deno.ts", "deno"], + ["example_rest.ts", "example-rest"], + ["execute.ts", "roadmap-execute"], + ["faas-runner.ts", "faas-runner"], + ["files-upload.ts", "files-upload"], + ["first-typegraph.ts", "first-typegraph"], + ["func-ctx.ts", "func-ctx"], + ["func-gql.ts", "func-gql"], + ["func.ts", "roadmap-func"], + ["graphql-server.ts", "graphql-server"], + ["graphql.ts", "graphql"], + ["grpc.ts", "grpc"], + ["http-runtime.ts", "http-runtime"], + ["iam-provider.ts", "iam-provider"], + ["index.ts", "homepage"], + ["injections.ts", "injection-example"], + ["jwt.ts", "jwt-authentication"], + ["math.ts", "math"], + ["metagen-deno.ts", "metagen-deno"], + ["metagen-py.ts", "metagen-py"], + ["metagen-rs.ts", "metagen-rs"], + ["metagen-sdk.ts", "metagen-sdk"], + ["microservice-orchestration.ts", "team-a"], + ["microservice-orchestration.ts", "team-b"], + ["oauth2.ts", "oauth2-authentication"], + ["policies.ts", "policies"], + ["prisma-runtime.ts", "prisma-runtime"], + ["prisma.ts", "roadmap-prisma"], + ["programmable-api-gateway.ts", "programmable-api-gateway"], + ["quick-start-project.ts", "quick-start-project"], + ["random-field.ts", "random-field"], + ["rate.ts", "rate"], + ["reduce.ts", "roadmap-reduce"], + ["rest.ts", "roadmap-rest"], + ["roadmap-policies.ts", "roadmap-policies"], + ["roadmap-random.ts", "roadmap-random"], + ["triggers.ts", "triggers"], + ["union-either.ts", "union-either"], +]; + Meta.test( { name: "meta dev with typegate", @@ -312,70 +359,30 @@ Meta.test( }, null); await stderr.readWhile((rawLine) => { + console.log("meta-full dev[E]>", rawLine); const line = $.stripAnsi(rawLine); - console.log("meta-full dev[E]>", line); if (line.match(/failed to deploy/i)) { throw new Error("error detected on line: " + rawLine); } const match = line.match( - /successfully deployed typegraph ([\w_-]+) from (.+)$/ + /successfully deployed typegraph ([\w_-]+) from (.+)$/, ); if (match) { const prefix = "typegraphs/"; if (!match[2].startsWith(prefix)) { throw new Error("unexpected"); } - deployed.push([match[2].slice(prefix.length), match[1]]); + const file = match[2].slice(prefix.length); + if (!skipDeployed.has(file)) { + deployed.push([file, match[1]]); + } } - return deployed.length < 42; + return deployed.length != expectedDeployed.length; }, 3 * 60 * 1000); await t.should("have deployed all the typegraphs", () => { // TODO use `meta list` - assertEquals(deployed.sort(), [ - ["authentication.ts", "authentication"], - ["backend-for-frontend.ts", "backend-for-frontend"], - ["basic.ts", "basic-authentication"], - ["cors.ts", "cors"], - ["database.ts", "database"], - ["deno.ts", "deno"], - ["example_rest.ts", "example-rest"], - ["execute.ts", "roadmap-execute"], - ["faas-runner.ts", "faas-runner"], - ["files-upload.ts", "files-upload"], - ["first-typegraph.ts", "first-typegraph"], - ["func-ctx.ts", "func-ctx"], - ["func-gql.ts", "func-gql"], - ["func.ts", "roadmap-func"], - ["graphql-server.ts", "graphql-server"], - ["graphql.ts", "graphql"], - ["grpc.ts", "grpc"], - ["http-runtime.ts", "http-runtime"], - ["iam-provider.ts", "iam-provider"], - ["index.ts", "homepage"], - ["injections.ts", "injection-example"], - ["jwt.ts", "jwt-authentication"], - ["math.ts", "math"], - ["metagen-deno.ts", "metagen-deno"], - ["metagen-py.ts", "metagen-py"], - ["metagen-rs.ts", "metagen-rs"], - ["metagen-sdk.ts", "metagen-sdk"], - ["microservice-orchestration.ts", "team-a"], - ["microservice-orchestration.ts", "team-b"], - ["oauth2.ts", "oauth2-authentication"], - ["policies.ts", "policies"], - ["prisma-runtime.ts", "prisma-runtime"], - ["prisma.ts", "roadmap-prisma"], - ["programmable-api-gateway.ts", "programmable-api-gateway"], - ["quick-start-project.ts", "quick-start-project"], - ["random-field.ts", "random-field"], - ["rate.ts", "rate"], - ["reduce.ts", "roadmap-reduce"], - ["rest.ts", "roadmap-rest"], - ["roadmap-policies.ts", "roadmap-policies"], - ["roadmap-random.ts", "roadmap-random"], - ["triggers.ts", "triggers"], - ]); + assertEquals(deployed.sort(), expectedDeployed); }); await t.should("kill meta-full process", async () => { @@ -401,15 +408,15 @@ Meta.test( await sleep(10000); assert( (await isPIDAliveUNIX(parentPID)) == false, - `Parent ${parentPID} should be cleaned up` + `Parent ${parentPID} should be cleaned up`, ); for (const child of childrenPIDs) { assert( (await isPIDAliveUNIX(child)) == false, - `Child PID ${child} should be cleaned up` + `Child PID ${child} should be cleaned up`, ); } }); - } + }, ); diff --git a/tests/e2e/cli/templates/migration.py b/tests/e2e/cli/templates/migration.py index dbabc8ba0b..f07a625efe 100644 --- a/tests/e2e/cli/templates/migration.py +++ b/tests/e2e/cli/templates/migration.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, t, Graph, Policy +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.providers import PrismaRuntime diff --git a/tests/e2e/cli/watch_test.ts b/tests/e2e/cli/watch_test.ts index e0c58c7b9d..e0fff0f18a 100644 --- a/tests/e2e/cli/watch_test.ts +++ b/tests/e2e/cli/watch_test.ts @@ -46,7 +46,7 @@ Meta.test({ name: "meta dev: watch artifacts" }, async (t) => { await t.should("deploy typegraph", async () => { await stderr.readWhile( - (line) => !line.includes("successfully deployed typegraph") + (line) => !line.includes("successfully deployed typegraph"), ); }); @@ -64,7 +64,7 @@ Meta.test({ name: "meta dev: watch artifacts" }, async (t) => { await t.should("re-deploy typegraph", async () => { await stderr.readWhile( - (line) => !line.includes("successfully deployed typegraph") + (line) => !line.includes("successfully deployed typegraph"), ); }); diff --git a/tests/e2e/nextjs/apollo/app/layout.tsx b/tests/e2e/nextjs/apollo/app/layout.tsx index 5ff842ef07..53574ea2cf 100644 --- a/tests/e2e/nextjs/apollo/app/layout.tsx +++ b/tests/e2e/nextjs/apollo/app/layout.tsx @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + export const metadata = { title: "Next.js", description: "Generated by Next.js", diff --git a/tests/e2e/nextjs/apollo/app/page.tsx b/tests/e2e/nextjs/apollo/app/page.tsx index ad61ffa67c..a631ae64fb 100644 --- a/tests/e2e/nextjs/apollo/app/page.tsx +++ b/tests/e2e/nextjs/apollo/app/page.tsx @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + export default function Home() { return (
diff --git a/tests/e2e/nextjs/apollo/package.json b/tests/e2e/nextjs/apollo/package.json index 0c09d18cd7..4d7ebd663f 100644 --- a/tests/e2e/nextjs/apollo/package.json +++ b/tests/e2e/nextjs/apollo/package.json @@ -9,23 +9,23 @@ "lint": "next lint" }, "dependencies": { - "@apollo/client": "^3.8.8", - "apollo-upload-client": "^18.0.1", - "graphql": "^16.8.1", - "next": "14.1.1", + "@apollo/client": "^3", + "apollo-upload-client": "^18", + "graphql": "^16", + "next": "^14", "react": "^18", "react-dom": "^18" }, "devDependencies": { - "@types/apollo-upload-client": "^17.0.5", + "@types/apollo-upload-client": "^17", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", - "autoprefixer": "^10.0.1", + "autoprefixer": "^10", "eslint": "^8", - "eslint-config-next": "14.0.4", + "eslint-config-next": "14", "postcss": "^8", - "tailwindcss": "^3.3.0", + "tailwindcss": "^3", "typescript": "^5" } } diff --git a/tests/e2e/nextjs/apollo/pnpm-lock.yaml b/tests/e2e/nextjs/apollo/pnpm-lock.yaml index ede0d4985b..dea8bd628d 100644 --- a/tests/e2e/nextjs/apollo/pnpm-lock.yaml +++ b/tests/e2e/nextjs/apollo/pnpm-lock.yaml @@ -9,72 +9,68 @@ importers: .: dependencies: '@apollo/client': - specifier: ^3.8.8 - version: 3.8.8(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^3 + version: 3.11.8(@types/react@18.3.12)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) apollo-upload-client: - specifier: ^18.0.1 - version: 18.0.1(@apollo/client@3.8.8(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(graphql@16.8.1) + specifier: ^18 + version: 18.0.1(@apollo/client@3.11.8(@types/react@18.3.12)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(graphql@16.9.0) graphql: - specifier: ^16.8.1 - version: 16.8.1 + specifier: ^16 + version: 16.9.0 next: - specifier: 14.1.1 - version: 14.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^14 + version: 14.2.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18 - version: 18.2.0 + version: 18.3.1 react-dom: specifier: ^18 - version: 18.2.0(react@18.2.0) + version: 18.3.1(react@18.3.1) devDependencies: '@types/apollo-upload-client': - specifier: ^17.0.5 - version: 17.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: ^17 + version: 17.0.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/node': specifier: ^20 - version: 20.10.5 + version: 20.17.6 '@types/react': specifier: ^18 - version: 18.2.45 + version: 18.3.12 '@types/react-dom': specifier: ^18 - version: 18.2.18 + version: 18.3.1 autoprefixer: - specifier: ^10.0.1 - version: 10.4.16(postcss@8.4.32) + specifier: ^10 + version: 10.4.20(postcss@8.4.47) eslint: specifier: ^8 - version: 8.56.0 + version: 8.57.1 eslint-config-next: - specifier: 14.0.4 - version: 14.0.4(eslint@8.56.0)(typescript@5.3.3) + specifier: '14' + version: 14.2.16(eslint@8.57.1)(typescript@5.6.3) postcss: specifier: ^8 - version: 8.4.32 + version: 8.4.47 tailwindcss: - specifier: ^3.3.0 - version: 3.4.0 + specifier: ^3 + version: 3.4.14 typescript: specifier: ^5 - version: 5.3.3 + version: 5.6.3 packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@apollo/client@3.8.8': - resolution: {integrity: sha512-omjd9ryGDkadZrKW6l5ktUAdS4SNaFOccYQ4ZST0HLW83y8kQaSZOCTNlpkoBUK8cv6qP8+AxOKwLm2ho8qQ+Q==} + '@apollo/client@3.11.8': + resolution: {integrity: sha512-CgG1wbtMjsV2pRGe/eYITmV5B8lXUCYljB2gB/6jWTFQcrvirUVvKg7qtFdjYkQSFbIffU1IDyxgeaN81eTjbA==} peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: graphql-ws: @@ -86,26 +82,22 @@ packages: subscriptions-transport-ws: optional: true - '@babel/runtime@7.23.6': - resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} - engines: {node: '>=6.9.0'} - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.56.0': - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@graphql-typed-document-node/core@3.2.0': @@ -113,8 +105,8 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@humanwhocodes/config-array@0.11.13': - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead @@ -122,84 +114,88 @@ packages: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.1': - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@jridgewell/gen-mapping@0.3.3': - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/trace-mapping@0.3.20': - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@next/env@14.1.1': - resolution: {integrity: sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==} + '@next/env@14.2.16': + resolution: {integrity: sha512-fLrX5TfJzHCbnZ9YUSnGW63tMV3L4nSfhgOQ0iCcX21Pt+VSTDuaLsSuL8J/2XAiVA5AnzvXDpf6pMs60QxOag==} - '@next/eslint-plugin-next@14.0.4': - resolution: {integrity: sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==} + '@next/eslint-plugin-next@14.2.16': + resolution: {integrity: sha512-noORwKUMkKc96MWjTOwrsUCjky0oFegHbeJ1yEnQBGbMHAaTEIgLZIIfsYF0x3a06PiS+2TXppfifR+O6VWslg==} - '@next/swc-darwin-arm64@14.1.1': - resolution: {integrity: sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==} + '@next/swc-darwin-arm64@14.2.16': + resolution: {integrity: sha512-uFT34QojYkf0+nn6MEZ4gIWQ5aqGF11uIZ1HSxG+cSbj+Mg3+tYm8qXYd3dKN5jqKUm5rBVvf1PBRO/MeQ6rxw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.1.1': - resolution: {integrity: sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==} + '@next/swc-darwin-x64@14.2.16': + resolution: {integrity: sha512-mCecsFkYezem0QiZlg2bau3Xul77VxUD38b/auAjohMA22G9KTJneUYMv78vWoCCFkleFAhY1NIvbyjj1ncG9g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.1.1': - resolution: {integrity: sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==} + '@next/swc-linux-arm64-gnu@14.2.16': + resolution: {integrity: sha512-yhkNA36+ECTC91KSyZcgWgKrYIyDnXZj8PqtJ+c2pMvj45xf7y/HrgI17hLdrcYamLfVt7pBaJUMxADtPaczHA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.1.1': - resolution: {integrity: sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==} + '@next/swc-linux-arm64-musl@14.2.16': + resolution: {integrity: sha512-X2YSyu5RMys8R2lA0yLMCOCtqFOoLxrq2YbazFvcPOE4i/isubYjkh+JCpRmqYfEuCVltvlo+oGfj/b5T2pKUA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.1.1': - resolution: {integrity: sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==} + '@next/swc-linux-x64-gnu@14.2.16': + resolution: {integrity: sha512-9AGcX7VAkGbc5zTSa+bjQ757tkjr6C/pKS7OK8cX7QEiK6MHIIezBLcQ7gQqbDW2k5yaqba2aDtaBeyyZh1i6Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.1.1': - resolution: {integrity: sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==} + '@next/swc-linux-x64-musl@14.2.16': + resolution: {integrity: sha512-Klgeagrdun4WWDaOizdbtIIm8khUDQJ/5cRzdpXHfkbY91LxBXeejL4kbZBrpR/nmgRrQvmz4l3OtttNVkz2Sg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.1.1': - resolution: {integrity: sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==} + '@next/swc-win32-arm64-msvc@14.2.16': + resolution: {integrity: sha512-PwW8A1UC1Y0xIm83G3yFGPiOBftJK4zukTmk7DI1CebyMOoaVpd8aSy7K6GhobzhkjYvqS/QmzcfsWG2Dwizdg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.1.1': - resolution: {integrity: sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==} + '@next/swc-win32-ia32-msvc@14.2.16': + resolution: {integrity: sha512-jhPl3nN0oKEshJBNDAo0etGMzv0j3q3VYorTSFqH1o3rwv1MQRdor27u1zhkgsHPNeY1jxcgyx1ZsCkDD1IHgg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.1.1': - resolution: {integrity: sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==} + '@next/swc-win32-x64-msvc@14.2.16': + resolution: {integrity: sha512-OA7NtfxgirCjfqt+02BqxC3MIgM/JaGjw9tOe4fyZgPsqfseNiMPnCRP44Pfs+Gpo9zPN+SXaFsgP6vk8d571A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -216,11 +212,25 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@rushstack/eslint-patch@1.6.1': - resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@swc/helpers@0.5.2': - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.5': + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} '@types/apollo-upload-client@17.0.5': resolution: {integrity: sha512-rPKHaE4QNd06LNtBgz6hfntVO+pOQMS2yTcynrzBPg9+a/nbtJ2gus5KgzRp2rqfzmnKEc/sRGjLen/9Ot0Z2A==} @@ -231,51 +241,74 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@20.10.5': - resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} - '@types/prop-types@15.7.11': - resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} - '@types/react-dom@18.2.18': - resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} + '@types/react-dom@18.3.1': + resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} - '@types/react@18.2.45': - resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} - '@types/scheduler@0.16.8': - resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + '@typescript-eslint/eslint-plugin@8.13.0': + resolution: {integrity: sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/parser@6.15.0': - resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/parser@8.13.0': + resolution: {integrity: sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@6.15.0': - resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.13.0': + resolution: {integrity: sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@6.15.0': - resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/type-utils@8.13.0': + resolution: {integrity: sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/typescript-estree@6.15.0': - resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@8.13.0': + resolution: {integrity: sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.13.0': + resolution: {integrity: sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/visitor-keys@6.15.0': - resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/utils@8.13.0': + resolution: {integrity: sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.13.0': + resolution: {integrity: sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -305,8 +338,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -317,10 +350,18 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -341,22 +382,24 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} array.prototype.flat@1.3.2: @@ -367,53 +410,55 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - - autoprefixer@10.4.16: - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.7.0: - resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -421,8 +466,9 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -432,18 +478,15 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001570: - resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} - - caniuse-lite@1.0.30001620: - resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} + caniuse-lite@1.0.30001677: + resolution: {integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} client-only@0.0.1: @@ -478,6 +521,18 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -486,8 +541,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -498,25 +553,17 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -528,25 +575,44 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} - electron-to-chromium@1.4.615: - resolution: {integrity: sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.51: + resolution: {integrity: sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.0: + resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} es-shim-unscopables@1.0.2: @@ -556,16 +622,16 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-next@14.0.4: - resolution: {integrity: sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==} + eslint-config-next@14.2.16: + resolution: {integrity: sha512-HOcnCJsyLXR7B8wmjaCgkTSpz+ijgOyAkP8OlvANvciP8PspBYFEBTmakNMxOf71fY0aKOm/blFIiKnrM4K03Q==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -576,15 +642,21 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.6.1: - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + eslint-import-resolver-typescript@3.6.3: + resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -604,33 +676,33 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - eslint-plugin-jsx-a11y@6.8.0: - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: + resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.33.2: - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} @@ -640,8 +712,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true @@ -650,8 +722,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -683,8 +755,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.16.0: - resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} @@ -702,12 +774,16 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -729,15 +805,16 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -747,13 +824,14 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - deprecated: Glob versions prior to v9 are no longer supported + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true - glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - deprecated: Glob versions prior to v9 are no longer supported + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -763,14 +841,10 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -786,8 +860,8 @@ packages: peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql@16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} has-bigints@1.0.2: @@ -797,30 +871,30 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} import-fresh@3.3.0: @@ -838,12 +912,13 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} @@ -860,12 +935,20 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} + is-bun-module@1.2.1: + resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -878,6 +961,10 @@ packages: is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -886,11 +973,12 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} is-number-object@1.0.7: @@ -913,11 +1001,13 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -927,18 +1017,20 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} - is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -946,11 +1038,19 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true js-tokens@4.0.0: @@ -980,8 +1080,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} @@ -995,8 +1095,8 @@ packages: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} - lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -1013,26 +1113,30 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -1048,23 +1152,26 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - next@14.1.1: - resolution: {integrity: sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==} + next@14.2.16: + resolution: {integrity: sha512-LcO7WnFu6lYSvCzZoo1dB+IO0xXz5uEv52HF1IUN0IqVTUIZGHuuR10I5efiLadGt+4oZqTcNZyVVEem/TM5nA==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true + '@playwright/test': + optional: true sass: optional: true - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -1082,8 +1189,9 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -1093,22 +1201,20 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - - object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} once@1.4.0: @@ -1117,8 +1223,8 @@ packages: optimism@0.18.0: resolution: {integrity: sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==} - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} p-limit@3.1.0: @@ -1129,6 +1235,9 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -1148,12 +1257,12 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1167,6 +1276,10 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -1191,14 +1304,14 @@ packages: ts-node: optional: true - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -1208,8 +1321,8 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -1226,16 +1339,16 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.2.0 + react: ^18.3.1 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -1245,17 +1358,25 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} + rehackt@0.1.0: + resolution: {integrity: sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==} + peerDependencies: + '@types/react': '*' + react: '*' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -1287,31 +1408,32 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} shebang-command@2.0.0: @@ -1322,38 +1444,60 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} - string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} - string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -1375,9 +1519,9 @@ packages: babel-plugin-macros: optional: true - sucrase@3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true supports-color@7.2.0: @@ -1392,8 +1536,8 @@ packages: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} - tailwindcss@3.4.0: - resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + tailwindcss@3.4.14: + resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} engines: {node: '>=14.0.0'} hasBin: true @@ -1415,9 +1559,9 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - ts-api-utils@1.0.3: - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + ts-api-utils@1.4.0: + resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -1431,8 +1575,8 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -1442,34 +1586,35 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -1483,15 +1628,16 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} - which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} - which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} which@2.0.2: @@ -1499,15 +1645,25 @@ packages: engines: {node: '>= 8'} hasBin: true + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} + hasBin: true yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} @@ -1521,47 +1677,45 @@ packages: snapshots: - '@aashutoshrathi/word-wrap@1.2.6': {} - '@alloc/quick-lru@5.2.0': {} - '@apollo/client@3.8.8(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@apollo/client@3.11.8(@types/react@18.3.12)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@wry/caches': 1.0.1 '@wry/equality': 0.5.7 '@wry/trie': 0.5.0 - graphql: 16.8.1 - graphql-tag: 2.12.6(graphql@16.8.1) + graphql: 16.9.0 + graphql-tag: 2.12.6(graphql@16.9.0) hoist-non-react-statics: 3.3.2 optimism: 0.18.0 prop-types: 15.8.1 + rehackt: 0.1.0(@types/react@18.3.12)(react@18.3.1) response-iterator: 0.2.6 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.2 + tslib: 2.8.1 zen-observable-ts: 1.2.5 optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - - '@babel/runtime@7.23.6': - dependencies: - regenerator-runtime: 0.14.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@types/react' - '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: - eslint: 8.56.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.7 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.0 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -1569,72 +1723,81 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.56.0': {} + '@eslint/js@8.57.1': {} - '@graphql-typed-document-node/core@3.2.0(graphql@16.8.1)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': dependencies: - graphql: 16.8.1 + graphql: 16.9.0 - '@humanwhocodes/config-array@0.11.13': + '@humanwhocodes/config-array@0.13.0': dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.1': {} + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.3': + '@jridgewell/gen-mapping@0.3.5': dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.1': {} + '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.1.2': {} + '@jridgewell/set-array@1.2.1': {} - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/trace-mapping@0.3.20': + '@jridgewell/trace-mapping@0.3.25': dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 - '@next/env@14.1.1': {} + '@next/env@14.2.16': {} - '@next/eslint-plugin-next@14.0.4': + '@next/eslint-plugin-next@14.2.16': dependencies: - glob: 7.1.7 + glob: 10.3.10 - '@next/swc-darwin-arm64@14.1.1': + '@next/swc-darwin-arm64@14.2.16': optional: true - '@next/swc-darwin-x64@14.1.1': + '@next/swc-darwin-x64@14.2.16': optional: true - '@next/swc-linux-arm64-gnu@14.1.1': + '@next/swc-linux-arm64-gnu@14.2.16': optional: true - '@next/swc-linux-arm64-musl@14.1.1': + '@next/swc-linux-arm64-musl@14.2.16': optional: true - '@next/swc-linux-x64-gnu@14.1.1': + '@next/swc-linux-x64-gnu@14.2.16': optional: true - '@next/swc-linux-x64-musl@14.1.1': + '@next/swc-linux-x64-musl@14.2.16': optional: true - '@next/swc-win32-arm64-msvc@14.1.1': + '@next/swc-win32-arm64-msvc@14.2.16': optional: true - '@next/swc-win32-ia32-msvc@14.1.1': + '@next/swc-win32-ia32-msvc@14.2.16': optional: true - '@next/swc-win32-x64-msvc@14.1.1': + '@next/swc-win32-x64-msvc@14.2.16': optional: true '@nodelib/fs.scandir@2.1.5': @@ -1647,20 +1810,31 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 + fastq: 1.17.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.6.1': {} + '@rushstack/eslint-patch@1.10.4': {} - '@swc/helpers@0.5.2': + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.5': dependencies: - tslib: 2.6.2 + '@swc/counter': 0.1.3 + tslib: 2.8.1 - '@types/apollo-upload-client@17.0.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@types/apollo-upload-client@17.0.5(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@apollo/client': 3.8.8(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@apollo/client': 3.11.8(@types/react@18.3.12)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/extract-files': 13.0.1 - graphql: 16.8.1 + graphql: 16.9.0 transitivePeerDependencies: + - '@types/react' - graphql-ws - react - react-dom @@ -1670,90 +1844,129 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@20.10.5': + '@types/node@20.17.6': dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 - '@types/prop-types@15.7.11': {} + '@types/prop-types@15.7.13': {} - '@types/react-dom@18.2.18': + '@types/react-dom@18.3.1': dependencies: - '@types/react': 18.2.45 + '@types/react': 18.3.12 - '@types/react@18.2.45': + '@types/react@18.3.12': dependencies: - '@types/prop-types': 15.7.11 - '@types/scheduler': 0.16.8 + '@types/prop-types': 15.7.13 csstype: 3.1.3 - '@types/scheduler@0.16.8': {} + '@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.13.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/type-utils': 8.13.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.13.0 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3)': + '@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.4 - eslint: 8.56.0 + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.13.0 + debug: 4.3.7 + eslint: 8.57.1 optionalDependencies: - typescript: 5.3.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.15.0': + '@typescript-eslint/scope-manager@8.13.0': dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/visitor-keys': 8.13.0 - '@typescript-eslint/types@6.15.0': {} + '@typescript-eslint/type-utils@8.13.0(eslint@8.57.1)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@8.57.1)(typescript@5.6.3) + debug: 4.3.7 + ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.13.0': {} - '@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@8.13.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.4 - globby: 11.1.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/visitor-keys': 8.13.0 + debug: 4.3.7 + fast-glob: 3.3.2 is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: - typescript: 5.3.3 + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.13.0(eslint@8.57.1)(typescript@5.6.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + eslint: 8.57.1 transitivePeerDependencies: - supports-color + - typescript - '@typescript-eslint/visitor-keys@6.15.0': + '@typescript-eslint/visitor-keys@8.13.0': dependencies: - '@typescript-eslint/types': 6.15.0 + '@typescript-eslint/types': 8.13.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} '@wry/caches@1.0.1': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 '@wry/context@0.7.4': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 '@wry/equality@0.5.7': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 '@wry/trie@0.4.3': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 '@wry/trie@0.5.0': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 - acorn-jsx@5.3.2(acorn@8.11.2): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.11.2 + acorn: 8.14.0 - acorn@8.11.2: {} + acorn@8.14.0: {} ajv@6.12.6: dependencies: @@ -1764,10 +1977,14 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + ansi-styles@6.2.1: {} + any-promise@1.3.0: {} anymatch@3.1.3: @@ -1775,143 +1992,151 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - apollo-upload-client@18.0.1(@apollo/client@3.8.8(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(graphql@16.8.1): + apollo-upload-client@18.0.1(@apollo/client@3.11.8(@types/react@18.3.12)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(graphql@16.9.0): dependencies: - '@apollo/client': 3.8.8(graphql@16.8.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@apollo/client': 3.11.8(@types/react@18.3.12)(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) extract-files: 13.0.0 - graphql: 16.8.1 + graphql: 16.9.0 arg@5.0.2: {} argparse@2.0.1: {} - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 + aria-query@5.3.2: {} - array-buffer-byte-length@1.0.0: + array-buffer-byte-length@1.0.1: dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 + call-bind: 1.0.7 + is-array-buffer: 3.0.4 - array-includes@3.1.7: + array-includes@3.1.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 is-string: 1.0.7 - array-union@2.1.0: {} + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 - array.prototype.findlastindex@1.2.3: + array.prototype.findlastindex@1.2.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 array.prototype.flat@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - array.prototype.tosorted@1.1.2: + array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - arraybuffer.prototype.slice@1.0.2: + arraybuffer.prototype.slice@1.0.3: dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 ast-types-flow@0.0.8: {} - asynciterator.prototype@1.0.0: - dependencies: - has-symbols: 1.0.3 - - autoprefixer@10.4.16(postcss@8.4.32): + autoprefixer@10.4.20(postcss@8.4.47): dependencies: - browserslist: 4.22.2 - caniuse-lite: 1.0.30001570 + browserslist: 4.24.2 + caniuse-lite: 1.0.30001677 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.32 + picocolors: 1.1.1 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.5: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 - axe-core@4.7.0: {} + axe-core@4.10.2: {} - axobject-query@3.2.1: - dependencies: - dequal: 2.0.3 + axobject-query@4.1.0: {} balanced-match@1.0.2: {} - binary-extensions@2.2.0: {} + binary-extensions@2.3.0: {} brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 - browserslist@4.22.2: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001570 - electron-to-chromium: 1.4.615 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) + caniuse-lite: 1.0.30001677 + electron-to-chromium: 1.5.51 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) busboy@1.6.0: dependencies: streamsearch: 1.1.0 - call-bind@1.0.5: + call-bind@1.0.7: dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 callsites@3.1.0: {} camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001570: {} - - caniuse-lite@1.0.30001620: {} + caniuse-lite@1.0.30001677: {} chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chokidar@3.5.3: + chokidar@3.6.0: dependencies: anymatch: 3.1.3 braces: 3.0.3 @@ -1947,36 +2172,48 @@ snapshots: damerau-levenshtein@1.0.8: {} + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + debug@3.2.7: dependencies: ms: 2.1.3 - debug@4.3.4: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 deep-is@0.1.4: {} - define-data-property@1.1.1: + define-data-property@1.1.4: dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + es-errors: 1.3.0 gopd: 1.0.1 - has-property-descriptors: 1.0.1 define-properties@1.2.1: dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 - dequal@2.0.3: {} - didyoumean@1.2.2: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - dlv@1.1.3: {} doctrine@2.1.0: @@ -1987,83 +2224,105 @@ snapshots: dependencies: esutils: 2.0.3 - electron-to-chromium@1.4.615: {} + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.51: {} + + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - enhanced-resolve@5.15.0: + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - es-abstract@1.22.3: - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-negative-zero: 2.0.2 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 - es-iterator-helpers@1.0.15: + es-define-property@1.0.0: dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.0: + dependencies: + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - internal-slot: 1.0.6 - iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 + internal-slot: 1.0.7 + iterator.prototype: 1.1.3 + safe-array-concat: 1.1.2 - es-set-tostringtag@2.0.2: + es-object-atoms@1.0.0: dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 es-shim-unscopables@1.0.2: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 es-to-primitive@1.2.1: dependencies: @@ -2071,134 +2330,141 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - escalade@3.1.1: {} + escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-config-next@14.0.4(eslint@8.56.0)(typescript@5.3.3): + eslint-config-next@14.2.16(eslint@8.57.1)(typescript@5.6.3): dependencies: - '@next/eslint-plugin-next': 14.0.4 - '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@next/eslint-plugin-next': 14.2.16 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/eslint-plugin': 8.13.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/parser': 8.13.0(eslint@8.57.1)(typescript@5.6.3) + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) - eslint-plugin-react: 7.33.2(eslint@8.56.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) + eslint-plugin-react: 7.37.2(eslint@8.57.1) + eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) optionalDependencies: - typescript: 5.3.3 + typescript: 5.6.3 transitivePeerDependencies: - eslint-import-resolver-webpack + - eslint-plugin-import-x - supports-color eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: - debug: 4.3.4 - enhanced-resolve: 5.15.0 - eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + '@nolyfill/is-core-module': 1.0.39 + debug: 4.3.7 + enhanced-resolve: 5.17.1 + eslint: 8.57.1 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 - get-tsconfig: 4.7.2 - is-core-module: 2.13.1 + get-tsconfig: 4.8.1 + is-bun-module: 1.2.1 is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 + '@typescript-eslint/parser': 8.13.0(eslint@8.57.1)(typescript@5.6.3) + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.56.0))(eslint@8.56.0))(eslint@8.56.0) - hasown: 2.0.0 - is-core-module: 2.13.1 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.13.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + hasown: 2.0.2 + is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 8.13.0(eslint@8.57.1)(typescript@5.6.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): dependencies: - '@babel/runtime': 7.23.6 - aria-query: 5.3.0 - array-includes: 3.1.7 + aria-query: 5.3.2 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 + axe-core: 4.10.2 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.15 - eslint: 8.56.0 - hasown: 2.0.0 + eslint: 8.57.1 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1): dependencies: - eslint: 8.56.0 + eslint: 8.57.1 - eslint-plugin-react@7.33.2(eslint@8.56.0): + eslint-plugin-react@7.37.2(eslint@8.57.1): dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.56.0 + es-iterator-helpers: 1.2.0 + eslint: 8.57.1 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 eslint-scope@7.2.2: dependencies: @@ -2207,26 +2473,26 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.56.0: + eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.7 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -2234,7 +2500,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -2244,7 +2510,7 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: @@ -2252,11 +2518,11 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -2280,13 +2546,13 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} - fastq@1.16.0: + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -2305,16 +2571,21 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 - flatted@3.2.9: {} + flatted@3.3.1: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + fraction.js@4.3.7: {} fs.realpath@1.0.0: {} @@ -2326,26 +2597,28 @@ snapshots: function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} - get-intrinsic@1.2.2: + get-intrinsic@1.2.4: dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 - get-symbol-description@1.0.0: + get-symbol-description@1.0.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 - get-tsconfig@4.7.2: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -2357,23 +2630,22 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@7.1.6: + glob@10.3.10: dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + foreground-child: 3.3.0 + jackspeak: 2.3.6 + minimatch: 9.0.5 + minipass: 7.1.2 + path-scurry: 1.11.1 - glob@7.1.7: + glob@10.4.5: dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 glob@7.2.3: dependencies: @@ -2388,51 +2660,43 @@ snapshots: dependencies: type-fest: 0.20.2 - globalthis@1.0.3: + globalthis@1.0.4: dependencies: define-properties: 1.2.1 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.0 - merge2: 1.4.1 - slash: 3.0.0 + gopd: 1.0.1 gopd@1.0.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 graceful-fs@4.2.11: {} graphemer@1.4.0: {} - graphql-tag@2.12.6(graphql@16.8.1): + graphql-tag@2.12.6(graphql@16.9.0): dependencies: - graphql: 16.8.1 - tslib: 2.6.2 + graphql: 16.9.0 + tslib: 2.8.1 - graphql@16.8.1: {} + graphql@16.9.0: {} has-bigints@1.0.2: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.1: + has-property-descriptors@1.0.2: dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 - has-proto@1.0.1: {} + has-proto@1.0.3: {} has-symbols@1.0.3: {} - has-tostringtag@1.0.0: + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - hasown@2.0.0: + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -2440,7 +2704,7 @@ snapshots: dependencies: react-is: 16.13.1 - ignore@5.3.0: {} + ignore@5.3.2: {} import-fresh@3.3.0: dependencies: @@ -2456,21 +2720,20 @@ snapshots: inherits@2.0.4: {} - internal-slot@1.0.6: + internal-slot@1.0.7: dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 - is-array-buffer@3.0.2: + is-array-buffer@3.0.4: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-async-function@2.0.0: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-bigint@1.0.4: dependencies: @@ -2478,44 +2741,54 @@ snapshots: is-binary-path@2.1.0: dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-bun-module@1.2.1: + dependencies: + semver: 7.6.3 is-callable@1.2.7: {} - is-core-module@2.13.1: + is-core-module@2.15.1: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 is-date-object@1.0.5: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-extglob@2.1.1: {} is-finalizationregistry@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 + + is-fullwidth-code-point@3.0.0: {} is-generator-function@1.0.10: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - is-map@2.0.2: {} + is-map@2.0.3: {} - is-negative-zero@2.0.2: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -2525,51 +2798,63 @@ snapshots: is-regex@1.1.4: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 - is-set@2.0.2: {} + is-set@2.0.3: {} - is-shared-array-buffer@1.0.2: + is-shared-array-buffer@1.0.3: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 is-string@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - is-typed-array@1.1.12: + is-typed-array@1.1.13: dependencies: - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 - is-weakmap@2.0.1: {} + is-weakmap@2.0.2: {} is-weakref@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 - is-weakset@2.0.2: + is-weakset@2.0.3: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 isarray@2.0.5: {} isexe@2.0.0: {} - iterator.prototype@1.1.2: + iterator.prototype@1.1.3: dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 - jiti@1.21.0: {} + jiti@1.21.6: {} js-tokens@4.0.0: {} @@ -2589,20 +2874,20 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flat: 1.3.2 object.assign: 4.1.5 - object.values: 1.1.7 + object.values: 1.2.0 keyv@4.5.4: dependencies: json-buffer: 3.0.1 - language-subtag-registry@0.3.22: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 levn@0.4.1: dependencies: @@ -2611,7 +2896,7 @@ snapshots: lilconfig@2.1.0: {} - lilconfig@3.0.0: {} + lilconfig@3.1.2: {} lines-and-columns@1.2.4: {} @@ -2625,13 +2910,11 @@ snapshots: dependencies: js-tokens: 4.0.0 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 + lru-cache@10.4.3: {} merge2@1.4.1: {} - micromatch@4.0.5: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 @@ -2640,9 +2923,13 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} - ms@2.1.2: {} + minipass@7.1.2: {} ms@2.1.3: {} @@ -2656,32 +2943,32 @@ snapshots: natural-compare@1.4.0: {} - next@14.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next@14.2.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.1.1 - '@swc/helpers': 0.5.2 + '@next/env': 14.2.16 + '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001620 + caniuse-lite: 1.0.30001677 graceful-fs: 4.2.11 postcss: 8.4.31 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.1 - '@next/swc-darwin-x64': 14.1.1 - '@next/swc-linux-arm64-gnu': 14.1.1 - '@next/swc-linux-arm64-musl': 14.1.1 - '@next/swc-linux-x64-gnu': 14.1.1 - '@next/swc-linux-x64-musl': 14.1.1 - '@next/swc-win32-arm64-msvc': 14.1.1 - '@next/swc-win32-ia32-msvc': 14.1.1 - '@next/swc-win32-x64-msvc': 14.1.1 + '@next/swc-darwin-arm64': 14.2.16 + '@next/swc-darwin-x64': 14.2.16 + '@next/swc-linux-arm64-gnu': 14.2.16 + '@next/swc-linux-arm64-musl': 14.2.16 + '@next/swc-linux-x64-gnu': 14.2.16 + '@next/swc-linux-x64-musl': 14.2.16 + '@next/swc-win32-arm64-msvc': 14.2.16 + '@next/swc-win32-ia32-msvc': 14.2.16 + '@next/swc-win32-x64-msvc': 14.2.16 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - node-releases@2.0.14: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -2691,46 +2978,41 @@ snapshots: object-hash@3.0.0: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} object-keys@1.1.1: {} object.assign@4.1.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.7: + object.entries@1.1.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 - object.fromentries@2.0.7: + object.fromentries@2.0.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - object.groupby@1.0.1: + object.groupby@1.0.3: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 - object.hasown@1.1.3: + object.values@1.2.0: dependencies: + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - - object.values@1.1.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 once@1.4.0: dependencies: @@ -2741,16 +3023,16 @@ snapshots: '@wry/caches': 1.0.1 '@wry/context': 0.7.4 '@wry/trie': 0.4.3 - tslib: 2.6.2 + tslib: 2.8.1 - optionator@0.9.3: + optionator@0.9.4: dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 p-limit@3.1.0: dependencies: @@ -2760,6 +3042,8 @@ snapshots: dependencies: p-limit: 3.1.0 + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -2772,9 +3056,12 @@ snapshots: path-parse@1.0.7: {} - path-type@4.0.0: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 - picocolors@1.0.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -2782,31 +3069,33 @@ snapshots: pirates@4.0.6: {} - postcss-import@15.1.0(postcss@8.4.32): + possible-typed-array-names@1.0.0: {} + + postcss-import@15.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.32 + postcss: 8.4.47 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.32): + postcss-js@4.0.1(postcss@8.4.47): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.32 + postcss: 8.4.47 - postcss-load-config@4.0.2(postcss@8.4.32): + postcss-load-config@4.0.2(postcss@8.4.47): dependencies: - lilconfig: 3.0.0 - yaml: 2.3.4 + lilconfig: 3.1.2 + yaml: 2.6.0 optionalDependencies: - postcss: 8.4.32 + postcss: 8.4.47 - postcss-nested@6.0.1(postcss@8.4.32): + postcss-nested@6.2.0(postcss@8.4.47): dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.13 + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 - postcss-selector-parser@6.0.13: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -2816,14 +3105,14 @@ snapshots: postcss@8.4.31: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + picocolors: 1.1.1 + source-map-js: 1.2.1 - postcss@8.4.32: + postcss@8.4.47: dependencies: nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 + picocolors: 1.1.1 + source-map-js: 1.2.1 prelude-ls@1.2.1: {} @@ -2837,15 +3126,15 @@ snapshots: queue-microtask@1.2.3: {} - react-dom@18.2.0(react@18.2.0): + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 react-is@16.13.1: {} - react@18.2.0: + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -2857,22 +3146,27 @@ snapshots: dependencies: picomatch: 2.3.1 - reflect.getprototypeof@1.0.4: + reflect.getprototypeof@1.0.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - which-builtin-type: 1.1.3 - - regenerator-runtime@0.14.1: {} + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 - regexp.prototype.flags@1.5.1: + regexp.prototype.flags@1.5.3: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - set-function-name: 2.0.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + rehackt@0.1.0(@types/react@18.3.12)(react@18.3.1): + optionalDependencies: + '@types/react': 18.3.12 + react: 18.3.1 resolve-from@4.0.0: {} @@ -2880,13 +3174,13 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -2902,41 +3196,42 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-array-concat@1.0.1: + safe-array-concat@1.1.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - safe-regex-test@1.0.0: + safe-regex-test@1.0.3: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 is-regex: 1.1.4 - scheduler@0.23.0: + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 + semver@7.6.3: {} - set-function-length@1.1.1: + set-function-length@1.2.2: dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 - set-function-name@2.0.1: + set-function-name@2.0.2: dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 shebang-command@2.0.0: dependencies: @@ -2944,66 +3239,98 @@ snapshots: shebang-regex@3.0.0: {} - side-channel@1.0.4: + side-channel@1.0.6: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 - slash@3.0.0: {} + signal-exit@4.1.0: {} - source-map-js@1.0.2: {} + source-map-js@1.2.1: {} streamsearch@1.1.0: {} - string.prototype.matchall@4.0.10: + string-width@4.2.3: dependencies: - call-bind: 1.0.5 + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.3 + set-function-name: 2.0.2 + side-channel: 1.0.6 - string.prototype.trim@1.2.8: + string.prototype.repeat@1.0.0: dependencies: - call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 - string.prototype.trimend@1.0.7: + string.prototype.trim@1.2.9: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - string.prototype.trimstart@1.0.7: + string.prototype.trimend@1.0.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + strip-bom@3.0.0: {} strip-json-comments@3.1.1: {} - styled-jsx@5.1.1(react@18.2.0): + styled-jsx@5.1.1(react@18.3.1): dependencies: client-only: 0.0.1 - react: 18.2.0 + react: 18.3.1 - sucrase@3.34.0: + sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 7.1.6 + glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -3017,30 +3344,30 @@ snapshots: symbol-observable@4.0.0: {} - tailwindcss@3.4.0: + tailwindcss@3.4.14: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.5.3 + chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.3.2 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.21.0 + jiti: 1.21.6 lilconfig: 2.1.0 - micromatch: 4.0.5 + micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.32 - postcss-import: 15.1.0(postcss@8.4.32) - postcss-js: 4.0.1(postcss@8.4.32) - postcss-load-config: 4.0.2(postcss@8.4.32) - postcss-nested: 6.0.1(postcss@8.4.32) - postcss-selector-parser: 6.0.13 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 resolve: 1.22.8 - sucrase: 3.34.0 + sucrase: 3.35.0 transitivePeerDependencies: - ts-node @@ -3060,15 +3387,15 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@1.0.3(typescript@5.3.3): + ts-api-utils@1.4.0(typescript@5.6.3): dependencies: - typescript: 5.3.3 + typescript: 5.6.3 ts-interface-checker@0.1.13: {} ts-invariant@0.10.3: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 tsconfig-paths@3.15.0: dependencies: @@ -3077,7 +3404,7 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@2.6.2: {} + tslib@2.8.1: {} type-check@0.4.0: dependencies: @@ -3085,49 +3412,54 @@ snapshots: type-fest@0.20.2: {} - typed-array-buffer@1.0.0: + typed-array-buffer@1.0.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 - typed-array-byte-length@1.0.0: + typed-array-byte-length@1.0.1: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.0: + typed-array-byte-offset@1.0.2: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typed-array-length@1.0.4: + typed-array-length@1.0.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 - typescript@5.3.3: {} + typescript@5.6.3: {} unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undici-types@5.26.5: {} + undici-types@6.19.8: {} - update-browserslist-db@1.0.13(browserslist@4.22.2): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 - picocolors: 1.0.0 + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 uri-js@4.4.1: dependencies: @@ -3143,10 +3475,10 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -3155,33 +3487,45 @@ snapshots: is-weakref: 1.0.2 isarray: 2.0.5 which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.13 + which-collection: 1.0.2 + which-typed-array: 1.1.15 - which-collection@1.0.1: + which-collection@1.0.2: dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 - which-typed-array@1.1.13: + which-typed-array@1.1.15: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 which@2.0.2: dependencies: isexe: 2.0.0 - wrappy@1.0.2: {} + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 - yallist@4.0.0: {} + wrappy@1.0.2: {} - yaml@2.3.4: {} + yaml@2.6.0: {} yocto-queue@0.1.0: {} diff --git a/tests/e2e/nextjs/apollo_test.ts b/tests/e2e/nextjs/apollo_test.ts index 4021afb168..17932b94c0 100644 --- a/tests/e2e/nextjs/apollo_test.ts +++ b/tests/e2e/nextjs/apollo_test.ts @@ -186,12 +186,15 @@ class NextJsServer { async status() { // return this.process.status; - const [_, __, s] = await Promise.all([ + const [_, __, s] = await Promise.allSettled([ this.stdout.cancellableReader.cancel(), this.stderr.cancellableReader.cancel(), this.process.status, ]); - return s; + if (s.status == "rejected") { + throw s.reason; + } + return s.value; } ready(): Promise<{ port: number }> { @@ -278,6 +281,9 @@ async function undeployTypegraph(port: number) { Meta.test({ name: "apollo client", introspection: true, + // FIXME: this has started leaking stdout from the CancellableReader + sanitizeOps: false, + sanitizeResources: false, }, async (t) => { await initBucket(); await deployTypegraph(t.port!); diff --git a/tests/e2e/nextjs/typegraph/apollo.py b/tests/e2e/nextjs/typegraph/apollo.py index fcf770f934..9e5f6580e7 100644 --- a/tests/e2e/nextjs/typegraph/apollo.py +++ b/tests/e2e/nextjs/typegraph/apollo.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Cors from typegraph.providers.aws import S3Runtime @@ -8,7 +11,11 @@ def apollo(g: Graph): public = Policy.public() s3 = S3Runtime( - "HOST", "REGION", "access_key", "secret_key", path_style_secret="PATH_STYLE" + "HOST", + "REGION", + "access_key", + "secret_key", + path_style_secret="PATH_STYLE", ) g.expose( diff --git a/tests/e2e/typegraph/typegraphs/python/multiple_runtimes.py b/tests/e2e/typegraph/typegraphs/python/multiple_runtimes.py index a89cb68896..7b322cffe2 100644 --- a/tests/e2e/typegraph/typegraphs/python/multiple_runtimes.py +++ b/tests/e2e/typegraph/typegraphs/python/multiple_runtimes.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, t, typegraph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime @@ -16,7 +19,7 @@ def test_multiple_runtimes(g: Graph): { "first": t.float(), "second": t.float(), - } + }, ), t.float(), lambda x: x["first"] + x["second"], diff --git a/tests/e2e/typegraph/typegraphs/python/simple.py b/tests/e2e/typegraph/typegraphs/python/simple.py index 0deca0f764..0fa1e40a78 100644 --- a/tests/e2e/typegraph/typegraphs/python/simple.py +++ b/tests/e2e/typegraph/typegraphs/python/simple.py @@ -1,7 +1,7 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from typegraph import t, typegraph, Policy, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime a = t.integer() @@ -23,9 +23,9 @@ def test_types(g: Graph): g.expose( one=deno.func(s1, b, code="() => 12").with_policy(internal), two=deno.func(user, post, code="(user) => ({ id: 12, user })").with_policy( - deno.policy("deny", "() => false") + deno.policy("deny", "() => false"), ), three=deno.import_(s1, s1, name="three", module="scripts/three.ts").with_policy( - public + public, ), ) diff --git a/tests/e2e/typegraph/validator.py b/tests/e2e/typegraph/validator.py index 41ad8293c3..68fa9bd07d 100644 --- a/tests/e2e/typegraph/validator.py +++ b/tests/e2e/typegraph/validator.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, t, typegraph from typegraph.runtimes import DenoRuntime @@ -15,7 +18,7 @@ def validator(g: Graph): "e": t.struct({"a": t.integer()}).set({}), "f": t.struct({"a": t.integer()}).set({"b": 1}), "g": t.struct({"a": t.integer()}).set({"a": 2, "b": 1}), - } + }, ) enums = t.struct( @@ -26,7 +29,7 @@ def validator(g: Graph): enum=[{"name": "John", "age": "13"}], ), "c": t.integer(enum=[1, 3, 5]).optional(), - } + }, ) parents = t.struct( @@ -35,7 +38,7 @@ def validator(g: Graph): "b": t.string(max=20), "c": t.struct({"a": t.integer(), "b": t.integer().optional()}), "d": t.list(t.integer()), - } + }, ) either = t.struct( @@ -46,23 +49,23 @@ def validator(g: Graph): [ t.struct({"x": t.integer(), "y": t.string()}), t.struct({"x": t.integer(), "y": t.string(), "z": t.boolean()}), - ] + ], ), "d": t.either([t.list(t.integer()), t.list(t.float())]), "e": t.either([t.integer(min=0, max=10), t.integer(min=5, max=15)]), "f": t.either( - [t.string(enum=["a", "b", "c"]), t.string(enum=["a", "b", "c", "d"])] + [t.string(enum=["a", "b", "c"]), t.string(enum=["a", "b", "c", "d"])], ), "g": t.either( - [t.struct({"x": t.integer().optional()}), t.struct({"x": t.integer()})] + [t.struct({"x": t.integer().optional()}), t.struct({"x": t.integer()})], ), "h": t.either( [ t.list(t.either([t.integer(), t.string()])), t.list(t.either([t.float(), t.string()])), - ] + ], ), - } + }, ) union = t.struct( @@ -72,17 +75,17 @@ def validator(g: Graph): t.integer(min=0, max=10), t.integer(min=5, max=15), t.integer(min=10, max=20), - ] + ], ).set(25), "b": t.union([t.string(), t.string()]), "c": t.union( [ t.struct({"x": t.integer(), "y": t.string()}), t.struct({"x": t.integer(), "y": t.string(), "z": t.boolean()}), - ] + ], ).set({"x": 1, "y": "test", "z": "not a boolean"}), "d": t.union([t.list(t.integer()), t.list(t.string())]).set([1, "2", 3]), - } + }, ) g.expose( @@ -96,15 +99,15 @@ def validator(g: Graph): "a": t.string().from_parent("a"), "b": t.string(min=12, max=16).from_parent("b"), "c": t.struct( - {"a": t.integer(), "c": t.boolean().optional()} + {"a": t.integer(), "c": t.boolean().optional()}, ).from_parent("c"), "d": t.list(t.integer()).from_parent("d"), - } + }, ), t.struct(), code="() => ({})", ), - } + }, ), testEither=deno.identity(either), testUnion=deno.identity(union), diff --git a/tests/e2e/website/website_test.ts b/tests/e2e/website/website_test.ts index fedb6c0b12..f4785d11e1 100644 --- a/tests/e2e/website/website_test.ts +++ b/tests/e2e/website/website_test.ts @@ -56,6 +56,7 @@ const list = [ "roadmap-random", "temporal", "triggers", + "union-either", ] as const; // files that does not have 2 versions -- TODO why? @@ -66,6 +67,7 @@ const skip = [ "runtimes", "typecheck", "types", + "play", ]; const prepare = { diff --git a/tests/graphql/graphql.py b/tests/graphql/graphql.py index 3a66f54ac8..467222f70f 100644 --- a/tests/graphql/graphql.py +++ b/tests/graphql/graphql.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, effects, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, effects, t, typegraph from typegraph.runtimes.graphql import GraphQLRuntime @@ -16,7 +19,7 @@ def graphql(g: Graph): ) user_by_id = gql.query(t.struct({"id": t.integer()}), g.ref("User")).with_policy( - Policy.public() + Policy.public(), ) update_user = gql.mutation( t.struct( @@ -30,7 +33,7 @@ def graphql(g: Graph): min=1, name="UserUpdate", ), - } + }, ), g.ref("User"), effect=effects.update(idempotent=True), diff --git a/tests/importers/gql_original.py b/tests/importers/gql_original.py index 796662501f..adf7574c2e 100644 --- a/tests/importers/gql_original.py +++ b/tests/importers/gql_original.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import json from pathlib import Path import respx from httpx import Response - from typegraph import TypeGraph from typegraph import policies as p from typegraph.importers.graphql import GraphQLImporter diff --git a/tests/importers/introspection.py b/tests/importers/introspection.py index ffa5fd3e67..3af9997407 100644 --- a/tests/importers/introspection.py +++ b/tests/importers/introspection.py @@ -1,10 +1,14 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from pathlib import Path import httpx from graphql import get_introspection_query res = httpx.post( - "https://hivdb.stanford.edu/graphql", json={"query": get_introspection_query()} + "https://hivdb.stanford.edu/graphql", + json={"query": get_introspection_query()}, ) with open(Path(__file__).parent.joinpath("introspection.json"), "w") as f: diff --git a/tests/importers/openapi_original.py b/tests/importers/openapi_original.py index e18fab12e2..19f46b94c6 100644 --- a/tests/importers/openapi_original.py +++ b/tests/importers/openapi_original.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import json from pathlib import Path import respx from httpx import Response - from typegraph import TypeGraph from typegraph import policies as p from typegraph.importers.openapi import OpenApiImporter diff --git a/tests/importers/openapi_schema.py b/tests/importers/openapi_schema.py index e9a93d533d..cf14f6ff11 100644 --- a/tests/importers/openapi_schema.py +++ b/tests/importers/openapi_schema.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from pathlib import Path import httpx diff --git a/tests/injection/injection.py b/tests/injection/injection.py index 67d28c8ce2..423b8698c4 100644 --- a/tests/injection/injection.py +++ b/tests/injection/injection.py @@ -1,8 +1,11 @@ -from typegraph import typegraph, effects, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, effects, t, typegraph +from typegraph.effects import CREATE, DELETE, READ, UPDATE from typegraph.providers.prisma import PrismaRuntime from typegraph.runtimes.deno import DenoRuntime from typegraph.runtimes.graphql import GraphQLRuntime -from typegraph.effects import CREATE, UPDATE, DELETE, READ @typegraph() @@ -25,7 +28,7 @@ def injection(g: Graph): "alt_context_opt": t.string().optional().from_context("userId"), "alt_context_opt_missing": t.string().optional().from_context("userId"), "date": t.datetime().inject("now"), - } + }, ) operation = t.enum(["insert", "modify", "remove", "read"]) @@ -38,9 +41,9 @@ def injection(g: Graph): UPDATE: "modify", DELETE: "remove", READ: "read", - } - ) - } + }, + ), + }, ) res2 = t.struct({"operation": operation}) @@ -80,9 +83,11 @@ def injection(g: Graph): "graphql": gql.query( t.struct({"id": t.integer().from_parent("a")}), user, - path=("user",), + path=[ + "user", + ], ), - } + }, ), effect_none=deno.identity(req2), effect_create=deno.func(req2, res2, code="(x) => x", effect=effects.create()), @@ -94,17 +99,19 @@ def injection(g: Graph): user.extend( { "from_parent": deno.identity(t.struct({"email": t.email()})).reduce( - {"email": g.inherit().from_parent("email")} + {"email": g.inherit().from_parent("email")}, ), "messagesSent": find_messages.reduce( { "where": { "senderId": g.inherit().from_parent("id"), - } - } + }, + }, ), - } + }, ), - path=("user",), + path=[ + "user", + ], ), ) diff --git a/tests/injection/nested_context.py b/tests/injection/nested_context.py index e25c9e0ccb..9dc2cbb1f4 100644 --- a/tests/injection/nested_context.py +++ b/tests/injection/nested_context.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes import DenoRuntime @@ -11,15 +14,15 @@ def nested_context(g: Graph): has_profile, injectedId=deno.identity( # TODO validate the path against the profiler result?? - t.struct({"id": t.integer().from_context("profile.id")}) + t.struct({"id": t.integer().from_context("profile.id")}), ), secondProfileData=deno.identity( - t.struct({"second": t.integer().from_context("profile.data[1]")}) + t.struct({"second": t.integer().from_context("profile.data[1]")}), ), customKey=deno.identity( - t.struct({"custom": t.integer().from_context('profile["custom key"]')}) + t.struct({"custom": t.integer().from_context('profile["custom key"]')}), ), optional=deno.identity( - t.struct({"optional": t.email().optional().from_context("profile.email")}) + t.struct({"optional": t.email().optional().from_context("profile.email")}), ), ) diff --git a/tests/injection/random_injection.py b/tests/injection/random_injection.py index dc0d0fc1dc..bfec655ed9 100644 --- a/tests/injection/random_injection.py +++ b/tests/injection/random_injection.py @@ -1,7 +1,10 @@ -from typegraph.policy import Policy -from typegraph.runtimes.deno import DenoRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, t, typegraph +from typegraph.policy import Policy +from typegraph.runtimes.deno import DenoRuntime @typegraph() @@ -27,32 +30,32 @@ def random_injection(g: Graph): "city": t.string(config={"gen": "city"}).from_random(), "postcode": t.string(config={"gen": "postcode"}).from_random(), "country": t.string( - config={"gen": "country", "full": "true"} + config={"gen": "country", "full": "true"}, ).from_random(), "uri": t.uri().from_random(), "hostname": t.string(format="hostname").from_random(), - } + }, ) # test int, str, float enum test_enum_str = t.struct( { "educationLevel": t.enum( - ["primary", "secondary", "tertiary"] + ["primary", "secondary", "tertiary"], ).from_random(), - } + }, ) test_enum_int = t.struct( { "bits": t.integer(enum=[0, 1]).from_random(), - } + }, ) test_enum_float = t.struct( { "cents": t.float(enum=[0.25, 0.5, 1.0]).from_random(), - } + }, ) # test either @@ -62,7 +65,7 @@ def random_injection(g: Graph): toy_struct = t.struct( { "toy": toy, - } + }, ) # test union @@ -71,13 +74,13 @@ def random_injection(g: Graph): union_struct = t.struct( { "field": t.union([rgb, vec], name="UnionStruct").from_random(), - } + }, ) random_list = t.struct( { "names": t.list(t.string(config={"gen": "name"})).from_random(), - } + }, ) # Configure random injection seed value or the default will be used g.configure_random_injection(seed=1) diff --git a/tests/internal/internal.py b/tests/internal/internal.py index 63ac78dc03..c3f761ace9 100644 --- a/tests/internal/internal.py +++ b/tests/internal/internal.py @@ -1,10 +1,12 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime from typegraph.runtimes.python import PythonRuntime -from typegraph import t, typegraph - @typegraph() def internal(g: Graph): @@ -19,10 +21,13 @@ def internal(g: Graph): g.expose( sum=deno.import_(inp, out, module="ts/logic.ts", name="sum").with_policy( - internal + internal, ), remoteSumDeno=deno.import_( - inp, out, module="ts/logic.ts", name="remoteSum" + inp, + out, + module="ts/logic.ts", + name="remoteSum", ).with_policy(public), remoteSumPy=python.import_( inp, diff --git a/tests/internal/py/logic.py b/tests/internal/py/logic.py index f5d37da715..bd224f09b8 100644 --- a/tests/internal/py/logic.py +++ b/tests/internal/py/logic.py @@ -1,9 +1,10 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from .logic_types import Ctx import json +from .logic_types import Ctx + def remote_sum(inp: dict, ctx: Ctx) -> float: data = ctx.gql( diff --git a/tests/internal/py/logic_types.py b/tests/internal/py/logic_types.py index 125ceaa52d..844ce2c33b 100644 --- a/tests/internal/py/logic_types.py +++ b/tests/internal/py/logic_types.py @@ -1,6 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from dataclasses import asdict, dataclass, fields from types import NoneType -from typing import Callable, List, Union, get_origin, ForwardRef, Any -from dataclasses import dataclass, asdict, fields +from typing import Any, Callable, ForwardRef, List, Union, get_origin FORWARD_REFS = {} diff --git a/tests/introspection/union_either.py b/tests/introspection/union_either.py index 3db6e4d495..c2f2170ca3 100644 --- a/tests/introspection/union_either.py +++ b/tests/introspection/union_either.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -7,7 +10,8 @@ def union_either(g: Graph): rubix_cube = t.struct({"name": t.string(), "size": t.integer()}, name="Rubix") toygun = t.struct({"color": t.string()}, name="Toygun") gunpla = t.struct( - {"model": t.string(), "ref": t.union([t.string(), t.integer()])}, name="Gunpla" + {"model": t.string(), "ref": t.union([t.string(), t.integer()])}, + name="Gunpla", ) toy = t.either([rubix_cube, toygun, gunpla], name="Toy") diff --git a/tests/metagen/__snapshots__/metagen_test.ts.snap b/tests/metagen/__snapshots__/metagen_test.ts.snap index 8631459cdf..56e9c21ffa 100644 --- a/tests/metagen/__snapshots__/metagen_test.ts.snap +++ b/tests/metagen/__snapshots__/metagen_test.ts.snap @@ -740,9 +740,12 @@ export type RootThreeFnHandler = Handler; path: "./workspace/some/base/path/ts/fdk.ts", }, { - content: "from datetime import timedelta -from typing import Any, Callable, Optional + content: "# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from datetime import timedelta from types import RetryStrategy +from typing import Any, Callable, Optional class Context: @@ -1546,9 +1549,12 @@ export type RootThreeFnHandler = Handler; path: "./workspace/some/base/path/ts/fdk.ts", }, { - content: "from datetime import timedelta -from typing import Any, Callable, Optional + content: "# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from datetime import timedelta from types import RetryStrategy +from typing import Any, Callable, Optional class Context: diff --git a/tests/metagen/metagen_test.ts b/tests/metagen/metagen_test.ts index 59f16ed76e..500b2971ee 100644 --- a/tests/metagen/metagen_test.ts +++ b/tests/metagen/metagen_test.ts @@ -152,9 +152,9 @@ Meta.test("Metagen within sdk", async (t) => { const command = new Deno.Command("python3", { args: [typegraphPath], env: { - workspace_path: workspace, - gen_config: JSON.stringify(genConfig), - target_name: targetName, + WORKSPACE_PATH: workspace, + GEN_CONFIG: JSON.stringify(genConfig), + TARGET_NAME: targetName, }, stderr: "piped", stdout: "piped", @@ -220,9 +220,9 @@ Meta.test("Metagen within sdk with custom template", async (t) => { const command = new Deno.Command("python3", { args: [typegraphPath], env: { - workspace_path: workspace, - gen_config: JSON.stringify(genConfig), - target_name: targetName, + WORKSPACE_PATH: workspace, + GEN_CONFIG: JSON.stringify(genConfig), + TARGET_NAME: targetName, }, stderr: "piped", stdout: "piped", diff --git a/tests/metagen/typegraphs/identities.py b/tests/metagen/typegraphs/identities.py index 6c57c14b98..97f9b27866 100644 --- a/tests/metagen/typegraphs/identities.py +++ b/tests/metagen/typegraphs/identities.py @@ -1,7 +1,10 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph +from typegraph.runtimes.deno import DenoRuntime from typegraph.runtimes.python import PythonRuntime from typegraph.runtimes.wasm import WasmRuntime -from typegraph.runtimes.deno import DenoRuntime @typegraph() @@ -25,7 +28,7 @@ def identities(g: Graph): "boolean": t.boolean(), # TODO: file upload support for fdk? # "file": t.file(), - } + }, ).rename("primitives") composites = t.struct( { @@ -34,7 +37,7 @@ def identities(g: Graph): [ primitives, t.struct({"branch2": t.string()}).rename("branch2"), - ] + ], ), "union": t.union( [ @@ -42,10 +45,10 @@ def identities(g: Graph): t.integer(), t.string(), t.email().rename("branch4again"), - ] + ], ), "list": t.list(t.string()), - } + }, ).rename("composites") cycles1 = t.struct( { @@ -54,14 +57,14 @@ def identities(g: Graph): "phantom1": t.string().optional(), "to2": g.ref("cycles2").optional(), "list3": t.list(g.ref("cycles3")).optional(), - } + }, ).rename("cycles1") t.either( [ g.ref("cycles3"), g.ref("cycles1"), - ] + ], ).rename("cycles2") t.union( @@ -70,36 +73,36 @@ def identities(g: Graph): { "phantom3a": t.string().optional(), "to1": g.ref("cycles1").optional(), - } + }, ).rename("branch33A"), t.struct( { "phantom3b": t.string().optional(), "to2": g.ref("cycles2").optional(), - } + }, ).rename("branch33B"), - ] + ], ).rename("cycles3") simple_cycles_1 = t.struct( { "phantom1": t.string().optional(), "to2": g.ref("simple_cycles_2").optional(), - } + }, ).rename("simple_cycles_1") t.struct( { "phantom2": t.string().optional(), "to3": g.ref("simple_cycles_3").optional(), - } + }, ).rename("simple_cycles_2") t.struct( { "phantom3": t.string().optional(), "to1": g.ref("simple_cycles_1").optional(), - } + }, ).rename("simple_cycles_3") python = PythonRuntime() diff --git a/tests/metagen/typegraphs/identities/py/handlers.py b/tests/metagen/typegraphs/identities/py/handlers.py index 02375b1473..484a722dab 100644 --- a/tests/metagen/typegraphs/identities/py/handlers.py +++ b/tests/metagen/typegraphs/identities/py/handlers.py @@ -1,15 +1,18 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from . import handlers_types as types from .handlers_types import ( Composites, - typed_cycles, + Ctx, + Cycles1, Primitives, + SimpleCycles1, typed_composites, - Cycles1, + typed_cycles, typed_primitives, - SimpleCycles1, typed_simple_cycles, - Ctx, ) -from . import handlers_types as types @typed_primitives diff --git a/tests/metagen/typegraphs/identities/py/handlers_types.py b/tests/metagen/typegraphs/identities/py/handlers_types.py index cdf0871dd3..61c3014966 100644 --- a/tests/metagen/typegraphs/identities/py/handlers_types.py +++ b/tests/metagen/typegraphs/identities/py/handlers_types.py @@ -1,6 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from dataclasses import asdict, dataclass, fields from types import NoneType -from typing import Callable, List, Union, get_origin, ForwardRef, Any -from dataclasses import dataclass, asdict, fields +from typing import Any, Callable, ForwardRef, List, Union, get_origin FORWARD_REFS = {} diff --git a/tests/metagen/typegraphs/identities/rs/fdk.rs b/tests/metagen/typegraphs/identities/rs/fdk.rs index fc9bdd9610..8e24bbc749 100644 --- a/tests/metagen/typegraphs/identities/rs/fdk.rs +++ b/tests/metagen/typegraphs/identities/rs/fdk.rs @@ -109,7 +109,7 @@ impl Router { } pub fn init(&self, args: InitArgs) -> Result { - static MT_VERSION: &str = "0.5.0-rc.3"; + static MT_VERSION: &str = "0.5.0-rc.6"; if args.metatype_version != MT_VERSION { return Err(InitError::VersionMismatch(MT_VERSION.into())); } diff --git a/tests/metagen/typegraphs/identities/ts/fdk.ts b/tests/metagen/typegraphs/identities/ts/fdk.ts index 53f94ad7d2..99308f0d56 100644 --- a/tests/metagen/typegraphs/identities/ts/fdk.ts +++ b/tests/metagen/typegraphs/identities/ts/fdk.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // This file was @generated by metagen and is intended // to be generated again on subsequent metagen runs. diff --git a/tests/metagen/typegraphs/metagen.py b/tests/metagen/typegraphs/metagen.py index 889734cecc..310b7ab74e 100644 --- a/tests/metagen/typegraphs/metagen.py +++ b/tests/metagen/typegraphs/metagen.py @@ -1,9 +1,13 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +import json from dataclasses import asdict from os import getenv -from typegraph import typegraph, Policy, t, Graph + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.metagen import Metagen from typegraph.runtimes.python import PythonRuntime -import json @typegraph() @@ -42,9 +46,11 @@ def example_metagen(g: Graph): tg = example_metagen -workspace_path = getenv("workspace_path") -target_name = getenv("target_name") -gen_config = json.loads(getenv("gen_config")) +workspace_path = getenv("WORKSPACE_PATH") +target_name = getenv("TARGET_NAME") +gen_config = getenv("GEN_CONFIG") +assert workspace_path is not None and target_name is not None and gen_config is not None +gen_config = json.loads(gen_config) metagen = Metagen(workspace_path, gen_config) items = metagen.dry_run(tg, target_name, None) diff --git a/tests/metagen/typegraphs/python.py b/tests/metagen/typegraphs/python.py index 0461795936..8eeb2ed537 100644 --- a/tests/metagen/typegraphs/python.py +++ b/tests/metagen/typegraphs/python.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.python import PythonRuntime @@ -17,7 +20,7 @@ def example(g: Graph): "opt_union_flat": t.union([t.integer(), t.float()]).optional(), "reference": t.list(g.ref("Example")).optional(), "nested_ref": t.struct( - {"either": t.either([g.ref("Example"), references])} + {"either": t.either([g.ref("Example"), references])}, ), }, name="Example", diff --git a/tests/metagen/typegraphs/sample/py/client.py b/tests/metagen/typegraphs/sample/py/client.py index 935d695e9a..68b13f19d1 100644 --- a/tests/metagen/typegraphs/sample/py/client.py +++ b/tests/metagen/typegraphs/sample/py/client.py @@ -1,12 +1,18 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + # This file was @generated by metagen and is intended # to be generated again on subsequent metagen runs. -import typing +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import dataclasses as dc +import http.client as http_c import json -import urllib.request as request +import typing import urllib.error -import http.client as http_c +from urllib import request def selection_to_nodes( @@ -18,9 +24,9 @@ def selection_to_nodes( flags = selection.get("_") if flags is not None and not isinstance(flags, SelectionFlags): raise Exception( - f"selection field '_' should be of type SelectionFlags but found {type(flags)}" + f"selection field '_' should be of type SelectionFlags but found {type(flags)}", ) - select_all = True if flags is not None and flags.select_all else False + select_all = flags is not None and flags.select_all found_nodes = set(selection.keys()) for node_name, meta_fn in metas.items(): found_nodes.discard(node_name) @@ -48,7 +54,7 @@ def selection_to_nodes( continue if isinstance(instance_selection, Alias): raise Exception( - f"nested Alias node discovered at {parent_path}.{instance_name}" + f"nested Alias node discovered at {parent_path}.{instance_name}", ) instance_args: typing.Optional[NodeArgs] = None @@ -63,7 +69,7 @@ def selection_to_nodes( raise Exception( f"node at {parent_path}.{instance_name} is a node that " + "requires arguments " - + f"but detected argument is typeof {type(arg)}" + + f"but detected argument is typeof {type(arg)}", ) # convert arg dict to NodeArgs @@ -73,7 +79,7 @@ def selection_to_nodes( ty_name = expected_args.pop(key) if ty_name is None: raise Exception( - f"unexpected argument ${key} at {parent_path}.{instance_name}" + f"unexpected argument ${key} at {parent_path}.{instance_name}", ) instance_args[key] = NodeArgValue(ty_name, val) @@ -88,7 +94,7 @@ def selection_to_nodes( raise Exception( f"node at {parent_path}.{instance_name} is a composite " + "that requires an argument object " - + f"but selection is typeof {type(sub_selections)}" + + f"but selection is typeof {type(sub_selections)}", ) sub_selections = sub_selections[1] @@ -115,7 +121,7 @@ def selection_to_nodes( if meta.sub_nodes is not None: if meta.variants is not None: raise Exception( - "unreachable: union/either NodeMetas can't have subnodes" + "unreachable: union/either NodeMetas can't have subnodes", ) sub_nodes = selection_to_nodes( typing.cast("SelectionErased", sub_selections), @@ -151,7 +157,7 @@ def selection_to_nodes( instance_name="__typename", args=None, sub_nodes=None, - ) + ), ) union_selections[variant_ty] = nodes @@ -262,8 +268,7 @@ def get(self, key: str) -> PlaceholderValue: class Alias(typing.Generic[SelectionT]): - """ - Request multiple instances of a single node under different + """Request multiple instances of a single node under different aliases. """ @@ -280,7 +285,10 @@ def __init__(self, **aliases: SelectionT): None, ] CompositeSelectNoArgs = typing.Union[ - SelectionT, Alias[SelectionT], typing.Literal[False], None + SelectionT, + Alias[SelectionT], + typing.Literal[False], + None, ] CompositeSelectArgs = typing.Union[ typing.Tuple[typing.Union[ArgT, PlaceholderArgs], SelectionT], @@ -370,7 +378,7 @@ def convert_query_node_gql( gql_ty = ty_to_gql_ty_map[variant_ty] if gql_ty is None: raise Exception( - f"unreachable: no graphql type found for variant {variant_ty}" + f"unreachable: no graphql type found for variant {variant_ty}", ) gql_ty = gql_ty.strip("!") @@ -383,9 +391,9 @@ def convert_query_node_gql( out += f" {{ {sub_node_list}}}" elif isinstance(node.sub_nodes, list): sub_node_list = "" - for node in node.sub_nodes: + for sub_node in node.sub_nodes: sub_node_list += ( - f"{convert_query_node_gql(ty_to_gql_ty_map, node, variables)} " + f"{convert_query_node_gql(ty_to_gql_ty_map, sub_node, variables)} " ) out += f" {{ {sub_node_list}}}" return out @@ -405,7 +413,7 @@ def __init__( def build_gql( self, query: typing.Mapping[str, SelectNode], - ty: typing.Union[typing.Literal["query"], typing.Literal["mutation"]], + ty: typing.Literal["query", "mutation"], name: str = "", ): variables: typing.Dict[str, NodeArgValue] = {} @@ -439,7 +447,7 @@ def build_req( { "accept": "application/json", "content-type": "application/json", - } + }, ) data = json.dumps({"query": doc, "variables": variables}).encode("utf-8") return GraphQLRequest( @@ -471,8 +479,11 @@ def fetch( try: with request.urlopen( request.Request( - url=req.addr, method=req.method, headers=req.headers, data=req.body - ) + url=req.addr, + method=req.method, + headers=req.headers, + data=req.body, + ), ) as res: http_res: http_c.HTTPResponse = res return self.handle_response( @@ -481,7 +492,7 @@ def fetch( status=http_res.status, body=http_res.read(), headers={key: val for key, val in http_res.headers.items()}, - ) + ), ) except request.HTTPError as res: return self.handle_response( @@ -490,10 +501,10 @@ def fetch( status=res.status or 599, body=res.read(), headers={key: val for key, val in res.headers.items()}, - ) + ), ) except urllib.error.URLError as err: - raise Exception(f"URL error: {err.reason}") + raise Exception(f"URL error: {err.reason}") from err def query( self, @@ -502,7 +513,9 @@ def query( name: str = "", ) -> typing.Dict[str, Out]: doc, variables = self.build_gql( - {key: val for key, val in inp.items()}, "query", name + {key: val for key, val in inp.items()}, + "query", + name, ) return self.fetch(doc, variables, opts) @@ -513,7 +526,9 @@ def mutation( name: str = "", ) -> typing.Dict[str, Out]: doc, variables = self.build_gql( - {key: val for key, val in inp.items()}, "mutation", name + {key: val for key, val in inp.items()}, + "mutation", + name, ) return self.fetch(doc, variables, opts) @@ -537,7 +552,7 @@ def __init__( self, transport: GraphQLTransportBase, fun: typing.Callable[[PreparedArgs], typing.Mapping[str, SelectNode[Out]]], - ty: typing.Union[typing.Literal["query"], typing.Literal["mutation"]], + ty: typing.Literal["query", "mutation"], name: str = "", ): dry_run_node = fun(PreparedArgs()) @@ -567,7 +582,7 @@ def __init__( self, transport: GraphQLTransportUrlib, fun: typing.Callable[[PreparedArgs], typing.Mapping[str, SelectNode[Out]]], - ty: typing.Union[typing.Literal["query"], typing.Literal["mutation"]], + ty: typing.Literal["query", "mutation"], name: str = "", ): super().__init__(transport, fun, ty, name) @@ -592,10 +607,14 @@ def __init__(self, ty_to_gql_ty_map: typing.Dict[str, str]): self.ty_to_gql_ty_map = ty_to_gql_ty_map def graphql_sync( - self, addr: str, opts: typing.Optional[GraphQLTransportOptions] = None + self, + addr: str, + opts: typing.Optional[GraphQLTransportOptions] = None, ): return GraphQLTransportUrlib( - addr, opts or GraphQLTransportOptions({}), self.ty_to_gql_ty_map + addr, + opts or GraphQLTransportOptions({}), + self.ty_to_gql_ty_map, ) diff --git a/tests/metagen/typegraphs/sample/py/main.py b/tests/metagen/typegraphs/sample/py/main.py index e44d491f0b..72d8181027 100644 --- a/tests/metagen/typegraphs/sample/py/main.py +++ b/tests/metagen/typegraphs/sample/py/main.py @@ -1,12 +1,16 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +import json +import os + from client import ( - QueryGraph, + Alias, PostSelections, + QueryGraph, SelectionFlags, UserSelections, - Alias, ) -import json -import os qg = QueryGraph() port = os.getenv("TG_PORT") @@ -42,7 +46,7 @@ "id": args.get("id"), "slug": args.get("slug"), "title": args.get("title"), - } + }, ), "compositeNoArgs": qg.composite_no_args({"_": SelectionFlags(select_all=True)}), "compositeArgs": qg.composite_args( @@ -62,7 +66,7 @@ "id": "94be5420-8c4a-4e67-b4f4-e1b2b54832a2", "slug": "s", "title": "t", - } + }, ) res3 = gql_client.query( @@ -85,7 +89,7 @@ ), "posts": qg.get_posts({"_": SelectionFlags(select_all=True)}), "scalarNoArgs": qg.scalar_no_args(), - } + }, ) res4 = gql_client.mutation( @@ -95,7 +99,7 @@ "id": "94be5420-8c4a-4e67-b4f4-e1b2b54832a2", "slug": "", "title": "", - } + }, ), "compositeNoArgs": qg.composite_no_args({"_": SelectionFlags(select_all=True)}), "compositeArgs": qg.composite_args( @@ -104,7 +108,7 @@ }, {"_": SelectionFlags(select_all=True)}, ), - } + }, ) res5 = gql_client.query( @@ -112,7 +116,7 @@ "scalarUnion": qg.scalar_union( { "id": "94be5420-8c4a-4e67-b4f4-e1b2b54832a2", - } + }, ), "compositeUnion1": qg.composite_union( { @@ -135,7 +139,7 @@ "user": {"_": SelectionFlags(select_all=True)}, }, ), - } + }, ) print(json.dumps([res1, res1a, res2, res3, res4, res5])) diff --git a/tests/metagen/typegraphs/sample/ts/client.ts b/tests/metagen/typegraphs/sample/ts/client.ts index 25f0bb1d91..2978589e86 100644 --- a/tests/metagen/typegraphs/sample/ts/client.ts +++ b/tests/metagen/typegraphs/sample/ts/client.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // This file was @generated by metagen and is intended // to be generated again on subsequent metagen runs. diff --git a/tests/multi_typegraph/multi_typegraph.py b/tests/multi_typegraph/multi_typegraph.py index 43a0331a32..e3e94a00a5 100644 --- a/tests/multi_typegraph/multi_typegraph.py +++ b/tests/multi_typegraph/multi_typegraph.py @@ -1,8 +1,10 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime - -from typegraph import t, typegraph from typegraph.runtimes.http import HttpRuntime @@ -33,7 +35,9 @@ def http_py(g: Graph): ) post_by_id = remote.get( - "/posts/{id}", t.struct({"id": t.integer()}), t.optional(g.ref("Post")) + "/posts/{id}", + t.struct({"id": t.integer()}), + t.optional(g.ref("Post")), ).with_policy(public) update_post = remote.patch( @@ -50,11 +54,13 @@ def http_py(g: Graph): ).with_policy(public) get_posts = remote.get("/posts", t.struct({}), t.list(g.ref("Post"))).with_policy( - public + public, ) get_posts_by_tags = remote.get( - "/posts", t.struct({"tags": t.list(t.string())}), t.list(g.ref("Post")) + "/posts", + t.struct({"tags": t.list(t.string())}), + t.list(g.ref("Post")), ).with_policy(public) delete_post = remote.delete( @@ -64,7 +70,9 @@ def http_py(g: Graph): ).with_policy(public) get_comments = remote.get( - "/comments", t.struct({"postId": t.integer()}), t.list(g.ref("Comment")) + "/comments", + t.struct({"postId": t.integer()}), + t.list(g.ref("Comment")), ).with_policy(public) post_comment = remote.post( @@ -81,7 +89,9 @@ def http_py(g: Graph): ).with_policy(public) delete_comment = remote.delete( - "/comments/{id}", t.struct({"id": t.integer()}), t.boolean() + "/comments/{id}", + t.struct({"id": t.integer()}), + t.boolean(), ).with_policy(public) g.expose( diff --git a/tests/nesting/nesting.py b/tests/nesting/nesting.py index e0c15a0047..0f298045c0 100644 --- a/tests/nesting/nesting.py +++ b/tests/nesting/nesting.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.http import HttpRuntime @@ -38,11 +41,15 @@ def nesting(g: Graph): ) user_by_id = remote.get( - "/users/{id}", t.struct({"id": t.integer()}), t.optional(g.ref("User")) + "/users/{id}", + t.struct({"id": t.integer()}), + t.optional(g.ref("User")), ) post_by_id = remote.get( - "/posts/{id}", t.struct({"id": t.integer()}), t.optional(g.ref("Post")) + "/posts/{id}", + t.struct({"id": t.integer()}), + t.optional(g.ref("Post")), ) g.expose( diff --git a/tests/params/apply.py b/tests/params/apply.py index f47e11f1d7..7639775343 100644 --- a/tests/params/apply.py +++ b/tests/params/apply.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -13,7 +16,7 @@ def apply(g: Graph): { "a": g.as_arg("first"), "b": g.as_arg("second"), - } + }, ), flattened=deno.identity( t.struct( @@ -22,7 +25,7 @@ def apply(g: Graph): { "a1": t.integer(), "a2": t.integer(), - } + }, ), "b": t.struct( { @@ -30,13 +33,13 @@ def apply(g: Graph): { "b11": t.integer(), "b12": t.integer(), - } + }, ), "b2": t.integer(), - } + }, ), - } - ) + }, + ), ).apply( { "a": { @@ -50,7 +53,7 @@ def apply(g: Graph): }, "b2": g.as_arg("b2"), }, - } + }, ), withContext=deno.identity(t.struct({"a": t.integer(), "b": t.string()})).apply( { @@ -62,7 +65,7 @@ def apply(g: Graph): { "a": g.as_arg("first"), "b": g.from_secret("MY_SECRET"), - } + }, ), onOptional=deno.identity( t.struct( @@ -70,16 +73,16 @@ def apply(g: Graph): "a": t.struct( { "b": t.integer(), - } - ).optional() - } - ) + }, + ).optional(), + }, + ), ).apply( { "a": { "b": g.set(12), - } - } + }, + }, ), withParent=deno.func( t.struct(), @@ -87,14 +90,14 @@ def apply(g: Graph): { "a": t.integer(name="A"), "b": deno.identity( - t.struct({"b1": t.integer(), "b2": t.integer()}) + t.struct({"b1": t.integer(), "b2": t.integer()}), ).apply( { "b1": g.as_arg("b1"), "b2": g.from_parent("A"), - } + }, ), - } + }, ), code="""() => ({ a: 1 })""", ), @@ -102,49 +105,49 @@ def apply(g: Graph): t.struct( { "a": t.list(t.integer()), - } - ) + }, + ), ).apply( { "a": [ g.as_arg("first"), g.as_arg("second"), - ] - } + ], + }, ), withNestedArrays=deno.identity( t.struct( { "a": t.list(t.list(t.integer())), - } - ) + }, + ), ).apply( { "a": [ [g.as_arg("first")], g.as_arg("second"), - ] - } + ], + }, ), withArrayOfObjects=deno.identity( t.struct( { "a": t.list(t.struct({"b": t.integer()})), - } - ) + }, + ), ).apply( { "a": [ {"b": g.as_arg("first")}, g.as_arg("second"), - ] - } + ], + }, ), contextToUnionType=deno.identity( t.struct( { "a": t.union([t.integer(), t.string()]), - } - ) + }, + ), ).apply({"a": g.from_context("context_key")}), ) diff --git a/tests/params/apply_nested_context.py b/tests/params/apply_nested_context.py index 1335bdbac9..5fe425672b 100644 --- a/tests/params/apply_nested_context.py +++ b/tests/params/apply_nested_context.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, t, Graph, Policy +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes import DenoRuntime @@ -10,18 +13,18 @@ def apply_nested_context(g: Graph): g.expose( has_profile, simple=deno.identity(t.struct({"id": t.integer()})).apply( - {"id": g.from_context("profile.id")} + {"id": g.from_context("profile.id")}, ), customKey=deno.identity(t.struct({"custom": t.string()})).apply( - {"custom": g.from_context('.profile["custom key"]')} + {"custom": g.from_context('.profile["custom key"]')}, ), thirdProfileData=deno.identity(t.struct({"third": t.string()})).apply( - {"third": g.from_context("profile.data[2]")} + {"third": g.from_context("profile.data[2]")}, ), deeplyNestedEntry=deno.identity(t.struct({"value": t.string()})).apply( - {"value": g.from_context('profile.deeply[0]["nested"][1].value')} + {"value": g.from_context('profile.deeply[0]["nested"][1].value')}, ), optional=deno.identity(t.struct({"optional": t.email().optional()})).apply( - {"optional": g.from_context("profile.email")} + {"optional": g.from_context("profile.email")}, ), ) diff --git a/tests/params/prisma_apply.py b/tests/params/prisma_apply.py index 78afba91b7..ef1c0fb361 100644 --- a/tests/params/prisma_apply.py +++ b/tests/params/prisma_apply.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.providers import PrismaRuntime @@ -25,14 +28,14 @@ def prisma_apply(g: Graph): "name": g.as_arg(), "email": g.as_arg(), "age": g.as_arg(), - } - } + }, + }, ), findUser=prisma.find_unique(user).apply( { "where": { "id": g.as_arg(), - } - } + }, + }, ), ) diff --git a/tests/planner/planner.py b/tests/planner/planner.py index 88d75071f0..15e02e4987 100644 --- a/tests/planner/planner.py +++ b/tests/planner/planner.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, t, Graph, Policy +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -11,8 +14,8 @@ def planner(g: Graph): [ t.struct({"c": t.integer()}, name="C1"), t.struct({"c": t.string()}, name="C2"), - ] - ) + ], + ), }, name="B", ) @@ -32,7 +35,7 @@ def planner(g: Graph): "first": t.string(), "second": t.list(t.float()), "third": t.boolean().optional(), - } + }, ), "union1": union1, "union2": union2, @@ -46,7 +49,7 @@ def planner(g: Graph): t.integer(), code=dummy_func, ), - } + }, ) registered_user = t.struct( @@ -60,7 +63,7 @@ def planner(g: Graph): "email": t.email(), "displayName": t.string(), "profilePic": t.string(), - } + }, ), code=dummy_func, ), @@ -81,7 +84,7 @@ def planner(g: Graph): "firstName": t.string(), "lastName": t.string(), "profilePic": t.string(), - } + }, ) public = Policy.public() @@ -109,7 +112,7 @@ def planner(g: Graph): t.string(), code=dummy_func, ), - } + }, ), code=dummy_func, ), @@ -119,7 +122,7 @@ def planner(g: Graph): { "id": t.integer(as_id=True), "user": t.either([registered_user, guest_user]), - } + }, ), code=dummy_func, ), diff --git a/tests/policies/effects_py.py b/tests/policies/effects_py.py index a1edcd643e..ac216a6561 100644 --- a/tests/policies/effects_py.py +++ b/tests/policies/effects_py.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, effects, t, typegraph from typegraph.graph.params import Auth from typegraph.runtimes.deno import DenoRuntime @@ -14,7 +17,7 @@ def effects_py(g: Graph): "id": t.integer(), "email": t.email(), "password_hash": t.string().with_policy( - deno.policy("deny_all", "() => false") + deno.policy("deny_all", "() => false"), ), }, name="User", @@ -41,7 +44,7 @@ def effects_py(g: Graph): }, min=1, ), - } + }, ), user, code="({ id, set }) => ({ id, ...(set.email ? { email: set.email }: {}), ...(set.password ? { password_hash: 'xxx' }: {})})", diff --git a/tests/policies/policies.py b/tests/policies/policies.py index 8363dbe999..66bd406997 100644 --- a/tests/policies/policies.py +++ b/tests/policies/policies.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, t, Graph, Policy +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth from typegraph.runtimes.deno import DenoRuntime @@ -25,7 +28,7 @@ def policies(g: Graph): pol_true=fn.with_policy(deno.policy("true", "() => true")), pol_false=fn.with_policy(deno.policy("false", "() => false")), pol_two=fn.with_policy( - deno.policy("eq_two", "(_args, { context }) => Number(context.a) === 2") + deno.policy("eq_two", "(_args, { context }) => Number(context.a) === 2"), ), ns=t.struct( { @@ -33,8 +36,8 @@ def policies(g: Graph): t.struct({}), t.struct({"id": t.integer()}), code="() => ({ id: 12 })", - ) - } + ), + }, ), ) diff --git a/tests/policies/policies_jwt.py b/tests/policies/policies_jwt.py index 8fb1199b71..4c36b4cc72 100644 --- a/tests/policies/policies_jwt.py +++ b/tests/policies/policies_jwt.py @@ -1,6 +1,9 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import re -from typegraph import typegraph, Policy, t, Graph +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth from typegraph.runtimes.deno import DenoRuntime @@ -21,6 +24,8 @@ def policies_jwt(g: Graph): code="""() => "Hello World!" """, ).with_policy(some_policy), sayHelloRegexWorld=deno.func( - t.struct({}), t.string(), code="""() => "Hello World!" """ + t.struct({}), + t.string(), + code="""() => "Hello World!" """, ).with_policy(regex_policy), ) diff --git a/tests/policies/policies_jwt_format.py b/tests/policies/policies_jwt_format.py index 28d6ae61b7..01ec84559d 100644 --- a/tests/policies/policies_jwt_format.py +++ b/tests/policies/policies_jwt_format.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth from typegraph.runtimes.deno import DenoRuntime diff --git a/tests/policies/policies_jwt_injection.py b/tests/policies/policies_jwt_injection.py index 427b5d9724..6f5bfd1f71 100644 --- a/tests/policies/policies_jwt_injection.py +++ b/tests/policies/policies_jwt_injection.py @@ -1,16 +1,17 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.graph.params import Auth from typegraph.runtimes.deno import DenoRuntime @typegraph() def policies_jwt_injection(g: Graph): - """ - This is expected to enforce the typescript generated code to return true + """This is expected to enforce the typescript generated code to return true no matter what the context is (see policies_test.ts) for that reason the input has to be sanitized with sanitizers.sanitize_ts_string(.) """ - deno = DenoRuntime() some_policy = Policy.context("field", '"; return true; "') @@ -18,6 +19,8 @@ def policies_jwt_injection(g: Graph): g.expose( sayHelloWorld=deno.func( - t.struct({}), t.string(), code="""() => 'Hello World!'""" + t.struct({}), + t.string(), + code="""() => 'Hello World!'""", ).with_policy(some_policy), ) diff --git a/tests/query_parsers/graphql_namespaces.py b/tests/query_parsers/graphql_namespaces.py index 6be69ae61c..9aeaaa695f 100644 --- a/tests/query_parsers/graphql_namespaces.py +++ b/tests/query_parsers/graphql_namespaces.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, effects, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, effects, t, typegraph from typegraph.runtimes.graphql import GraphQLRuntime @@ -17,7 +20,9 @@ def graphql_namespaces(g: Graph): { # operations under `user` namespace "find": gql.query( - t.struct({"id": user_id}), user_model, path=("findUser",) + t.struct({"id": user_id}), + user_model, + path=("findUser",), ).with_policy(public), "update": gql.mutation( user_model, diff --git a/tests/regression/invalid_ref_error_message/invalid_ref.py b/tests/regression/invalid_ref_error_message/invalid_ref.py index 452db23bdf..eed331c07a 100644 --- a/tests/regression/invalid_ref_error_message/invalid_ref.py +++ b/tests/regression/invalid_ref_error_message/invalid_ref.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Graph, Policy, t +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes import DenoRuntime diff --git a/tests/rest/rest_simple.py b/tests/rest/rest_simple.py index 6496e67874..ed4f78b156 100644 --- a/tests/rest/rest_simple.py +++ b/tests/rest/rest_simple.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -12,7 +15,7 @@ def rest_simple(g: Graph): query ping { ping } - """ + """, ) ping = deno.func( diff --git a/tests/runtimes/deno/deno.py b/tests/runtimes/deno/deno.py index 9d8370c1f0..41703aea1b 100644 --- a/tests/runtimes/deno/deno.py +++ b/tests/runtimes/deno/deno.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import effects, t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import effects, t, typegraph - @typegraph() def deno(g: Graph): diff --git a/tests/runtimes/deno/deno_dep.py b/tests/runtimes/deno/deno_dep.py index 00ccae2fb1..ccfef0f8fa 100644 --- a/tests/runtimes/deno/deno_dep.py +++ b/tests/runtimes/deno/deno_dep.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def deno_dep(g: Graph): diff --git a/tests/runtimes/deno/deno_dir.py b/tests/runtimes/deno/deno_dir.py index f3ca1b0ad4..bb9667b45f 100644 --- a/tests/runtimes/deno/deno_dir.py +++ b/tests/runtimes/deno/deno_dir.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def deno_dir(g: Graph): diff --git a/tests/runtimes/deno/deno_duplicate_artifact.py b/tests/runtimes/deno/deno_duplicate_artifact.py index 8b094d0d38..a930b8c5ab 100644 --- a/tests/runtimes/deno/deno_duplicate_artifact.py +++ b/tests/runtimes/deno/deno_duplicate_artifact.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def deno_duplicate_artifact(g: Graph): diff --git a/tests/runtimes/deno/deno_globs.py b/tests/runtimes/deno/deno_globs.py index f0ab6420d7..ba46a308bf 100644 --- a/tests/runtimes/deno/deno_globs.py +++ b/tests/runtimes/deno/deno_globs.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def deno_globs(g: Graph): diff --git a/tests/runtimes/deno/deno_no_artifact.py b/tests/runtimes/deno/deno_no_artifact.py index 681d50fdb9..7c4fbb8d27 100644 --- a/tests/runtimes/deno/deno_no_artifact.py +++ b/tests/runtimes/deno/deno_no_artifact.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def deno_no_artifact(g: Graph): diff --git a/tests/runtimes/deno/deno_partial.py b/tests/runtimes/deno/deno_partial.py index c4441993f8..c12cde9f90 100644 --- a/tests/runtimes/deno/deno_partial.py +++ b/tests/runtimes/deno/deno_partial.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def deno_partial(g: Graph): diff --git a/tests/runtimes/deno/deno_reload.py b/tests/runtimes/deno/deno_reload.py index c126b45e67..5ff8456972 100644 --- a/tests/runtimes/deno/deno_reload.py +++ b/tests/runtimes/deno/deno_reload.py @@ -1,10 +1,13 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import os + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def deno_reload(g: Graph): diff --git a/tests/runtimes/graphql/typegraphs/python/graphql.py b/tests/runtimes/graphql/typegraphs/python/graphql.py index 1c11184b86..b08fa203a2 100644 --- a/tests/runtimes/graphql/typegraphs/python/graphql.py +++ b/tests/runtimes/graphql/typegraphs/python/graphql.py @@ -1,7 +1,10 @@ -from typegraph.providers.prisma import PrismaRuntime -from typegraph.runtimes.graphql import GraphQLRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, effects, t, typegraph +from typegraph.providers.prisma import PrismaRuntime +from typegraph.runtimes.graphql import GraphQLRuntime _user = t.struct( {"id": t.string(as_id=True), "name": t.string()}, @@ -52,7 +55,7 @@ def graphql(g: Graph): t.struct( { "input": create_user_input, - } + }, ), _user, effects.create(False), diff --git a/tests/runtimes/http/http_content_type.py b/tests/runtimes/http/http_content_type.py index 9997a2d9f5..8985f911c2 100644 --- a/tests/runtimes/http/http_content_type.py +++ b/tests/runtimes/http/http_content_type.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.http import HttpRuntime @@ -32,7 +35,7 @@ def http_content_type(g: Graph): { "celcius": t.float(), "rounded": t.boolean(), - } + }, ), }, name="QInfos", diff --git a/tests/runtimes/http/http_py.py b/tests/runtimes/http/http_py.py index 2f3b713469..75bfecd68f 100644 --- a/tests/runtimes/http/http_py.py +++ b/tests/runtimes/http/http_py.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.http import HttpRuntime @@ -29,7 +32,9 @@ def http_py(g: Graph): ) post_by_id = remote.get( - "/posts/{id}", t.struct({"id": t.integer()}), t.optional(g.ref("Post")) + "/posts/{id}", + t.struct({"id": t.integer()}), + t.optional(g.ref("Post")), ).with_policy(public) update_post = remote.patch( @@ -46,11 +51,13 @@ def http_py(g: Graph): ).with_policy(public) get_posts = remote.get("/posts", t.struct({}), t.list(g.ref("Post"))).with_policy( - public + public, ) get_posts_by_tags = remote.get( - "/posts", t.struct({"tags": t.list(t.string())}), t.list(g.ref("Post")) + "/posts", + t.struct({"tags": t.list(t.string())}), + t.list(g.ref("Post")), ).with_policy(public) delete_post = remote.delete( @@ -60,7 +67,9 @@ def http_py(g: Graph): ).with_policy(public) get_comments = remote.get( - "/comments", t.struct({"postId": t.integer()}), t.list(g.ref("Comment")) + "/comments", + t.struct({"postId": t.integer()}), + t.list(g.ref("Comment")), ).with_policy(public) post_comment = remote.post( @@ -77,7 +86,9 @@ def http_py(g: Graph): ).with_policy(public) delete_comment = remote.delete( - "/comments/{id}", t.struct({"id": t.integer()}), t.boolean() + "/comments/{id}", + t.struct({"id": t.integer()}), + t.boolean(), ).with_policy(public) g.expose( diff --git a/tests/runtimes/prisma/full_prisma_mapping.py b/tests/runtimes/prisma/full_prisma_mapping.py index 6ab88a46ba..084a4450cf 100644 --- a/tests/runtimes/prisma/full_prisma_mapping.py +++ b/tests/runtimes/prisma/full_prisma_mapping.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.gen.exports.runtimes import EffectUpdate from typegraph.providers.prisma import PrismaRuntime @@ -71,10 +74,10 @@ def full_prisma_mapping(g: Graph): { "where": { "comments": { - "some": {"author": {"id": g.inherit().from_context("user_id")}} - } - } - } + "some": {"author": {"id": g.inherit().from_context("user_id")}}, + }, + }, + }, ), findFirstPost=db.find_first(post), findFirstComment=db.find_first(comment), @@ -90,7 +93,7 @@ def full_prisma_mapping(g: Graph): findFirstPostWithReduce=db.find_first(post).reduce( { "where": {"id": 10007}, - } + }, ), testExecuteRaw=db.execute( 'UPDATE "Post" SET title = ${replacement} WHERE title LIKE ${title}', @@ -98,7 +101,7 @@ def full_prisma_mapping(g: Graph): { "title": t.string().set("%Title 2%"), "replacement": t.string(), - } + }, ), EffectUpdate(True), ), @@ -117,7 +120,7 @@ def full_prisma_mapping(g: Graph): "two": t.integer(), "title": t.string(), "idlist": t.list(t.integer()), - } + }, ), t.list( t.struct( @@ -125,8 +128,8 @@ def full_prisma_mapping(g: Graph): "id": t.integer(), "title": t.string(), "reactions": t.integer(), - } - ) + }, + ), ), ).reduce( { @@ -134,6 +137,6 @@ def full_prisma_mapping(g: Graph): "one": 10002, "two": -1, "idlist": [10003, 10002, 10007], - } + }, ), ) diff --git a/tests/runtimes/prisma/mixed_runtime.py b/tests/runtimes/prisma/mixed_runtime.py index 2e27d1772b..76530802b1 100644 --- a/tests/runtimes/prisma/mixed_runtime.py +++ b/tests/runtimes/prisma/mixed_runtime.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, t, Graph, Policy +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.providers.prisma import PrismaRuntime from typegraph.runtimes.graphql import GraphQLRuntime from typegraph.runtimes.random import RandomRuntime diff --git a/tests/runtimes/prisma/multi_relations.py b/tests/runtimes/prisma/multi_relations.py index e06d8c933b..1f9745605c 100644 --- a/tests/runtimes/prisma/multi_relations.py +++ b/tests/runtimes/prisma/multi_relations.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.providers.prisma import PrismaRuntime diff --git a/tests/runtimes/prisma/multiple_runtimes.py b/tests/runtimes/prisma/multiple_runtimes.py index 2b9f8114a1..251b4662c5 100644 --- a/tests/runtimes/prisma/multiple_runtimes.py +++ b/tests/runtimes/prisma/multiple_runtimes.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.providers.prisma import PrismaRuntime diff --git a/tests/runtimes/prisma/normal_1_1.py b/tests/runtimes/prisma/normal_1_1.py index 7837f08ce3..987e45ea6a 100644 --- a/tests/runtimes/prisma/normal_1_1.py +++ b/tests/runtimes/prisma/normal_1_1.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.providers.prisma import PrismaRuntime diff --git a/tests/runtimes/prisma/optional_1_1.py b/tests/runtimes/prisma/optional_1_1.py index b5b0b1f589..d7d5074e10 100644 --- a/tests/runtimes/prisma/optional_1_1.py +++ b/tests/runtimes/prisma/optional_1_1.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.providers.prisma import PrismaRuntime diff --git a/tests/runtimes/prisma/optional_1_n.py b/tests/runtimes/prisma/optional_1_n.py index a580230c28..08f0581f79 100644 --- a/tests/runtimes/prisma/optional_1_n.py +++ b/tests/runtimes/prisma/optional_1_n.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.providers.prisma import PrismaRuntime diff --git a/tests/runtimes/prisma/prisma.py b/tests/runtimes/prisma/prisma.py index 7e7165dabe..974d447851 100644 --- a/tests/runtimes/prisma/prisma.py +++ b/tests/runtimes/prisma/prisma.py @@ -1,6 +1,9 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.providers.prisma import PrismaRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.effects import CREATE +from typegraph.providers.prisma import PrismaRuntime @typegraph() diff --git a/tests/runtimes/prisma/prisma_edgecases.py b/tests/runtimes/prisma/prisma_edgecases.py index 79964f5330..b7a5b89f6f 100644 --- a/tests/runtimes/prisma/prisma_edgecases.py +++ b/tests/runtimes/prisma/prisma_edgecases.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.providers.prisma import PrismaRuntime diff --git a/tests/runtimes/prisma/schema_generation.py b/tests/runtimes/prisma/schema_generation.py index 16035e21fe..b04119b2fd 100644 --- a/tests/runtimes/prisma/schema_generation.py +++ b/tests/runtimes/prisma/schema_generation.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, t, typegraph from typegraph.effects import CREATE, UPDATE from typegraph.providers import PrismaRuntime from typegraph.runtimes import DenoRuntime -from typegraph import Graph, t, typegraph - @typegraph() def simple_model(g: Graph): @@ -521,7 +523,7 @@ def multi_field_unique(g: Graph): { "id": t.uuid(as_id=True, config=["auto"]), "projects": t.list(g.ref("Project")), - } + }, ).rename("Account") _project = t.struct( diff --git a/tests/runtimes/python/py/hello.py b/tests/runtimes/python/py/hello.py index dc9b0d49b8..a3aa157827 100644 --- a/tests/runtimes/python/py/hello.py +++ b/tests/runtimes/python/py/hello.py @@ -1,6 +1,10 @@ -from .nested.dep import hello +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typing import Dict +from .nested.dep import hello + def sayHello(x: Dict): return hello(x["name"]) diff --git a/tests/runtimes/python/py/nested/dep.py b/tests/runtimes/python/py/nested/dep.py index a8406242a8..6cfce6287a 100644 --- a/tests/runtimes/python/py/nested/dep.py +++ b/tests/runtimes/python/py/nested/dep.py @@ -1,2 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + + def hello(name: str): return f"Hello {name}" diff --git a/tests/runtimes/python/python.py b/tests/runtimes/python/python.py index cd3610a8ed..0c9da150c3 100644 --- a/tests/runtimes/python/python.py +++ b/tests/runtimes/python/python.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.python import PythonRuntime -from typegraph import t, typegraph - def test(x): return x["a"] diff --git a/tests/runtimes/python/python_dir.py b/tests/runtimes/python/python_dir.py index bbb3e64f6f..c7cb43c40b 100644 --- a/tests/runtimes/python/python_dir.py +++ b/tests/runtimes/python/python_dir.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.python import PythonRuntime -from typegraph import t, typegraph - @typegraph() def python_dir(g: Graph): diff --git a/tests/runtimes/python/python_duplicate_artifact.py b/tests/runtimes/python/python_duplicate_artifact.py index 30ca0d82da..a9f94017dd 100644 --- a/tests/runtimes/python/python_duplicate_artifact.py +++ b/tests/runtimes/python/python_duplicate_artifact.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.python import PythonRuntime -from typegraph import t, typegraph - @typegraph() def python_duplicate_artifact(g: Graph): diff --git a/tests/runtimes/python/python_globs.py b/tests/runtimes/python/python_globs.py index 617d292546..581b68988f 100644 --- a/tests/runtimes/python/python_globs.py +++ b/tests/runtimes/python/python_globs.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.python import PythonRuntime -from typegraph import t, typegraph - @typegraph() def python_globs(g: Graph): diff --git a/tests/runtimes/python/python_no_artifact.py b/tests/runtimes/python/python_no_artifact.py index e9bd61bd9f..fc89a65454 100644 --- a/tests/runtimes/python/python_no_artifact.py +++ b/tests/runtimes/python/python_no_artifact.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.python import PythonRuntime -from typegraph import t, typegraph - @typegraph() def python_no_artifact(g: Graph): diff --git a/tests/runtimes/random/random_.py b/tests/runtimes/random/random_.py index 65443e5b3d..5cd643de29 100644 --- a/tests/runtimes/random/random_.py +++ b/tests/runtimes/random/random_.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy @@ -9,7 +12,7 @@ "int": t.integer(), "str": t.string(), "email": t.email(), - } + }, ) users = t.struct( @@ -23,15 +26,15 @@ "city": t.string(config={"gen": "city"}), "postcode": t.string(config={"gen": "postcode"}), "country": t.string(config={"gen": "country", "full": True}), - } + }, ), - } + }, ) list = t.struct( { "array_of_array_of_names": t.list(t.list(t.string(config={"gen": "name"}))), - } + }, ) diff --git a/tests/runtimes/s3/s3.py b/tests/runtimes/s3/s3.py index dede2e75d8..7b1f73d2b5 100644 --- a/tests/runtimes/s3/s3.py +++ b/tests/runtimes/s3/s3.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.providers.aws import S3Runtime @@ -7,7 +10,11 @@ def s3(g: Graph): public = Policy.public() s3 = S3Runtime( - "HOST", "REGION", "access_key", "secret_key", path_style_secret="PATH_STYLE" + "HOST", + "REGION", + "access_key", + "secret_key", + path_style_secret="PATH_STYLE", ) g.expose( diff --git a/tests/runtimes/substantial/child_workflow.ts b/tests/runtimes/substantial/child_workflow.ts index 904d2b9b90..161dc40e04 100644 --- a/tests/runtimes/substantial/child_workflow.ts +++ b/tests/runtimes/substantial/child_workflow.ts @@ -1,8 +1,11 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Context } from "./imports/common_types.ts"; function apply(pkg: string, oldVersion: string, newVersion: string) { console.info( - `Updating ${pkg} v${oldVersion} => ${pkg} v${newVersion}: applied` + `Updating ${pkg} v${oldVersion} => ${pkg} v${newVersion}: applied`, ); } diff --git a/tests/runtimes/substantial/common.ts b/tests/runtimes/substantial/common.ts index 5aca8d3dda..e1514b12f3 100644 --- a/tests/runtimes/substantial/common.ts +++ b/tests/runtimes/substantial/common.ts @@ -1,4 +1,7 @@ -import { assertExists, assertEquals } from "@std/assert"; +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + +import { assertEquals, assertExists } from "@std/assert"; import { connect, parseURL } from "redis"; import { gql, Meta, sleep } from "../../utils/mod.ts"; import { MetaTestCleanupFn } from "test-utils/test.ts"; @@ -33,7 +36,7 @@ export function basicTestTemplate( }; secrets?: Record; }, - cleanup?: MetaTestCleanupFn + cleanup?: MetaTestCleanupFn, ) { Meta.test( { @@ -66,11 +69,11 @@ export function basicTestTemplate( currentRunId = body.data?.start_sleep! as string; assertExists( currentRunId, - "Run id was not returned when workflow was started" + "Run id was not returned when workflow was started", ); }) .on(e); - } + }, ); // Let interrupts to do their jobs for a bit @@ -104,7 +107,7 @@ export function basicTestTemplate( }, }) .on(e); - } + }, ); await sleep(delays.awaitSleepCompleteSec * 1000); @@ -148,9 +151,9 @@ export function basicTestTemplate( }, }) .on(e); - } + }, ); - } + }, ); } @@ -165,7 +168,7 @@ export function concurrentWorkflowTestTemplate( }; secrets?: Record; }, - cleanup?: MetaTestCleanupFn + cleanup?: MetaTestCleanupFn, ) { Meta.test( { @@ -213,7 +216,7 @@ export function concurrentWorkflowTestTemplate( runIds.push(...[one, two, three]); }) .on(e); - } + }, ); // let's wait for a bit to make sure interrupts are doing their jobs @@ -249,7 +252,7 @@ export function concurrentWorkflowTestTemplate( three: [runIds[2]], }) .on(e); - } + }, ); // This is arbitrary, if ops are leaking that means it should be increased @@ -283,20 +286,20 @@ export function concurrentWorkflowTestTemplate( assertEquals( body?.data?.results?.ongoing?.count, 0, - `0 workflow currently running (${backendName})` + `0 workflow currently running (${backendName})`, ); assertEquals( body?.data?.results?.completed?.count, 3, - `3 workflows completed (${backendName})` + `3 workflows completed (${backendName})`, ); const localSorter = (a: any, b: any) => a.run_id.localeCompare(b.run_id); - const received = - body?.data?.results?.completed?.runs ?? ([] as Array); + const received = body?.data?.results?.completed?.runs ?? + ([] as Array); const expected = [ { result: { @@ -324,12 +327,12 @@ export function concurrentWorkflowTestTemplate( assertEquals( received.sort(localSorter), expected.sort(localSorter), - `All three workflows have completed, including the aborted one (${backendName})` + `All three workflows have completed, including the aborted one (${backendName})`, ); }) .on(e); }); - } + }, ); } @@ -344,7 +347,7 @@ export function retrySaveTestTemplate( }; secrets?: Record; }, - cleanup?: MetaTestCleanupFn + cleanup?: MetaTestCleanupFn, ) { Meta.test( { @@ -390,7 +393,7 @@ export function retrySaveTestTemplate( assertExists(retryAbortMeId, "retry_abort_me runId"); }) .on(e); - } + }, ); await sleep(1000); @@ -410,7 +413,7 @@ export function retrySaveTestTemplate( abort_retry: [retryAbortMeId], }) .on(e); - } + }, ); // Waiting for the retry to finish @@ -445,20 +448,20 @@ export function retrySaveTestTemplate( assertEquals( body?.data?.results?.ongoing?.count, 0, - `0 workflow currently running (${backendName})` + `0 workflow currently running (${backendName})`, ); assertEquals( body?.data?.results?.completed?.count, 4, - `4 workflows completed (${backendName})` + `4 workflows completed (${backendName})`, ); const localSorter = (a: any, b: any) => a.run_id.localeCompare(b.run_id); - const received = - body?.data?.results?.completed?.runs ?? ([] as Array); + const received = body?.data?.results?.completed?.runs ?? + ([] as Array); const expected = [ { result: { @@ -493,13 +496,13 @@ export function retrySaveTestTemplate( assertEquals( received.sort(localSorter), expected.sort(localSorter), - `All workflows have completed (${backendName})` + `All workflows have completed (${backendName})`, ); }) .on(e); - } + }, ); - } + }, ); } @@ -514,7 +517,7 @@ export function childWorkflowTestTemplate( }; secrets?: Record; }, - cleanup?: MetaTestCleanupFn + cleanup?: MetaTestCleanupFn, ) { Meta.test( { @@ -531,7 +534,7 @@ export function childWorkflowTestTemplate( "runtimes/substantial/substantial_child_workflow.py", { secrets, - } + }, ); const packages = [ @@ -552,7 +555,7 @@ export function childWorkflowTestTemplate( parentRunId = body.data?.start! as string; assertExists( parentRunId, - "Run id was not returned when workflow was started" + "Run id was not returned when workflow was started", ); }) .on(e); @@ -619,7 +622,7 @@ export function childWorkflowTestTemplate( }) .on(e); }); - } + }, ); } diff --git a/tests/runtimes/substantial/imports/common_types.ts b/tests/runtimes/substantial/imports/common_types.ts index b3c0130651..3d7fe58dc7 100644 --- a/tests/runtimes/substantial/imports/common_types.ts +++ b/tests/runtimes/substantial/imports/common_types.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + // TODO: include this as part of the metagen generated code // TODO: merge these @@ -24,7 +27,7 @@ export interface Context { ...args: unknown[] ) => { run: ( - variables: Record + variables: Record, ) => Promise>; }; sleep: (ms: number) => void; @@ -32,16 +35,16 @@ export interface Context { receive(eventName: string): O; handle( eventName: string, - fn: (received: I) => O | Promise + fn: (received: I) => O | Promise, ): Promise; ensure(conditionFn: () => boolean | Promise): Promise; startChildWorkflow( workflow: Workflow, - kwargs: unknown + kwargs: unknown, ): Promise; createWorkflowHandle( - handleDef: SerializableWorkflowHandle + handleDef: SerializableWorkflowHandle, ): ChildWorkflowHandle; } diff --git a/tests/runtimes/substantial/substantial.py b/tests/runtimes/substantial/substantial.py index 55c2b82a9c..eafa0ebac5 100644 --- a/tests/runtimes/substantial/substantial.py +++ b/tests/runtimes/substantial/substantial.py @@ -1,9 +1,12 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import os -from typegraph import typegraph, t, Graph + +from typegraph import Graph, t, typegraph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph.runtimes.substantial import SubstantialRuntime, WorkflowFile -from typegraph.runtimes.substantial import Backend +from typegraph.runtimes.substantial import Backend, SubstantialRuntime, WorkflowFile @typegraph() @@ -25,7 +28,7 @@ def substantial(g: Graph): "eventsAndExceptionExample", "retryExample", "secretsExample", - ] + ], ) .build() ) @@ -44,27 +47,27 @@ def substantial(g: Graph): # common stop=sub.stop(), results=sub.query_results( - t.either([t.integer(), t.string()]).rename("ResultOrError") + t.either([t.integer(), t.string()]).rename("ResultOrError"), ), workers=sub.query_resources(), # sleep start_sleep=sub.start(t.struct({"a": t.integer(), "b": t.integer()})).reduce( - {"name": "saveAndSleepExample"} + {"name": "saveAndSleepExample"}, ), # email start_email=sub.start(t.struct({"to": t.string()})).reduce( - {"name": "eventsAndExceptionExample"} + {"name": "eventsAndExceptionExample"}, ), send_confirmation=sub.send(t.boolean()).reduce( - {"event": {"name": "confirmation", "payload": g.inherit()}} + {"event": {"name": "confirmation", "payload": g.inherit()}}, ), # retry start_retry=sub.start( - t.struct({"fail": t.boolean(), "timeout": t.boolean()}) + t.struct({"fail": t.boolean(), "timeout": t.boolean()}), ).reduce({"name": "retryExample"}), # secret start_secret=sub.start(t.struct({}), secrets=["MY_SECRET"]).reduce( - {"name": "secretsExample"} + {"name": "secretsExample"}, ), **sub.internals(), ) diff --git a/tests/runtimes/substantial/substantial_child_workflow.py b/tests/runtimes/substantial/substantial_child_workflow.py index 560dae1491..f7c2bc101d 100644 --- a/tests/runtimes/substantial/substantial_child_workflow.py +++ b/tests/runtimes/substantial/substantial_child_workflow.py @@ -1,8 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import os -from typegraph import typegraph, t, Graph + +from typegraph import Graph, t, typegraph from typegraph.policy import Policy -from typegraph.runtimes.substantial import SubstantialRuntime, WorkflowFile -from typegraph.runtimes.substantial import Backend +from typegraph.runtimes.substantial import Backend, SubstantialRuntime, WorkflowFile @typegraph() @@ -33,7 +36,7 @@ def substantial_child_workflow(g: Graph): results_raw=sub.query_results_raw(), # bypass type hinting in favor of json string workers=sub.query_resources(), start=sub.start(t.struct({"packages": t.list(package)})).reduce( - {"name": "bumpAll"} + {"name": "bumpAll"}, ), **sub.internals(), ) diff --git a/tests/runtimes/substantial/substantial_test.ts b/tests/runtimes/substantial/substantial_test.ts index f071401015..fce40e9ff3 100644 --- a/tests/runtimes/substantial/substantial_test.ts +++ b/tests/runtimes/substantial/substantial_test.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { basicTestTemplate } from "./common.ts"; basicTestTemplate("memory", { diff --git a/tests/runtimes/substantial/workflow.ts b/tests/runtimes/substantial/workflow.ts index 59d7a70737..9722260f21 100644 --- a/tests/runtimes/substantial/workflow.ts +++ b/tests/runtimes/substantial/workflow.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Context, queryThatTakesAWhile, diff --git a/tests/runtimes/temporal/temporal.py b/tests/runtimes/temporal/temporal.py index 3192aa6395..d0650a2d7a 100644 --- a/tests/runtimes/temporal/temporal.py +++ b/tests/runtimes/temporal/temporal.py @@ -1,4 +1,7 @@ -from typegraph import t, typegraph, Policy, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.providers.temporal import TemporalRuntime @@ -6,7 +9,9 @@ def temporal(g: Graph): public = Policy.public() temporal = TemporalRuntime( - "", "", namespace_secret="" + "", + "", + namespace_secret="", ) arg = t.struct({"some_field": t.string()}) @@ -15,7 +20,7 @@ def temporal(g: Graph): start=temporal.start_workflow("", arg), query=temporal.query_workflow("", arg, t.string()), signal=temporal.signal_workflow("", arg).reduce( - {"workflow_id": "1234"} + {"workflow_id": "1234"}, ), describe=temporal.describe_workflow(), ) diff --git a/tests/runtimes/temporal/worker/package.json b/tests/runtimes/temporal/worker/package.json index 8d8662520e..139ae7e5fa 100644 --- a/tests/runtimes/temporal/worker/package.json +++ b/tests/runtimes/temporal/worker/package.json @@ -1,14 +1,14 @@ { "dependencies": { - "@temporalio/activity": "^1.9.0", - "@temporalio/worker": "^1.9.0", - "@temporalio/workflow": "^1.9.0" + "@temporalio/activity": "^1.9", + "@temporalio/worker": "^1.9", + "@temporalio/workflow": "^1.9" }, "devDependencies": { - "@tsconfig/node16": "^16.1.1", - "@types/node": "^20.11.4", - "tsx": "^4.7.0", - "typescript": "^5.3.3" + "@tsconfig/node16": "^16", + "@types/node": "^20", + "tsx": "^4", + "typescript": "^5" }, "scripts": { "start": "tsx worker.ts", diff --git a/tests/runtimes/temporal/worker/pnpm-lock.yaml b/tests/runtimes/temporal/worker/pnpm-lock.yaml index d6a21eb1df..93b26e0860 100644 --- a/tests/runtimes/temporal/worker/pnpm-lock.yaml +++ b/tests/runtimes/temporal/worker/pnpm-lock.yaml @@ -9,174 +9,180 @@ importers: .: dependencies: '@temporalio/activity': - specifier: ^1.9.0 - version: 1.9.3 + specifier: ^1.9 + version: 1.11.3 '@temporalio/worker': - specifier: ^1.9.0 - version: 1.9.3 + specifier: ^1.9 + version: 1.11.3 '@temporalio/workflow': - specifier: ^1.9.0 - version: 1.9.3 + specifier: ^1.9 + version: 1.11.3 devDependencies: '@tsconfig/node16': - specifier: ^16.1.1 - version: 16.1.2 + specifier: ^16 + version: 16.1.3 '@types/node': - specifier: ^20.11.4 - version: 20.11.30 + specifier: ^20 + version: 20.17.6 tsx: - specifier: ^4.7.0 - version: 4.7.1 + specifier: ^4 + version: 4.19.2 typescript: - specifier: ^5.3.3 - version: 5.4.3 + specifier: ^5 + version: 5.6.3 packages: - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} cpu: [x64] os: [win32] - '@grpc/grpc-js@1.7.3': - resolution: {integrity: sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==} - engines: {node: ^8.13.0 || >=10.10.0} + '@grpc/grpc-js@1.12.2': + resolution: {integrity: sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==} + engines: {node: '>=12.10.0'} - '@grpc/proto-loader@0.7.10': - resolution: {integrity: sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==} + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} engines: {node: '>=6'} hasBin: true @@ -195,12 +201,33 @@ packages: '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -231,71 +258,71 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@swc/core-darwin-arm64@1.4.8': - resolution: {integrity: sha512-hhQCffRTgzpTIbngSnC30vV6IJVTI9FFBF954WEsshsecVoCGFiMwazBbrkLG+RwXENTrMhgeREEFh6R3KRgKQ==} + '@swc/core-darwin-arm64@1.8.0': + resolution: {integrity: sha512-TIus1/SE/Ud4g84hCnchcagu+LfyndSDy5r5qf64nflojejDidPU9Fp1InzQhQpEgIpntnZID/KFCP5rQnvsIw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.4.8': - resolution: {integrity: sha512-P3ZBw8Jr8rKhY/J8d+6WqWriqngGTgHwtFeJ8MIakQJTbdYbFgXSZxcvDiERg3psbGeFXaUaPI0GO6BXv9k/OQ==} + '@swc/core-darwin-x64@1.8.0': + resolution: {integrity: sha512-yCb1FHCX/HUmNRGB1X3CFJ1WPKXMosZVUe3K2TrosCGvytwgaLoW5FS0bZg5Qv6cEUERQBg75cJnOUPwLLRCVg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.4.8': - resolution: {integrity: sha512-PP9JIJt19bUWhAGcQW6qMwTjZOcMyzkvZa0/LWSlDm0ORYVLmDXUoeQbGD3e0Zju9UiZxyulnpjEN0ZihJgPTA==} + '@swc/core-linux-arm-gnueabihf@1.8.0': + resolution: {integrity: sha512-6TdjVdiLaSW+eGiHKEojMDlx673nowrPHa6nM6toWgRzy8tIZgjPOguVKJDoMnoHuvO7SkOLCUiMRw0rTskypA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.4.8': - resolution: {integrity: sha512-HvEWnwKHkoVUr5iftWirTApFJ13hGzhAY2CMw4lz9lur2m+zhPviRRED0FCI6T95Knpv7+8eUOr98Z7ctrG6DQ==} + '@swc/core-linux-arm64-gnu@1.8.0': + resolution: {integrity: sha512-TU2YcTornnyZiJUabRuk7Xtvzaep11FwK77IkFomjN9/Os5s25B8ea652c2fAQMe9RsM84FPVmX303ohxavjKQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.4.8': - resolution: {integrity: sha512-kY8+qa7k/dEeBq9p0Hrta18QnJPpsiJvDQSLNaTIFpdM3aEM9zbkshWz8gaX5VVGUEALowCBUWqmzO4VaqM+2w==} + '@swc/core-linux-arm64-musl@1.8.0': + resolution: {integrity: sha512-2CdPTEKxx2hJIj/B0fn8L8k2coo/FDS95smzXyi2bov5FcrP6Ohboq8roFBYgj38fkHusXjY8qt+cCH7yXWAdg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.4.8': - resolution: {integrity: sha512-0WWyIw432wpO/zeGblwq4f2YWam4pn8Z/Ig4KzHMgthR/KmiLU3f0Z7eo45eVmq5vcU7Os1zi/Zb65OOt09q/w==} + '@swc/core-linux-x64-gnu@1.8.0': + resolution: {integrity: sha512-14StQBifCs/AMsySdU95OmwNJr9LOVqo6rcTFt2b7XaWpe/AyeuMJFxcndLgUewksJHpfepzCTwNdbcYmuNo6A==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.4.8': - resolution: {integrity: sha512-p4yxvVS05rBNCrBaSTa20KK88vOwtg8ifTW7ec/yoab0bD5EwzzB8KbDmLLxE6uziFa0sdjF0dfRDwSZPex37Q==} + '@swc/core-linux-x64-musl@1.8.0': + resolution: {integrity: sha512-qemJnAQlYqKCfWNqVv5SG8uGvw8JotwU86cuFUkq35oTB+dsSFM3b83+B1giGTKKFOh2nfWT7bvPXTKk+aUjew==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.4.8': - resolution: {integrity: sha512-jKuXihxAaqUnbFfvPxtmxjdJfs87F1GdBf33il+VUmSyWCP4BE6vW+/ReDAe8sRNsKyrZ3UH1vI5q1n64csBUA==} + '@swc/core-win32-arm64-msvc@1.8.0': + resolution: {integrity: sha512-fXt5vZbnrVdXZzGj2qRnZtY3uh+NtLCaFjS2uD9w8ssdbjhbDZYlJCj2JINOjv35ttEfAD2goiYmVa5P/Ypl+g==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.4.8': - resolution: {integrity: sha512-O0wT4AGHrX8aBeH6c2ADMHgagAJc5Kf6W48U5moyYDAkkVnKvtSc4kGhjWhe1Yl0sI0cpYh2In2FxvYsb44eWw==} + '@swc/core-win32-ia32-msvc@1.8.0': + resolution: {integrity: sha512-W4FA2vSJ+bGYiTj6gspxghSdKQNLfLMo65AH07u797x7I+YJj8amnFY/fQRlroDv5Dez/FHTv14oPlTlNFUpIw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.4.8': - resolution: {integrity: sha512-C2AYc3A2o+ECciqsJWRgIpp83Vk5EaRzHe7ed/xOWzVd0MsWR+fweEsyOjlmzHfpUxJSi46Ak3/BIZJlhZbXbg==} + '@swc/core-win32-x64-msvc@1.8.0': + resolution: {integrity: sha512-Il4y8XwKDV0Bnk0IpA00kGcSQC6I9XOIinW5egTutnwIDfDE+qsD0j+0isW5H76GetY3/Ze0lVxeOXLAUgpegA==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.4.8': - resolution: {integrity: sha512-uY2RSJcFPgNOEg12RQZL197LZX+MunGiKxsbxmh22VfVxrOYGRvh4mPANFlrD1yb38CgmW1wI6YgIi8LkIwmWg==} + '@swc/core@1.8.0': + resolution: {integrity: sha512-EF8C5lp1RKMp3426tAKwQyVbg4Zcn/2FDax3cz8EcOXYQJM/ctB687IvBm9Ciej1wMcQ/dMRg+OB4Xl8BGLBoA==} engines: {node: '>=10'} peerDependencies: - '@swc/helpers': ^0.5.0 + '@swc/helpers': '*' peerDependenciesMeta: '@swc/helpers': optional: true @@ -303,48 +330,48 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/types@0.1.6': - resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} + '@swc/types@0.1.14': + resolution: {integrity: sha512-PbSmTiYCN+GMrvfjrMo9bdY+f2COnwbdnoMw7rqU/PI5jXpKjxOGZ0qqZCImxnT81NkNsKnmEpvu+hRXLBeCJg==} - '@temporalio/activity@1.9.3': - resolution: {integrity: sha512-QmY2dCNNSANhCgy4HCaeRmosyg73wI7KFbxTpnCrFjAWjxpJqBYC5qROrWHQEG/52Mcf59MtmznWSqz3M04Naw==} + '@temporalio/activity@1.11.3': + resolution: {integrity: sha512-XH923/I7wvKSxrMiB/vF7Xuix3lBEd1vLGMtgkj0wF2t8WBITjbHXQLzpJUlQm8O0hjixI7bDqFNRCan3Ov1xQ==} - '@temporalio/client@1.9.3': - resolution: {integrity: sha512-RgcqMqgrzQG3jOrCxnh8mYqwDqngAMKoCUOPwZZU5AAJa0sBcBLV2lEhJ9KGEavpfZej/duplUa67EV0s+M/6w==} + '@temporalio/client@1.11.3': + resolution: {integrity: sha512-2x30xAXbUuqelrWe3Vd1FVC0+Z2Cfh6m2W5yDUZBjqTMdNP6qd8nH4S4mceRtZ4TipYSPmaONaiWoAU2VvwEIg==} - '@temporalio/common@1.9.3': - resolution: {integrity: sha512-o6aAiqyIyu8b1bUOeY4nu04ZMwLAPR66Vtc8W/xYs7WM874wNhZlm8XWspqnmflI3W7td4y3Y50AHRi/BUNxRg==} + '@temporalio/common@1.11.3': + resolution: {integrity: sha512-dzCrwiE9ox/Q16AjBsUKr4djg1ovYHNCjH36WZadwsemXINRWa5eW53j0WZOlmFF8/CbcHIhiD5N18rZqjiYkg==} - '@temporalio/core-bridge@1.9.3': - resolution: {integrity: sha512-0cYVDzypc+ilpWeBsYkHP8wv/SbtcLZA4z4ZZd2c6OWKEM3+p4UuW8AiXZf/avL+rpo7cjrSRl+PTWe52vPReg==} + '@temporalio/core-bridge@1.11.3': + resolution: {integrity: sha512-dUPJiS/ZQtFnttmu0V1BLLjUE5wQxrwI0+xSvUc6JEiC1q9Z6BmhobSKbcEKCvJgh5OMZKh/jn6yu1N7oLsZPw==} - '@temporalio/proto@1.9.3': - resolution: {integrity: sha512-YOeelTGdz8zLX8LUlXlERvd/VTaCPmV9xN/JEUQoxsyc7YpOB2wVwdrXS7Al/2b1jOTYRm00vbn3rljRV9W5dA==} + '@temporalio/proto@1.11.3': + resolution: {integrity: sha512-X+xV75m11BvvS5MljagtYCybRNxpLNJM24eWyfv+uyU4WZSvgQCUh21fY4FOUDJS66DPvO1mefSPu0Nunp1PHg==} - '@temporalio/worker@1.9.3': - resolution: {integrity: sha512-RFotNUeWNnLDk4EvnPVZBiYAZWc+daezr/Prn/iMsCI6e3CxbchDha6GiqIVkIF3ppq1R2Vl+FpouNA/gBniGg==} - engines: {node: '>= 14.18.0'} + '@temporalio/worker@1.11.3': + resolution: {integrity: sha512-CwiqsiQ5pKIyEcYOlfjRudu4pXCHU9PXm3Qycn1owpgdL1fbbpFiJ8yCoTWqrlB23BsWMhOpUyaQLnTF8D+4aQ==} + engines: {node: '>= 16.0.0'} - '@temporalio/workflow@1.9.3': - resolution: {integrity: sha512-JU3SKZf+Cdm9ebNIbhLB3DM3NmGyusOCCZ1eSOWCHPAJo+fW9Zi6B2ba+Td7XRu6EGWJwvBwh6fnqzVCxtBPMA==} + '@temporalio/workflow@1.11.3': + resolution: {integrity: sha512-TT4TqzMveLY9UsWQUSkFyb9Qvoz4VvCcJCPCyKLQyrp5BuAsf7owOByOfs74gz2tgTQiPjk1TtV4YXXEPRb4yA==} - '@tsconfig/node16@16.1.2': - resolution: {integrity: sha512-dQ4IMJsdighPkzI8YNdjZy9Ky2ZAj1m2EkCUfQ575djffboaVJrkl5RmHmmc4MEF7LXVv501aO8KeG5Aa43VHA==} + '@tsconfig/node16@16.1.3': + resolution: {integrity: sha512-9nTOUBn+EMKO6rtSZJk+DcqsfgtlERGT9XPJ5PRj/HNENPCBY1yu/JEj5wT6GLtbCLBO2k46SeXDaY0pjMqypw==} '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@8.56.6': - resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@20.11.30': - resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -401,13 +428,8 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - peerDependencies: - acorn: ^8 - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -430,23 +452,23 @@ packages: arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - caniuse-lite@1.0.30001600: - resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + caniuse-lite@1.0.30001677: + resolution: {integrity: sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==} - cargo-cp-artifact@0.1.8: - resolution: {integrity: sha512-3j4DaoTrsCD1MRkTF2Soacii0Nx7UHCce0EwUf4fHnggwiE4fbmF2AbnfzayR36DF8KGadfh7M/Yfy625kgPlA==} + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} hasBin: true - chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} cliui@8.0.1: @@ -463,26 +485,26 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - electron-to-chromium@1.4.715: - resolution: {integrity: sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==} + electron-to-chromium@1.5.51: + resolution: {integrity: sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - enhanced-resolve@5.16.0: - resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - es-module-lexer@1.4.2: - resolution: {integrity: sha512-7nOqkomXZEaxUDJw21XZNtRk739QvrPSoZoRtbsEfcii00vdzZUh6zh1CQwHhrib8MdEtJfv5rJiGeb4KuV/vw==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} eslint-scope@5.1.1: @@ -515,8 +537,8 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -527,8 +549,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -544,6 +566,10 @@ packages: resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} engines: {node: '>=10.0.0'} + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -576,8 +602,8 @@ packages: long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - memfs@4.8.0: - resolution: {integrity: sha512-fcs7trFxZlOMadmTw5nyfOwS3il9pr3y+6xzLfXNwmuR/D0i4wz6rJURxArAbcJDGalbpbMvQ/IFI0NojRZgRg==} + memfs@4.14.0: + resolution: {integrity: sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==} engines: {node: '>= 4.0.0'} merge-stream@2.0.0: @@ -598,18 +624,18 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - proto3-json-serializer@2.0.1: - resolution: {integrity: sha512-8awBvjO+FwkMd6gNoGFZyqkHZXCFd54CIYTb6De7dPaufGJ2XNW+QUNqbMr8MaAocMdb+KpsD4rxEOaTBDCffA==} + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} - protobufjs@7.2.6: - resolution: {integrity: sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==} + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} engines: {node: '>=12.0.0'} punycode@2.3.1: @@ -642,8 +668,8 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-loader@4.0.2: @@ -701,32 +727,44 @@ packages: uglify-js: optional: true - terser@5.29.2: - resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} engines: {node: '>=10'} hasBin: true - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 - tsx@4.7.1: - resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} engines: {node: '>=18.0.0'} hasBin: true - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} unionfs@4.5.4: resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -738,16 +776,16 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + webpack@5.96.1: + resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -779,91 +817,94 @@ packages: snapshots: - '@esbuild/aix-ppc64@0.19.12': + '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.19.12': + '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.19.12': + '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.19.12': + '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.19.12': + '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.19.12': + '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.19.12': + '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.19.12': + '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.19.12': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.19.12': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.19.12': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.19.12': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.19.12': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.19.12': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.19.12': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.19.12': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.19.12': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.19.12': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/sunos-x64@0.19.12': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.19.12': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-ia32@0.19.12': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-x64@0.19.12': + '@esbuild/win32-ia32@0.23.1': optional: true - '@grpc/grpc-js@1.7.3': + '@esbuild/win32-x64@0.23.1': + optional: true + + '@grpc/grpc-js@1.12.2': dependencies: - '@grpc/proto-loader': 0.7.10 - '@types/node': 20.11.30 + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 - '@grpc/proto-loader@0.7.10': + '@grpc/proto-loader@0.7.13': dependencies: lodash.camelcase: 4.3.0 long: 5.2.3 - protobufjs: 7.2.6 + protobufjs: 7.4.0 yargs: 17.7.2 '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -875,12 +916,30 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@1.1.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 '@protobufjs/aspromise@1.1.2': {} @@ -905,139 +964,140 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@swc/core-darwin-arm64@1.4.8': + '@swc/core-darwin-arm64@1.8.0': optional: true - '@swc/core-darwin-x64@1.4.8': + '@swc/core-darwin-x64@1.8.0': optional: true - '@swc/core-linux-arm-gnueabihf@1.4.8': + '@swc/core-linux-arm-gnueabihf@1.8.0': optional: true - '@swc/core-linux-arm64-gnu@1.4.8': + '@swc/core-linux-arm64-gnu@1.8.0': optional: true - '@swc/core-linux-arm64-musl@1.4.8': + '@swc/core-linux-arm64-musl@1.8.0': optional: true - '@swc/core-linux-x64-gnu@1.4.8': + '@swc/core-linux-x64-gnu@1.8.0': optional: true - '@swc/core-linux-x64-musl@1.4.8': + '@swc/core-linux-x64-musl@1.8.0': optional: true - '@swc/core-win32-arm64-msvc@1.4.8': + '@swc/core-win32-arm64-msvc@1.8.0': optional: true - '@swc/core-win32-ia32-msvc@1.4.8': + '@swc/core-win32-ia32-msvc@1.8.0': optional: true - '@swc/core-win32-x64-msvc@1.4.8': + '@swc/core-win32-x64-msvc@1.8.0': optional: true - '@swc/core@1.4.8': + '@swc/core@1.8.0': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.6 + '@swc/types': 0.1.14 optionalDependencies: - '@swc/core-darwin-arm64': 1.4.8 - '@swc/core-darwin-x64': 1.4.8 - '@swc/core-linux-arm-gnueabihf': 1.4.8 - '@swc/core-linux-arm64-gnu': 1.4.8 - '@swc/core-linux-arm64-musl': 1.4.8 - '@swc/core-linux-x64-gnu': 1.4.8 - '@swc/core-linux-x64-musl': 1.4.8 - '@swc/core-win32-arm64-msvc': 1.4.8 - '@swc/core-win32-ia32-msvc': 1.4.8 - '@swc/core-win32-x64-msvc': 1.4.8 + '@swc/core-darwin-arm64': 1.8.0 + '@swc/core-darwin-x64': 1.8.0 + '@swc/core-linux-arm-gnueabihf': 1.8.0 + '@swc/core-linux-arm64-gnu': 1.8.0 + '@swc/core-linux-arm64-musl': 1.8.0 + '@swc/core-linux-x64-gnu': 1.8.0 + '@swc/core-linux-x64-musl': 1.8.0 + '@swc/core-win32-arm64-msvc': 1.8.0 + '@swc/core-win32-ia32-msvc': 1.8.0 + '@swc/core-win32-x64-msvc': 1.8.0 '@swc/counter@0.1.3': {} - '@swc/types@0.1.6': + '@swc/types@0.1.14': dependencies: '@swc/counter': 0.1.3 - '@temporalio/activity@1.9.3': + '@temporalio/activity@1.11.3': dependencies: - '@temporalio/common': 1.9.3 + '@temporalio/common': 1.11.3 abort-controller: 3.0.0 - '@temporalio/client@1.9.3': + '@temporalio/client@1.11.3': dependencies: - '@grpc/grpc-js': 1.7.3 - '@temporalio/common': 1.9.3 - '@temporalio/proto': 1.9.3 + '@grpc/grpc-js': 1.12.2 + '@temporalio/common': 1.11.3 + '@temporalio/proto': 1.11.3 abort-controller: 3.0.0 long: 5.2.3 uuid: 9.0.1 - '@temporalio/common@1.9.3': + '@temporalio/common@1.11.3': dependencies: - '@temporalio/proto': 1.9.3 + '@temporalio/proto': 1.11.3 long: 5.2.3 ms: 3.0.0-canary.1 - proto3-json-serializer: 2.0.1 + proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.9.3': + '@temporalio/core-bridge@1.11.3': dependencies: - '@temporalio/common': 1.9.3 + '@temporalio/common': 1.11.3 arg: 5.0.2 - cargo-cp-artifact: 0.1.8 + cargo-cp-artifact: 0.1.9 which: 4.0.0 - '@temporalio/proto@1.9.3': + '@temporalio/proto@1.11.3': dependencies: long: 5.2.3 - protobufjs: 7.2.6 + protobufjs: 7.4.0 - '@temporalio/worker@1.9.3': + '@temporalio/worker@1.11.3': dependencies: - '@swc/core': 1.4.8 - '@temporalio/activity': 1.9.3 - '@temporalio/client': 1.9.3 - '@temporalio/common': 1.9.3 - '@temporalio/core-bridge': 1.9.3 - '@temporalio/proto': 1.9.3 - '@temporalio/workflow': 1.9.3 + '@swc/core': 1.8.0 + '@temporalio/activity': 1.11.3 + '@temporalio/client': 1.11.3 + '@temporalio/common': 1.11.3 + '@temporalio/core-bridge': 1.11.3 + '@temporalio/proto': 1.11.3 + '@temporalio/workflow': 1.11.3 abort-controller: 3.0.0 heap-js: 2.5.0 - memfs: 4.8.0 + memfs: 4.14.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.91.0) - swc-loader: 0.2.6(@swc/core@1.4.8)(webpack@5.91.0) + source-map-loader: 4.0.2(webpack@5.96.1(@swc/core@1.8.0)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.8.0)(webpack@5.96.1(@swc/core@1.8.0)) unionfs: 4.5.4 - webpack: 5.91.0(@swc/core@1.4.8) + webpack: 5.96.1(@swc/core@1.8.0) transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@temporalio/workflow@1.9.3': + '@temporalio/workflow@1.11.3': dependencies: - '@temporalio/common': 1.9.3 - '@temporalio/proto': 1.9.3 + '@temporalio/common': 1.11.3 + '@temporalio/proto': 1.11.3 - '@tsconfig/node16@16.1.2': {} + '@tsconfig/node16@16.1.3': {} '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 8.56.6 - '@types/estree': 1.0.5 + '@types/eslint': 9.6.1 + '@types/estree': 1.0.6 - '@types/eslint@8.56.6': + '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 - '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} '@types/json-schema@7.0.15': {} - '@types/node@20.11.30': + '@types/node@20.17.6': dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 '@webassemblyjs/ast@1.12.1': dependencies: @@ -1123,11 +1183,7 @@ snapshots: dependencies: event-target-shim: 5.0.1 - acorn-import-assertions@1.9.0(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - - acorn@8.11.3: {} + acorn@8.14.0: {} ajv-keywords@3.5.2(ajv@6.12.6): dependencies: @@ -1148,20 +1204,20 @@ snapshots: arg@5.0.2: {} - browserslist@4.23.0: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001600 - electron-to-chromium: 1.4.715 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + caniuse-lite: 1.0.30001677 + electron-to-chromium: 1.5.51 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) buffer-from@1.1.2: {} - caniuse-lite@1.0.30001600: {} + caniuse-lite@1.0.30001677: {} - cargo-cp-artifact@0.1.8: {} + cargo-cp-artifact@0.1.9: {} - chrome-trace-event@1.0.3: {} + chrome-trace-event@1.0.4: {} cliui@8.0.1: dependencies: @@ -1177,44 +1233,45 @@ snapshots: commander@2.20.3: {} - electron-to-chromium@1.4.715: {} + electron-to-chromium@1.5.51: {} emoji-regex@8.0.0: {} - enhanced-resolve@5.16.0: + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 - es-module-lexer@1.4.2: {} + es-module-lexer@1.5.4: {} - esbuild@0.19.12: + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - - escalade@3.1.2: {} + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escalade@3.2.0: {} eslint-scope@5.1.1: dependencies: @@ -1237,14 +1294,14 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fs-monkey@1.0.5: {} + fs-monkey@1.0.6: {} fsevents@2.3.3: optional: true get-caller-file@2.0.5: {} - get-tsconfig@4.7.3: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -1256,6 +1313,8 @@ snapshots: heap-js@2.5.0: {} + hyperdyperid@1.2.0: {} + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -1266,7 +1325,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.11.30 + '@types/node': 20.17.6 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -1280,9 +1339,12 @@ snapshots: long@5.2.3: {} - memfs@4.8.0: + memfs@4.14.0: dependencies: - tslib: 2.6.2 + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + tree-dump: 1.0.2(tslib@2.8.1) + tslib: 2.8.1 merge-stream@2.0.0: {} @@ -1296,15 +1358,15 @@ snapshots: neo-async@2.6.2: {} - node-releases@2.0.14: {} + node-releases@2.0.18: {} - picocolors@1.0.0: {} + picocolors@1.1.1: {} - proto3-json-serializer@2.0.1: + proto3-json-serializer@2.0.2: dependencies: - protobufjs: 7.2.6 + protobufjs: 7.4.0 - protobufjs@7.2.6: + protobufjs@7.4.0: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -1316,7 +1378,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.11.30 + '@types/node': 20.17.6 long: 5.2.3 punycode@2.3.1: {} @@ -1331,7 +1393,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 safe-buffer@5.2.1: {} @@ -1347,13 +1409,13 @@ snapshots: dependencies: randombytes: 2.1.0 - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.91.0): + source-map-loader@4.0.2(webpack@5.96.1(@swc/core@1.8.0)): dependencies: iconv-lite: 0.6.3 - source-map-js: 1.2.0 - webpack: 5.91.0(@swc/core@1.4.8) + source-map-js: 1.2.1 + webpack: 5.96.1(@swc/core@1.8.0) source-map-support@0.5.21: dependencies: @@ -1378,53 +1440,62 @@ snapshots: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.4.8)(webpack@5.91.0): + swc-loader@0.2.6(@swc/core@1.8.0)(webpack@5.96.1(@swc/core@1.8.0)): dependencies: - '@swc/core': 1.4.8 + '@swc/core': 1.8.0 '@swc/counter': 0.1.3 - webpack: 5.91.0(@swc/core@1.4.8) + webpack: 5.96.1(@swc/core@1.8.0) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.4.8)(webpack@5.91.0): + terser-webpack-plugin@5.3.10(@swc/core@1.8.0)(webpack@5.96.1(@swc/core@1.8.0)): dependencies: '@jridgewell/trace-mapping': 0.3.25 - '@swc/core': 1.4.8 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.29.2 - webpack: 5.91.0(@swc/core@1.4.8) + terser: 5.36.0 + webpack: 5.96.1(@swc/core@1.8.0) + optionalDependencies: + '@swc/core': 1.8.0 - terser@5.29.2: + terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.11.3 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 - tslib@2.6.2: {} + thingies@1.21.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + + tree-dump@1.0.2(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + + tslib@2.8.1: {} - tsx@4.7.1: + tsx@4.19.2: dependencies: - esbuild: 0.19.12 - get-tsconfig: 4.7.3 + esbuild: 0.23.1 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 - typescript@5.4.3: {} + typescript@5.6.3: {} - undici-types@5.26.5: {} + undici-types@6.19.8: {} unionfs@4.5.4: dependencies: - fs-monkey: 1.0.5 + fs-monkey: 1.0.6 - update-browserslist-db@1.0.13(browserslist@4.23.0): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.0 + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 uri-js@4.4.1: dependencies: @@ -1432,26 +1503,25 @@ snapshots: uuid@9.0.1: {} - watchpack@2.4.1: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 webpack-sources@3.2.3: {} - webpack@5.91.0(@swc/core@1.4.8): + webpack@5.96.1(@swc/core@1.8.0): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.23.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 - es-module-lexer: 1.4.2 + acorn: 8.14.0 + browserslist: 4.24.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -1462,8 +1532,8 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.4.8)(webpack@5.91.0) - watchpack: 2.4.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.8.0)(webpack@5.96.1(@swc/core@1.8.0)) + watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -1487,7 +1557,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/tests/runtimes/wasm_reflected/wasm_duplicate.py b/tests/runtimes/wasm_reflected/wasm_duplicate.py index 8f53718569..4984f314be 100644 --- a/tests/runtimes/wasm_reflected/wasm_duplicate.py +++ b/tests/runtimes/wasm_reflected/wasm_duplicate.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.wasm import WasmRuntime -from typegraph import t, typegraph - @typegraph() def wasm_duplicate(g: Graph): diff --git a/tests/runtimes/wasm_reflected/wasm_reflected.py b/tests/runtimes/wasm_reflected/wasm_reflected.py index f013f31210..687b5c149f 100644 --- a/tests/runtimes/wasm_reflected/wasm_reflected.py +++ b/tests/runtimes/wasm_reflected/wasm_reflected.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.wasm import WasmRuntime -from typegraph import t, typegraph - @typegraph() def wasm_reflected(g: Graph): diff --git a/tests/runtimes/wasm_wire/wasm_wire.py b/tests/runtimes/wasm_wire/wasm_wire.py index c73e19b42f..da69a80483 100644 --- a/tests/runtimes/wasm_wire/wasm_wire.py +++ b/tests/runtimes/wasm_wire/wasm_wire.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.wasm import WasmRuntime -from typegraph import t, typegraph - @typegraph() def wasm_wire(g: Graph): diff --git a/tests/schema_validation/circular.py b/tests/schema_validation/circular.py index eaa2401d79..e486563a98 100644 --- a/tests/schema_validation/circular.py +++ b/tests/schema_validation/circular.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def circular(g: Graph): @@ -23,7 +25,8 @@ def circular(g: Graph): "friends": t.list(g.ref("User")).optional(), # Edgecase #4: optional object that holds a self-reference "paper": t.struct( - {"title": t.string(), "author": g.ref("User")}, name="Paper" + {"title": t.string(), "author": g.ref("User")}, + name="Paper", ).optional(), # Edgecase #5: optional nested object with multiple references "root": t.struct( @@ -40,7 +43,7 @@ def circular(g: Graph): [ t.struct({"name": t.string()}, name="NamedAward"), t.union([medals, stars]), - ] + ], ).optional(), }, name="User", diff --git a/tests/schema_validation/type_comparison.py b/tests/schema_validation/type_comparison.py index 6724fc666d..b16464f46e 100644 --- a/tests/schema_validation/type_comparison.py +++ b/tests/schema_validation/type_comparison.py @@ -1,4 +1,7 @@ -from typegraph import t, typegraph, Graph, Policy +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes import DenoRuntime @@ -13,14 +16,14 @@ def case(name: str, subtype: t.typedef, supertype: t.typedef): t.struct( { "parent_field": subtype, - } - ) + }, + ), ).extend( { "injected": deno.identity(t.struct({"field": supertype})).reduce( - {"field": g.inherit().from_parent("parent_field")} - ) - } + {"field": g.inherit().from_parent("parent_field")}, + ), + }, ) case("boolean_ok_1", t.boolean(), t.boolean()) @@ -130,7 +133,9 @@ def case(name: str, subtype: t.typedef, supertype: t.typedef): t.struct({"field": t.integer()}), ) case( - "struct_ok_3", t.struct({"field": t.integer()}), t.struct({"field": t.float()}) + "struct_ok_3", + t.struct({"field": t.integer()}), + t.struct({"field": t.float()}), ) case( "struct_ok_4", diff --git a/tests/schema_validation/type_comparison_test.ts b/tests/schema_validation/type_comparison_test.ts index 7ca64b02ce..43941fb967 100644 --- a/tests/schema_validation/type_comparison_test.ts +++ b/tests/schema_validation/type_comparison_test.ts @@ -1,3 +1,6 @@ +// Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +// SPDX-License-Identifier: MPL-2.0 + import { Meta } from "../utils/mod.ts"; Meta.test("type comparison test", async (t) => { diff --git a/tests/simple/class_syntax.py b/tests/simple/class_syntax.py index bd1cf673ab..8c092d98c8 100644 --- a/tests/simple/class_syntax.py +++ b/tests/simple/class_syntax.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime diff --git a/tests/simple/error_message.py b/tests/simple/error_message.py index 5500e4238a..103e8e6047 100644 --- a/tests/simple/error_message.py +++ b/tests/simple/error_message.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, effects, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, effects, t, typegraph from typegraph.runtimes import DenoRuntime diff --git a/tests/simple/simple.py b/tests/simple/simple.py index a7b86fd1c0..bd7623d336 100644 --- a/tests/simple/simple.py +++ b/tests/simple/simple.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime diff --git a/tests/type_nodes/array_of_optional.py b/tests/type_nodes/array_of_optional.py index 6873243bdd..350c05b7fe 100644 --- a/tests/type_nodes/array_of_optional.py +++ b/tests/type_nodes/array_of_optional.py @@ -1,4 +1,7 @@ -from typegraph import Policy, t, typegraph, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -9,7 +12,7 @@ def array_of_optional(g: Graph): "a": t.string(), "b": t.integer(), "c": t.struct({"c1": t.string(), "inner": t.list(t.string().optional())}), - } + }, ) rec = t.struct( @@ -21,9 +24,9 @@ def array_of_optional(g: Graph): # should we support null value for enum/union/either arrays ? "enum_array": t.list(t.enum(["A", "B"]).optional()).optional(), "union_array": t.list( - t.union([t.string(), t.integer()]).optional() + t.union([t.string(), t.integer()]).optional(), ).optional(), - } + }, ) rec_not_null = t.struct( @@ -31,7 +34,7 @@ def array_of_optional(g: Graph): "struct_array": t.list(t.struct({"x": t.string()})).optional(), "string_array": t.list(t.string()).optional(), "integer_array": t.list(t.integer()).optional(), - } + }, ) deno = DenoRuntime() diff --git a/tests/type_nodes/either_node.py b/tests/type_nodes/either_node.py index e442af7a3b..5b2073b726 100644 --- a/tests/type_nodes/either_node.py +++ b/tests/type_nodes/either_node.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def either_node(g: Graph): diff --git a/tests/type_nodes/union_node.py b/tests/type_nodes/union_node.py index 87c75404fb..4a4243b90f 100644 --- a/tests/type_nodes/union_node.py +++ b/tests/type_nodes/union_node.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def union_node(g: Graph): @@ -60,8 +62,8 @@ def union_node(g: Graph): {"i": t.integer(), "j": t.integer()}, name="A4", ), - ] - ) + ], + ), }, name="A2", ), @@ -93,9 +95,9 @@ def union_node(g: Graph): [ t.struct({"e": t.string()}, name="Ue"), t.struct({"f": t.string()}, name="Uf"), - ] + ], ), - ] + ], ), ], name="MultilevelUnion", diff --git a/tests/type_nodes/union_node_attr.py b/tests/type_nodes/union_node_attr.py index c77b8d3c16..504b48e261 100644 --- a/tests/type_nodes/union_node_attr.py +++ b/tests/type_nodes/union_node_attr.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def union_node_attr(g: Graph): diff --git a/tests/type_nodes/union_node_quantifier.py b/tests/type_nodes/union_node_quantifier.py index 46e92cdc2d..8bf9673b81 100644 --- a/tests/type_nodes/union_node_quantifier.py +++ b/tests/type_nodes/union_node_quantifier.py @@ -1,9 +1,11 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import t, typegraph from typegraph.graph.typegraph import Graph from typegraph.policy import Policy from typegraph.runtimes.deno import DenoRuntime -from typegraph import t, typegraph - @typegraph() def union_node_quantifier(g: Graph): @@ -12,7 +14,7 @@ def union_node_quantifier(g: Graph): "label": t.string(), "content": t.string(), "source": t.string().optional(), - } + }, ) smartphone = t.struct( @@ -50,7 +52,7 @@ def union_node_quantifier(g: Graph): "message": t.string(), "type": t.string(), "phone": phone, - } + }, ), module="ts/union/phone_register.ts", name="registerPhone", diff --git a/tests/typecheck/reduce_py.py b/tests/typecheck/reduce_py.py index 9829a35cb0..a16846a669 100644 --- a/tests/typecheck/reduce_py.py +++ b/tests/typecheck/reduce_py.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -16,7 +19,7 @@ def reduce_py(g: Graph): "user": t.integer(), "set": t.integer().optional(), "context": t.string().optional(), - } + }, ).optional(), "branching": t.union( [ @@ -35,16 +38,16 @@ def reduce_py(g: Graph): {"c": t.string(), "d": t.string()}, name="B", ), - ] - ) - } - ) + ], + ), + }, + ), }, name="V2", ), - ] + ], ).optional(), - } + }, ) self_ref_tpe = t.struct( @@ -57,11 +60,15 @@ def reduce_py(g: Graph): ) identity_simple = deno.func( - simple_tpe, simple_tpe, code="({ one, two }) => { return { one, two } }" + simple_tpe, + simple_tpe, + code="({ one, two }) => { return { one, two } }", ) identity_self_ref = deno.func( - self_ref_tpe, self_ref_tpe, code="({ a, b }) => { return { a, b } }" + self_ref_tpe, + self_ref_tpe, + code="({ a, b }) => { return { a, b } }", ) g.expose( @@ -72,9 +79,9 @@ def reduce_py(g: Graph): "user": g.inherit(), "set": g.inherit(), "context": g.inherit(), - } + }, # "one": g.inherit() # implicit - } + }, ).with_policy(public), simpleInjection=identity_simple.reduce({"one": "ONE!"}) .reduce( @@ -84,11 +91,11 @@ def reduce_py(g: Graph): "set": g.inherit().set(2), "context": g.inherit().from_context("someValue"), }, - } + }, ) .with_policy(public), testBranching=identity_simple.reduce( - {"branching": {"a": {"b": {"c": "nested"}}}} + {"branching": {"a": {"b": {"c": "nested"}}}}, ).with_policy(public), selfReferingType=identity_self_ref.reduce( { @@ -101,10 +108,10 @@ def reduce_py(g: Graph): "a": g.inherit(), # A3 "b": g.inherit().from_context("nestedB"), "direct": {"a": "direct A3"}, - } + }, }, - } + }, }, - } + }, ).with_policy(public), ) diff --git a/tests/typecheck/type_alias.py b/tests/typecheck/type_alias.py index 3f7c068761..45c81219b2 100644 --- a/tests/typecheck/type_alias.py +++ b/tests/typecheck/type_alias.py @@ -1,6 +1,9 @@ -from typegraph import typegraph, Policy, t, Graph -from typegraph.runtimes import RandomRuntime +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.providers import PrismaRuntime +from typegraph.runtimes import RandomRuntime @typegraph() @@ -13,7 +16,7 @@ def type_alias(g: Graph): { "label": t.string(), "content": t.string(), - } + }, ) message = t.struct( @@ -22,7 +25,7 @@ def type_alias(g: Graph): "title": t.string(), "user_id": t.integer(), "info": t.list(infos), - } + }, ) user = t.struct( diff --git a/tests/typecheck/typecheck.py b/tests/typecheck/typecheck.py index dd42e8c9a5..d37784bc4b 100644 --- a/tests/typecheck/typecheck.py +++ b/tests/typecheck/typecheck.py @@ -1,7 +1,7 @@ # Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. # SPDX-License-Identifier: MPL-2.0 -from typegraph import typegraph, effects, Policy, t, Graph +from typegraph import Graph, Policy, effects, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -46,18 +46,20 @@ def typecheck(g: Graph): t.struct( { "content": t.either( - [t.string(min=3), t.list(t.string(min=3), max=3)] - ) - } + [t.string(min=3), t.list(t.string(min=3), max=3)], + ), + }, ), - ] + ], ).optional(), - } + }, ) posts = deno.func(post_filter, t.list(post, max=20), code="() => []") find_post = deno.func( - t.struct({"id": t.uuid()}), post.optional(), code="() => null" + t.struct({"id": t.uuid()}), + post.optional(), + code="() => null", ) create_post_code = "() => ({ title: 'Hello Metatype', content: 'Greeting from Metatype', authorId: 123})" @@ -69,7 +71,7 @@ def typecheck(g: Graph): "content": t.string(min=100), "authorId": t.uuid(), "tags": t.list(t.string(max=10), min=2).optional(), - } + }, ), post, code=create_post_code, @@ -90,7 +92,7 @@ def typecheck(g: Graph): name="AvailableItem", ), ), - } + }, ) product = t.struct( @@ -98,7 +100,7 @@ def typecheck(g: Graph): "name": t.string(), "equivalent": t.list(g.ref("Product")).optional(), "score": t.either( - [t.string(enum=["bad", "decent", "good"]), t.integer()] + [t.string(enum=["bad", "decent", "good"]), t.integer()], ).optional(), }, name="Product", diff --git a/tests/typename/typename.py b/tests/typename/typename.py index a867717f17..de80af5bf4 100644 --- a/tests/typename/typename.py +++ b/tests/typename/typename.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + from typegraph import Graph, Policy, effects, t, typegraph from typegraph.providers.prisma import PrismaRuntime from typegraph.runtimes.deno import DenoRuntime @@ -29,7 +32,7 @@ def typename(g: Graph): t.enum(["red", "green", "blue"]).rename("NamedColor"), t.string(pattern=r"^#[0-9a-f]{6}$").rename("HexColor"), t.struct({"r": u8, "g": u8, "b": u8}).rename("RgbColor"), - ] + ], ) g.expose( @@ -49,9 +52,9 @@ def typename(g: Graph): "r": 255, "g": 0, "b": 0, - } - ) - } + }, + ), + }, ) .with_policy(public), ) diff --git a/tests/utils/process.ts b/tests/utils/process.ts index 7a36add6bf..e3be8183fa 100644 --- a/tests/utils/process.ts +++ b/tests/utils/process.ts @@ -22,12 +22,11 @@ export class Lines { // return true if the stream is exhausted async readWhile( check: Consumer, - timeoutMs: number | null = 30_000 + timeoutMs: number | null = 30_000, ): Promise { - const next = - timeoutMs == null - ? () => this.#reader.read() - : () => deadline(this.#reader.read(), timeoutMs); + const next = timeoutMs == null + ? () => this.#reader.read() + : () => deadline(this.#reader.read(), timeoutMs); let shouldContinue = true; while (shouldContinue) { const { value: line, done } = await next(); diff --git a/tests/utils/tg_deploy_script.py b/tests/utils/tg_deploy_script.py index ebaa20c3af..a2d7fa7bb6 100644 --- a/tests/utils/tg_deploy_script.py +++ b/tests/utils/tg_deploy_script.py @@ -1,3 +1,6 @@ +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + import importlib.util as import_util import json import os @@ -8,9 +11,9 @@ ) from typegraph.graph.shared_types import BasicAuth from typegraph.graph.tg_deploy import ( + TypegateConnectionOptions, TypegraphDeployParams, tg_deploy, - TypegateConnectionOptions, ) # get command args @@ -37,7 +40,7 @@ tg_name = module_name.split(".")[0] if not hasattr(module, tg_name): raise Exception( - f"Script name {module_name} doesn't have the typegraph name: {tg_name}" + f"Script name {module_name} doesn't have the typegraph name: {tg_name}", ) @@ -70,7 +73,9 @@ migrations_dir=migration_dir, migration_actions=None, default_migration_action=MigrationAction( - apply=True, reset=global_action_reset, create=global_action_create + apply=True, + reset=global_action_reset, + create=global_action_create, ), ), ) diff --git a/tests/vars/vars.py b/tests/vars/vars.py index 702b8cad91..a7386210d9 100644 --- a/tests/vars/vars.py +++ b/tests/vars/vars.py @@ -1,4 +1,7 @@ -from typegraph import typegraph, Policy, t, Graph +# Copyright Metatype OÜ, licensed under the Mozilla Public License Version 2.0. +# SPDX-License-Identifier: MPL-2.0 + +from typegraph import Graph, Policy, t, typegraph from typegraph.runtimes.deno import DenoRuntime @@ -12,7 +15,7 @@ def vars(g: Graph): { "first": t.integer(), "second": t.integer(), - } + }, ), t.integer(), code="({ first, second }) => first + second", @@ -24,7 +27,7 @@ def vars(g: Graph): ).with_policy(Policy.public()), level2=deno.func( t.struct( - {"level1": t.struct({"level2": t.list(t.string())}, name="Level1")} + {"level1": t.struct({"level2": t.list(t.string())}, name="Level1")}, ), t.string(), code="(arg) => arg.level1.level2[0]", diff --git a/tools/compose/compose.grpc.yml b/tools/compose/compose.grpc.yml index 34907d806a..fc5d1ea4c3 100644 --- a/tools/compose/compose.grpc.yml +++ b/tools/compose/compose.grpc.yml @@ -6,8 +6,8 @@ services: - "4770:4770" - "4771:4771" volumes: - - ./proto:/proto - - ./stub:/stub + - ./proto:/proto:Z + - ./stub:/stub:Z command: - --stub=/stub - /proto/helloworld.proto diff --git a/tools/deps.ts b/tools/deps.ts index 2bd2bfb1e7..6a1afe3a2c 100644 --- a/tools/deps.ts +++ b/tools/deps.ts @@ -38,7 +38,14 @@ export { expandGlob, expandGlobSync, } from "jsr:@std/fs@^1.0.1"; -export { cyan, gray, green, red, yellow } from "jsr:@std/fmt@^1.0.0/colors"; +export { + cyan, + dim, + gray, + green, + red, + yellow, +} from "jsr:@std/fmt@^1.0.0/colors"; export { format as formatDuration } from "jsr:@std/fmt@^1.0.0/duration"; export { mergeReadableStreams, TextLineStream } from "jsr:@std/streams@1"; export type {} from "jsr:@std/path@^1.0.2"; diff --git a/tools/jsr/jsr-gen.ts b/tools/jsr/jsr-gen.ts index 68e807992a..4c7969b279 100644 --- a/tools/jsr/jsr-gen.ts +++ b/tools/jsr/jsr-gen.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: MPL-2.0 import { METATYPE_VERSION, SDK_PACKAGE_NAME_TS } from "../consts.ts"; -import { existsSync, expandGlobSync, join } from "../deps.ts"; +import { $, existsSync, expandGlob, join } from "../deps.ts"; import { copyFilesAt } from "../utils.ts"; import { removeExtension } from "../utils.ts"; import { denoSdkDir, fromRoot, srcDir } from "./common.ts"; @@ -21,14 +21,19 @@ copyFilesAt( // Prepare jsr export map const jsrExports = {} as Record; -for ( - const { path } of expandGlobSync("./**/*.*", { +for await ( + const { path } of expandGlob("./**/*.*", { root: srcDir, includeDirs: false, globstar: true, }) ) { if (/\.(ts|js|mjs)$/.test(path)) { + const text = await $.path(path).readText(); + if (/jsr-private-module/.test(text)) { + $.logLight("skipping private module", path); + continue; + } const hintFile = `${removeExtension(path)}.d.ts`; const sourcePath = existsSync(hintFile) ? hintFile : path; const canonRelPath = sourcePath.replace(denoSdkDir, ".");