From 7053289643a9a621946b58c6bbee17ede82f01b0 Mon Sep 17 00:00:00 2001 From: Big Boss Date: Fri, 5 Jul 2024 23:08:49 -0500 Subject: [PATCH] temporal (#551) * temporal workers * simple e2e workers example * bump node version * Add WorkflowA test and update dependencies and tsconfig Adds a new test file for WorkflowA, updates the `jest`, `ts-node`, and `typescript` dependencies to specific versions, and makes changes to the `tsconfig.json` file in the `packages/workflows` directory. * cleanup tiltfiles * add workers to tilt * add missing workers:test --- .node-version | 2 +- ...ul-lib-coverage-npm-3.2.2-5c0526e059.patch | 13 + Brewfile | 5 +- Tiltfile | 312 +--- apps/distributor/package.json | 2 +- apps/expo/package.json | 2 +- apps/next/Dockerfile | 4 +- apps/workers/.gitignore | 176 ++ apps/workers/README.md | 12 + apps/workers/package.json | 37 + apps/workers/src/client.ts | 32 + apps/workers/src/worker.ts | 35 + apps/workers/tsconfig.json | 44 + jest.config.ts | 2 +- package.json | 11 +- packages/app/package.json | 2 +- packages/playwright/package.json | 2 +- packages/shovel/package.json | 2 +- packages/ui/package.json | 2 +- packages/wagmi/package.json | 2 +- packages/webauthn-authenticator/package.json | 2 +- packages/workflows/.gitignore | 177 ++ packages/workflows/README.md | 36 + packages/workflows/jest.config.ts | 36 + packages/workflows/jest.setup-after-env.ts | 3 + packages/workflows/jest.setup.ts | 3 + packages/workflows/package.json | 41 + packages/workflows/src/all-activities.ts | 3 + packages/workflows/src/all-workflows.ts | 2 + .../src/workflowA/activities/activitiesA.ts | 6 + .../src/workflowA/activities/activitiesB.ts | 6 + .../workflows/src/workflowA/workflow.test.ts | 57 + packages/workflows/src/workflowA/workflow.ts | 19 + .../workflows/src/workflowB/activities.ts | 11 + packages/workflows/src/workflowB/workflow.ts | 15 + packages/workflows/tsconfig.json | 35 + tilt/apps.Tiltfile | 121 ++ tilt/{cleanup.tiltfile => cleanup.Tiltfile} | 3 + tilt/common.Tiltfile | 39 + tilt/common.tiltfile | 30 - tilt/{deps.tiltfile => deps.Tiltfile} | 8 +- tilt/{infra.tiltfile => infra.Tiltfile} | 14 +- tilt/tests.Tiltfile | 228 +++ tilt/{utils.tiltfile => utils.Tiltfile} | 2 + tsconfig.base.json | 3 +- yarn.lock | 1579 ++++++++++++++++- 46 files changed, 2786 insertions(+), 392 deletions(-) create mode 100644 .yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch create mode 100644 apps/workers/.gitignore create mode 100644 apps/workers/README.md create mode 100644 apps/workers/package.json create mode 100644 apps/workers/src/client.ts create mode 100644 apps/workers/src/worker.ts create mode 100644 apps/workers/tsconfig.json create mode 100644 packages/workflows/.gitignore create mode 100644 packages/workflows/README.md create mode 100644 packages/workflows/jest.config.ts create mode 100644 packages/workflows/jest.setup-after-env.ts create mode 100644 packages/workflows/jest.setup.ts create mode 100644 packages/workflows/package.json create mode 100644 packages/workflows/src/all-activities.ts create mode 100644 packages/workflows/src/all-workflows.ts create mode 100644 packages/workflows/src/workflowA/activities/activitiesA.ts create mode 100644 packages/workflows/src/workflowA/activities/activitiesB.ts create mode 100644 packages/workflows/src/workflowA/workflow.test.ts create mode 100644 packages/workflows/src/workflowA/workflow.ts create mode 100644 packages/workflows/src/workflowB/activities.ts create mode 100644 packages/workflows/src/workflowB/workflow.ts create mode 100644 packages/workflows/tsconfig.json create mode 100644 tilt/apps.Tiltfile rename tilt/{cleanup.tiltfile => cleanup.Tiltfile} (93%) create mode 100644 tilt/common.Tiltfile delete mode 100644 tilt/common.tiltfile rename tilt/{deps.tiltfile => deps.Tiltfile} (97%) rename tilt/{infra.tiltfile => infra.Tiltfile} (95%) create mode 100644 tilt/tests.Tiltfile rename tilt/{utils.tiltfile => utils.Tiltfile} (97%) diff --git a/.node-version b/.node-version index 2dbbe00e6..c12134be3 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -20.11.1 +v20.15.0 diff --git a/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch b/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch new file mode 100644 index 000000000..48d8fb17b --- /dev/null +++ b/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch @@ -0,0 +1,13 @@ +diff --git a/lib/file-coverage.js b/lib/file-coverage.js +index 4ed4c096185addd9960d023c5982bc36c98c58b5..08e272ceb980a8d91d530a2fd8c58fec0ba0bc51 100644 +--- a/lib/file-coverage.js ++++ b/lib/file-coverage.js +@@ -206,6 +206,8 @@ class FileCoverage { + this.data = emptyCoverage(pathOrObj, reportLogic); + } else if (pathOrObj instanceof FileCoverage) { + this.data = pathOrObj.data; ++ } else if (typeof pathOrObj === 'object' && pathOrObj.data) { ++ this.data = pathOrObj.data; + } else if (typeof pathOrObj === 'object') { + this.data = pathOrObj; + } else { diff --git a/Brewfile b/Brewfile index 1ba0c0193..935f3d2c0 100644 --- a/Brewfile +++ b/Brewfile @@ -12,8 +12,9 @@ brew "jq" unless system "jq --version" brew "yj" unless system "yj -v" brew "tilt" unless system "tilt version" brew "caddy" unless system "caddy version" -brew "nss" unless system "type nss-policy-check" +brew "nss" unless system "nss-config --version" brew "sqlfluff" unless CI or system "sqlfluff --version" -brew "postgresql@15" unless system "type pg_dump" +brew "postgresql@15" unless system "psql --version" brew "gnu-sed" unless system "gsed --version" brew "direnv" unless system "direnv --version" +brew "temporal" unless system "temporal --version" diff --git a/Tiltfile b/Tiltfile index ed220e606..8013bdabc 100644 --- a/Tiltfile +++ b/Tiltfile @@ -1,8 +1,7 @@ load("ext://color", "color") load("ext://dotenv", "dotenv") -load("ext://uibutton", "cmd_button", "location") -load("./tilt/common.tiltfile", "CFG", "CI", "DEBUG", "contract_files") -load("./tilt/utils.tiltfile", "files_matching", "require_env", "require_tools") +load("./tilt/common.tiltfile", "CFG", "CI", "DEBUG") +load("./tilt/utils.tiltfile", "require_env", "require_tools") print(color.green("███████╗███████╗███╗ ██╗██████╗ ██╗████████╗")) @@ -84,312 +83,9 @@ include("tilt/infra.tiltfile") include("tilt/deps.tiltfile") -# APPS -labels = ["apps"] +include("./tilt/apps.tiltfile") -next_app_resource_deps = [ - "yarn:install", - "supabase", - "supabase:generate", - "wagmi:generate", - "ui:build", - "ui:generate-theme", - "daimo-expo-passkeys:build", - "anvil:fixtures", - "shovel", -] + ([ - "aa_bundler:base", -] if not CI else []) - -# Next -if CFG.dockerize: - GIT_BRANCH = str(local("git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD")).strip() - GIT_HASH = str(local("git rev-parse --short=10 HEAD")).strip() - - # FIXME: when we support dev mode and dockerize. - # docker_build( - # "0xsend/sendapp/next-app", - # ".", - # dockerfile = "apps/next/Dockerfile", - # extra_tag = ["latest", GIT_HASH], - # platform = "linux/amd64", - # secret = [ - # "id=SUPABASE_DB_URL,src=./var/SUPABASE_DB_URL.txt", - # "id=SUPABASE_SERVICE_ROLE,src=./var/SUPABASE_SERVICE_ROLE.txt", - # ], - # build_args=[ - - # ] - # ) - docker_compose("./docker-compose.yml") - dc_resource( - "next-app", - labels = ["apps"], - new_name = "next:web", - resource_deps = [ - "yarn:install", - "supabase", - "anvil:fixtures", - "aa_bundler:base", - "shovel", - ], - ) -else: - local_resource( - "next:web", - "yarn workspace next-app next:build" if CI else "", # In CI, only build the web app - labels = labels, - links = ["http://localhost:3000"], - readiness_probe = None if CI else probe( - http_get = http_get_action( - path = "/api/healthz", - port = 3000, - ), - period_secs = 15, - ), - resource_deps = next_app_resource_deps, - serve_cmd = - "" if CI else "yarn next-app dev", # In CI, playwright tests start the web server - ) - -local_resource( - "distributor:web", - allow_parallel = True, - labels = labels, - links = ["http://localhost:3050"], - readiness_probe = probe( - http_get = http_get_action( - path = "/", - port = 3050, - ), - period_secs = 15, - ), - resource_deps = [ - "yarn:install", - "anvil:mainnet", - "supabase", - "supabase:generate", - "wagmi:generate", - ], - serve_cmd = - "yarn run distributor start" if CI else "yarn run distributor dev", -) - -local_resource( - "caddy:web", - auto_init = not CI, - labels = labels, - serve_cmd = "caddy run --watch --config dev.Caddyfile", - trigger_mode = TRIGGER_MODE_MANUAL, -) - -# TESTS -labels = ["test"] - -local_resource( - "app:test", - "yarn workspace app test", - allow_parallel = True, - labels = labels, - resource_deps = [ - "yarn:install", - "contracts:build", - "wagmi:generate", - "supabase:generate", - "snaplet:generate", - "ui:build", - "ui:generate-theme", - "daimo-expo-passkeys:build", - "webauthn-authenticator:build", - "shovel:generate-config", - ], - deps = - files_matching( - os.path.join("packages", "app"), - lambda f: f.endswith(".ts") or f.endswith(".tsx"), - ), -) - -cmd_button( - "app:test:update-snapshots", - argv = [ - "yarn", - "workspace", - "app", - "test", - "-u", - ], - icon_name = "update", - location = location.RESOURCE, - resource = "app:test", - text = "update snapshots", -) - -local_resource( - "webauthn-authenticator:test", - "yarn workspace @0xsend/webauthn-authenticator test:coverage --run", - allow_parallel = True, - labels = labels, - resource_deps = ["yarn:install"], - deps = - files_matching( - os.path.join("packages", "webauthn-authenticator"), - lambda f: f.endswith(".ts"), - ), -) - -local_resource( - "playwright:deps", - "echo 🥳", - labels = labels, - resource_deps = [ - "anvil:mainnet", - "anvil:base", - "anvil:fixtures", - "aa_bundler:base", - "snaplet:generate", - "next:web", - "supabase", - "shovel", - ], -) - -local_resource( - "playwright:test", - "yarn playwright test", - allow_parallel = True, - auto_init = CI, - labels = labels, - resource_deps = [ - "next:web", - "playwright:deps", - ], - trigger_mode = CI and TRIGGER_MODE_AUTO or TRIGGER_MODE_MANUAL, - deps = files_matching( - os.path.join("packages", "playwright"), - lambda f: f.endswith(".ts"), - ), -) - -cmd_button( - "playwright:show-report", - argv = [ - "yarn", - "playwright", - "playwright", - "show-report", - ], - icon_name = "info", - location = location.RESOURCE, - resource = "playwright:test", - text = "playwright report", -) - -cmd_button( - "playwright:test:ui", - argv = [ - "yarn", - "playwright", - "test", - "--ui", - ], - icon_name = "bug_report", - location = location.RESOURCE, - resource = "playwright:test", - text = "playwright test --ui", -) - -local_resource( - "distributor:test", - "yarn workspace distributor test --run", - allow_parallel = True, - labels = labels, - resource_deps = [ - "yarn:install", - "anvil:mainnet", - "supabase", - "supabase:generate", - "wagmi:generate", - ], - deps = - files_matching( - os.path.join("apps", "distributor", "test"), - lambda f: f.endswith(".ts"), - ), -) - -local_resource( - "supabase:test", - "yarn supabase test", - allow_parallel = True, - labels = labels, - resource_deps = [ - "supabase", - "snaplet:generate", # hack to ensure snaplet doesn't include test pg_tap schema - ], - deps = files_matching( - os.path.join("supabase", "tests"), - lambda f: f.endswith(".sql"), - ), -) - -local_resource( - "contracts:test", - "yarn contracts test", - allow_parallel = True, - labels = labels, - resource_deps = [ - "yarn:install", - "contracts:build", - ], - deps = contract_files, -) - -local_resource( - "contracts:cov", - "yarn contracts test:cov -vvv", - allow_parallel = True, - auto_init = False, - labels = labels, - resource_deps = [ - "yarn:install", - "contracts:build", - "contracts:test", - ], - deps = contract_files, -) - -local_resource( - name = "shovel:test", - allow_parallel = True, - auto_init = not CI, - cmd = "yarn workspace @my/shovel test", - labels = labels, - resource_deps = [ - "yarn:install", - "shovel:generate-config", - ], - trigger_mode = CI and TRIGGER_MODE_MANUAL or TRIGGER_MODE_AUTO, - deps = files_matching( - os.path.join("packages", "shovel", "etc"), - lambda f: f.endswith(".json"), - ), -) - -local_resource( - name = "unit-tests", - allow_parallel = True, - cmd = "echo 🥳", - labels = labels, - resource_deps = [ - # messy but create a single resource that runs all the tests - "app:test", - "webauthn-authenticator:test", - "supabase:test", - "contracts:test", - "distributor:test", - ], -) +include("./tilt/tests.tiltfile") if config.tilt_subcommand == "down": include("./tilt/cleanup.tiltfile") diff --git a/apps/distributor/package.json b/apps/distributor/package.json index dc04aabda..7a1740077 100644 --- a/apps/distributor/package.json +++ b/apps/distributor/package.json @@ -35,6 +35,6 @@ "debug": "^4.3.4", "dotenv-cli": "^7.3.0", "supertest": "^6.3.3", - "typescript": "^5.3.3" + "typescript": "^5.5.3" } } diff --git a/apps/expo/package.json b/apps/expo/package.json index c49dd1fb7..624e7023b 100644 --- a/apps/expo/package.json +++ b/apps/expo/package.json @@ -61,6 +61,6 @@ "cross-env": "^7.0.3", "metro-minify-terser": "^0.74.1", "react-native-clean-project": "^4.0.3", - "typescript": "^5.3.3" + "typescript": "^5.5.3" } } diff --git a/apps/next/Dockerfile b/apps/next/Dockerfile index f86850e86..18fa04911 100644 --- a/apps/next/Dockerfile +++ b/apps/next/Dockerfile @@ -18,10 +18,11 @@ FROM base AS installer COPY yarn.lock yarn.lock COPY .yarnrc.yml .yarnrc.yml COPY .yarn .yarn -# git ls-files | grep 'package\.json$' | sort | sed 's#\(.*\)#COPY \1 \1#' +# git ls-files | grep 'package\.json$' | sort | sed 's#\(.*\)#COPY \1 \1#' COPY apps/distributor/package.json apps/distributor/package.json COPY apps/expo/package.json apps/expo/package.json COPY apps/next/package.json apps/next/package.json +COPY apps/workers/package.json apps/workers/package.json COPY package.json package.json COPY packages/api/package.json packages/api/package.json COPY packages/app/package.json packages/app/package.json @@ -34,6 +35,7 @@ COPY packages/snaplet/package.json packages/snaplet/package.json COPY packages/ui/package.json packages/ui/package.json COPY packages/wagmi/package.json packages/wagmi/package.json COPY packages/webauthn-authenticator/package.json packages/webauthn-authenticator/package.json +COPY packages/workflows/package.json packages/workflows/package.json COPY supabase/package.json supabase/package.json RUN --mount=type=cache,target=/root/.yarn/berry \ diff --git a/apps/workers/.gitignore b/apps/workers/.gitignore new file mode 100644 index 000000000..0d6bf1b86 --- /dev/null +++ b/apps/workers/.gitignore @@ -0,0 +1,176 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store +lib diff --git a/apps/workers/README.md b/apps/workers/README.md new file mode 100644 index 000000000..e9bdb7358 --- /dev/null +++ b/apps/workers/README.md @@ -0,0 +1,12 @@ +# workers + +Notes on the structure demonstrated: + +- **Workflows require one file**: you can organize Workflow code however you like, but each Worker needs to reference a single file that exports all the Workflows it handles (so you have to handle name conflicts instead of us) +- **Activities are top level**: + - Inside the Temporal Worker, Activities are registered at the same level Workflows are. + - Since Activities are required, not bundled, Activities don't need to be exported in a single file. + Just make sure they are registered with some Workers if you intend them to be executed. + - You can organize activities however you like, but it is important to understand that activities don't "belong" to workflows as far as Temporal is concerned. + +We built this with `yarn` Workspaces. We expect this structure to work with most monorepo tooling: lerna, pnpm, nx, preconstruct, changesets, and Rush but haven't verified it - we cannot support your build tooling specifics but don't mind receiving feedback in our issues. diff --git a/apps/workers/package.json b/apps/workers/package.json new file mode 100644 index 000000000..e6a2d4e6e --- /dev/null +++ b/apps/workers/package.json @@ -0,0 +1,37 @@ +{ + "name": "workers", + "module": "src/worker.ts", + "type": "module", + "files": [ + "package.json", + "src" + ], + "scripts": { + "lint": "tsc", + "start": "node --import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));' src/worker.ts", + "start.watch": "nodemon src/worker.ts", + "workflow": "node --import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));' src/client.ts" + }, + "devDependencies": { + "@types/bun": "latest", + "nodemon": "^3.1.4", + "ts-node": "^10.9.2", + "typescript": "^5.5.3" + }, + "peerDependencies": { + "typescript": "^5.5.3" + }, + "dependencies": { + "@my/workflows": "workspace:*", + "@temporalio/worker": "^1.10.1" + }, + "nodemonConfig": { + "execMap": { + "ts": "node --import 'data:text/javascript,import { register } from \"node:module\"; import { pathToFileURL } from \"node:url\"; register(\"ts-node/esm\", pathToFileURL(\"./\"));'" + }, + "ext": "ts", + "watch": [ + "src" + ] + } +} diff --git a/apps/workers/src/client.ts b/apps/workers/src/client.ts new file mode 100644 index 000000000..18c3db7c7 --- /dev/null +++ b/apps/workers/src/client.ts @@ -0,0 +1,32 @@ +import { Connection, Client } from '@temporalio/client' +import { WorkflowA, WorkflowB } from '@my/workflows/all-workflows' + +export async function runWorkflow(): Promise { + const connection = await Connection.connect() // Connect to localhost with default ConnectionOptions. + // In production, pass options to the Connection constructor to configure TLS and other settings. + // This is optional but we leave this here to remind you there is a gRPC connection being established. + + const client = new Client({ + connection, + // In production you will likely specify `namespace` here; it is 'default' if omitted + }) + + // Invoke the `WorkflowA` Workflow, only resolved when the workflow completes + const result = await client.workflow.execute(WorkflowA, { + taskQueue: 'monorepo', + workflowId: `workflow-a-${Date.now()}`, // TODO: remember to replace this with a meaningful business ID + args: ['Temporal'], // type inference works! args: [name: string] + }) + // Starts the `WorkflowB` Workflow, don't wait for it to complete + await client.workflow.start(WorkflowB, { + taskQueue: 'monorepo', + workflowId: `workflow-b-${Date.now()}`, // TODO: remember to replace this with a meaningful business ID + }) + console.log(result) // // [api-server] A: Hello, Temporal!, B: Hello, Temporal! + return result +} + +runWorkflow().catch((err) => { + console.error(err) + process.exit(1) +}) diff --git a/apps/workers/src/worker.ts b/apps/workers/src/worker.ts new file mode 100644 index 000000000..3a7a3768c --- /dev/null +++ b/apps/workers/src/worker.ts @@ -0,0 +1,35 @@ +import { Worker } from '@temporalio/worker' +import * as activities from '@my/workflows/all-activities' +import { URL, fileURLToPath } from 'node:url' +import path from 'node:path' + +async function run() { + const workflowsPathUrl = new URL( + `../../../packages/workflows/src/all-workflows${path.extname(import.meta.url)}`, + import.meta.url + ) + + // Step 1: Register Workflows and Activities with the Worker and connect to + // the Temporal server. + const worker = await Worker.create({ + workflowsPath: fileURLToPath(workflowsPathUrl), + activities, + taskQueue: 'monorepo', + }) + // Worker connects to localhost by default and uses console.error for logging. + // Customize the Worker by passing more options to create(): + // https://typescript.temporal.io/api/classes/worker.Worker + + // If you need to configure server connection parameters, see the mTLS example: + // https://github.com/temporalio/samples-typescript/tree/main/hello-world-mtls + + // Step 2: Start accepting tasks on the `monorepo` queue + await worker.run() + + // You may create multiple Workers in a single process in order to poll on multiple task queues. +} + +run().catch((err) => { + console.error(err) + process.exit(1) +}) diff --git a/apps/workers/tsconfig.json b/apps/workers/tsconfig.json new file mode 100644 index 000000000..a78e64436 --- /dev/null +++ b/apps/workers/tsconfig.json @@ -0,0 +1,44 @@ +{ + "extends": "../../tsconfig.base.json", + "ts-node": { + // It is faster to skip typechecking. + // Remove if you want ts-node to do typechecking. + "transpileOnly": true, + "files": true + }, + "compilerOptions": { + // Enable latest features + "lib": ["ESNext"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false, + + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "outDir": "./dist", + "baseUrl": ".", + "paths": { + "@my/workflows/*": ["../../packages/workflows/src/*"] + } + }, + "include": ["./src", "../../packages/workflows/src"] +} diff --git a/jest.config.ts b/jest.config.ts index 17ea106d6..72de76873 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -6,7 +6,7 @@ import type { Config } from 'jest' const config: Config = { - projects: ['/packages/app'], + projects: ['/packages/app', '/packages/workflows'], } export default config diff --git a/package.json b/package.json index 59064b4ee..df83c1247 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,8 @@ "fix": "manypkg fix", "postinstall": "test -n \"$SKIP_YARN_POST_INSTALL\" || (yarn check-deps && yarn build)", "build": "yarn workspaces foreach --all --exclude next-app run build", - "biome:check": "biome check .", - "biome:check:fix": "biome check . --apply", + "biome:check": "yarn run biome check .", + "biome:check:fix": "yarn run biome check . --apply", "lint": "turbo lint", "lint:fix": "turbo lint:fix", "upgrade:tamagui": "yarn up '*tamagui*'@latest '@tamagui/*'@latest", @@ -43,7 +43,10 @@ "react-native-svg": "14.1.0", "react-native-web": "~0.19.10", "@babel/core": "^7.20.2", - "babel-loader": "^8.3.0" + "babel-loader": "^8.3.0", + "istanbul-lib-coverage@npm:^3.2.0": "patch:istanbul-lib-coverage@npm%3A3.2.2#~/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch", + "istanbul-lib-coverage@npm:^3.0.0": "patch:istanbul-lib-coverage@npm%3A3.2.2#~/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch", + "istanbul-lib-coverage@npm:^3.2.2": "patch:istanbul-lib-coverage@npm%3A3.2.2#~/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch" }, "dependencies": { "@babel/runtime": "^7.18.9", @@ -54,7 +57,7 @@ "node-gyp": "^9.3.1", "pierre": "^2.0.0-alpha.8", "turbo": "^2.0.3", - "typescript": "^5.3.3" + "typescript": "^5.5.3" }, "packageManager": "yarn@4.0.2", "devDependencies": { diff --git a/packages/app/package.json b/packages/app/package.json index ad8b30f65..3e7939d86 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -77,6 +77,6 @@ "jest-expo": "^50.0.0", "nock": "^14.0.0-beta.2", "react-test-renderer": "^18.3.1", - "typescript": "^5.3.3" + "typescript": "^5.5.3" } } diff --git a/packages/playwright/package.json b/packages/playwright/package.json index c21256361..e375bb4b3 100644 --- a/packages/playwright/package.json +++ b/packages/playwright/package.json @@ -29,6 +29,6 @@ "cbor": "^9.0.1", "permissionless": "^0.1.14", "pg": "^8.11.3", - "typescript": "^5.3.3" + "typescript": "^5.5.3" } } diff --git a/packages/shovel/package.json b/packages/shovel/package.json index f6e3ba682..c0caac5f7 100644 --- a/packages/shovel/package.json +++ b/packages/shovel/package.json @@ -17,6 +17,6 @@ "zx": "^8.1.2" }, "peerDependencies": { - "typescript": "^5.0.0" + "typescript": "^5.5.3" } } diff --git a/packages/ui/package.json b/packages/ui/package.json index 67dc29c4a..1331b756c 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -42,6 +42,6 @@ }, "devDependencies": { "@tamagui/build": "^1.93.2", - "typescript": "^5.3.3" + "typescript": "^5.5.3" } } diff --git a/packages/wagmi/package.json b/packages/wagmi/package.json index 314b5d5e6..42bb750e4 100644 --- a/packages/wagmi/package.json +++ b/packages/wagmi/package.json @@ -27,7 +27,7 @@ "@wagmi/cli": "^2.1.8", "debug": "^4.3.4", "globby": "^14.0.0", - "typescript": "^5.3.3" + "typescript": "^5.5.3" }, "dependencies": { "@my/contracts": "workspace:*", diff --git a/packages/webauthn-authenticator/package.json b/packages/webauthn-authenticator/package.json index 6f9172812..0ace61e84 100644 --- a/packages/webauthn-authenticator/package.json +++ b/packages/webauthn-authenticator/package.json @@ -27,7 +27,7 @@ "@vitest/coverage-v8": "^0.34.6", "rollup": "^4.6.1", "rollup-plugin-polyfill-node": "^0.13.0", - "typescript": "^5.3.3", + "typescript": "^5.5.3", "vitest": "^0.34.6" } } diff --git a/packages/workflows/.gitignore b/packages/workflows/.gitignore new file mode 100644 index 000000000..1548a47d0 --- /dev/null +++ b/packages/workflows/.gitignore @@ -0,0 +1,177 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store + +lib diff --git a/packages/workflows/README.md b/packages/workflows/README.md new file mode 100644 index 000000000..bba8b12cb --- /dev/null +++ b/packages/workflows/README.md @@ -0,0 +1,36 @@ +# Temporal Workflows + +- **Workflows require one file**: you can organize Workflow code however you like, but each Worker needs to reference a single file that exports all the Workflows it handles (so you have to handle name conflicts instead of us) +- **Activities are top level**: + - Inside the Temporal Worker, Activities are registered at the same level Workflows are. + - Since Activities are required, not bundled, Activities don't need to be exported in a single file. + Just make sure they are registered with some Workers if you intend them to be executed. + - You can organize activities however you like, but it is important to understand that activities don't "belong" to workflows as far as Temporal is concerned. + +## Testing + +```sh +yarn test +``` + +Temporal has a great resource on testing: [Test suites](https://docs.temporal.io/develop/typescript/testing-suite). The Testing section of the Temporal Application development guide describes the frameworks that facilitate Workflow and integration testing. + +In the context of Temporal, you can create these types of automated tests: + +End-to-end: Running a Temporal Server and Worker with all its Workflows and Activities; starting and interacting with Workflows from a Client. +Integration: Anything between end-to-end and unit testing. +Running Activities with mocked Context and other SDK imports (and usually network requests). +Running Workers with mock Activities, and using a Client to start Workflows. +Running Workflows with mocked SDK imports. +Unit: Running a piece of Workflow or Activity code (a function or method) and mocking any code it calls. +We generally recommend writing the majority of your tests as integration tests. + +Because the test server supports skipping time, use the test server for both end-to-end and integration tests with Workers. + +Tests are written using [jest](https://jestjs.io/docs/getting-started) and [ts-jest](https://kulshekhar.github.io/ts-jest/docs/). + +Temporal runs tests in an in-memory environment. When testing workflows, you can use the `TestWorkflowEnvironment` to run tests against a local Temporal server. This is useful for testing workflows that interact with external services or databases. You can also mock activities. Do note, that if you miss an activity for a workflow, the test will fail with a timeout. + +### Coverage + +A coverage report is generated when running tests using `nyc` and `@temporalio/nyc-test-coverage`. For now, it requires a patch to [`istanbul-lib-coverage`](../../.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch) to support generating coverage reports. See [this issue](https://github.com/temporalio/sdk-typescript/issues/1233#issuecomment-2211603638) for more details. diff --git a/packages/workflows/jest.config.ts b/packages/workflows/jest.config.ts new file mode 100644 index 000000000..21d8a5504 --- /dev/null +++ b/packages/workflows/jest.config.ts @@ -0,0 +1,36 @@ +/** + * For a detailed explanation regarding each configuration property, visit: + * https://jestjs.io/docs/configuration + */ + +import type { Config } from 'jest' + +const config: Config = { + preset: 'ts-jest/presets/default-esm', + testEnvironment: 'node', + clearMocks: true, + collectCoverage: true, + coverageDirectory: 'coverage', + coveragePathIgnorePatterns: ['/node_modules/'], + coverageProvider: 'babel', + workerThreads: true, + globalSetup: '/jest.setup.ts', + transformIgnorePatterns: ['node_modules/(?!(get-port))'], + moduleNameMapper: { + '^(\\.{1,2}/.*)\\.js$': '$1', + }, + transform: { + // '^.+\\.[tj]sx?$' to process ts,js,tsx,jsx with `ts-jest` + // '^.+\\.m?[tj]sx?$' to process ts,js,tsx,jsx,mts,mjs,mtsx,mjsx with `ts-jest` + '^.+\\.[tj]sx?$': [ + 'ts-jest', + { + useESM: true, + }, + ], + }, + setupFilesAfterEnv: ['/jest.setup-after-env.ts'], + setupFiles: ['/jest.setup.ts'], +} + +export default config diff --git a/packages/workflows/jest.setup-after-env.ts b/packages/workflows/jest.setup-after-env.ts new file mode 100644 index 000000000..802fa2380 --- /dev/null +++ b/packages/workflows/jest.setup-after-env.ts @@ -0,0 +1,3 @@ +import nock from 'nock' + +nock.disableNetConnect() diff --git a/packages/workflows/jest.setup.ts b/packages/workflows/jest.setup.ts new file mode 100644 index 000000000..5c9b79e93 --- /dev/null +++ b/packages/workflows/jest.setup.ts @@ -0,0 +1,3 @@ +module.exports = async () => { + process.env.TZ = 'UTC' +} diff --git a/packages/workflows/package.json b/packages/workflows/package.json new file mode 100644 index 000000000..60142426f --- /dev/null +++ b/packages/workflows/package.json @@ -0,0 +1,41 @@ +{ + "name": "@my/workflows", + "files": [ + "package.json", + "src" + ], + "exports": { + "./all-activities": { + "types": "./src/all-activities.ts", + "default": "./src/all-activities.ts" + }, + "./all-workflows": { + "types": "./src/all-workflows.ts", + "default": "./src/all-workflows.ts" + } + }, + "type": "module", + "scripts": { + "lint": "tsc", + "test": "jest" + }, + "devDependencies": { + "@jest/globals": "^29.7.0", + "@temporalio/nyc-test-coverage": "^1.10.1", + "@temporalio/testing": "^1.10.1", + "@types/source-map-support": "^0", + "jest": "^29.7.0", + "nyc": "^17.0.0", + "source-map-support": "^0.5.21", + "ts-jest": "^29.1.5", + "ts-node": "^10.9.2", + "typescript": "^5.5.3" + }, + "peerDependencies": { + "typescript": "^5.5.3" + }, + "dependencies": { + "@temporalio/activity": "^1.10.1", + "@temporalio/workflow": "^1.10.1" + } +} diff --git a/packages/workflows/src/all-activities.ts b/packages/workflows/src/all-activities.ts new file mode 100644 index 000000000..867e33ea8 --- /dev/null +++ b/packages/workflows/src/all-activities.ts @@ -0,0 +1,3 @@ +export * from './workflowA/activities/activitiesA.js' +export * from './workflowA/activities/activitiesB.js' +export * from './workflowB/activities.js' diff --git a/packages/workflows/src/all-workflows.ts b/packages/workflows/src/all-workflows.ts new file mode 100644 index 000000000..f350ce0c3 --- /dev/null +++ b/packages/workflows/src/all-workflows.ts @@ -0,0 +1,2 @@ +export * from './workflowA/workflow.js' +export * from './workflowB/workflow.js' diff --git a/packages/workflows/src/workflowA/activities/activitiesA.ts b/packages/workflows/src/workflowA/activities/activitiesA.ts new file mode 100644 index 000000000..61b3d5c1e --- /dev/null +++ b/packages/workflows/src/workflowA/activities/activitiesA.ts @@ -0,0 +1,6 @@ +import { log } from '@temporalio/activity' + +export async function activityA(name: string): Promise { + log.info('hello from activityA', { name }) + return `ActivityA result: A-${name}!` +} diff --git a/packages/workflows/src/workflowA/activities/activitiesB.ts b/packages/workflows/src/workflowA/activities/activitiesB.ts new file mode 100644 index 000000000..034cd2120 --- /dev/null +++ b/packages/workflows/src/workflowA/activities/activitiesB.ts @@ -0,0 +1,6 @@ +import { log } from '@temporalio/activity' + +export async function activityB(name: string): Promise { + log.info('hello from activityB', { name }) + return `ActivityB result: B-${name}!` +} diff --git a/packages/workflows/src/workflowA/workflow.test.ts b/packages/workflows/src/workflowA/workflow.test.ts new file mode 100644 index 000000000..0e299d513 --- /dev/null +++ b/packages/workflows/src/workflowA/workflow.test.ts @@ -0,0 +1,57 @@ +import { afterAll, beforeAll, expect, test } from '@jest/globals' +import { WorkflowCoverage } from '@temporalio/nyc-test-coverage' +import { TestWorkflowEnvironment } from '@temporalio/testing' +import { DefaultLogger, Runtime, Worker, type LogEntry } from '@temporalio/worker' +import crypto from 'node:crypto' +import { activityA } from './activities/activitiesA' +import { activityB } from './activities/activitiesB' +import { WorkflowA } from './workflow' + +let testEnv: TestWorkflowEnvironment + +const workflowCoverage = new WorkflowCoverage() + +beforeAll(async () => { + // Use console.log instead of console.error to avoid red output + // Filter INFO log messages for clearer test output + Runtime.install({ + logger: new DefaultLogger('WARN', (entry: LogEntry) => + console.log(`[${entry.level}]`, entry.message) + ), + }) + + testEnv = await TestWorkflowEnvironment.createLocal() +}) + +afterAll(async () => { + await testEnv?.teardown() +}) + +afterAll(() => { + workflowCoverage.mergeIntoGlobalCoverage() +}) + +test('WorkflowA with mock activity', async () => { + const { client, nativeConnection } = testEnv + const worker = await Worker.create( + workflowCoverage.augmentWorkerOptions({ + connection: nativeConnection, + taskQueue: 'test', + workflowsPath: require.resolve('./workflow'), + activities: { + activityA, + activityB, + }, + }) + ) + + await worker.runUntil(async () => { + const uuid = crypto.randomUUID() + const result = await client.workflow.execute(WorkflowA, { + workflowId: `test-${uuid}`, + taskQueue: 'test', + args: ['Temporal'], + }) + expect(result).toEqual('A: ActivityA result: A-Temporal! | B: ActivityB result: B-Temporal!') + }) +}) diff --git a/packages/workflows/src/workflowA/workflow.ts b/packages/workflows/src/workflowA/workflow.ts new file mode 100644 index 000000000..601622c2f --- /dev/null +++ b/packages/workflows/src/workflowA/workflow.ts @@ -0,0 +1,19 @@ +import { proxyActivities, sleep, log } from '@temporalio/workflow' +// Only import the activity types +import type * as activitiesA from './activities/activitiesA.js' +import type * as activitiesB from './activities/activitiesB.js' + +const { activityA } = proxyActivities({ + startToCloseTimeout: '1 minute', +}) +const { activityB } = proxyActivities({ + startToCloseTimeout: '1 minute', +}) + +export async function WorkflowA(name: string): Promise { + log.info('Hello from WorkflowA') + const res1 = await activityA(name) + await sleep(100) + const res2 = await activityB(name) + return `A: ${res1} | B: ${res2}` +} diff --git a/packages/workflows/src/workflowB/activities.ts b/packages/workflows/src/workflowB/activities.ts new file mode 100644 index 000000000..c09ed9abc --- /dev/null +++ b/packages/workflows/src/workflowB/activities.ts @@ -0,0 +1,11 @@ +import { log } from '@temporalio/activity' + +export async function activityC(name: string): Promise { + log.info('hello from activityC', { name }) + return `ActivityC result: C-${name}!` +} + +export async function activityD(name: string): Promise { + log.info('hello from activityD', { name }) + return `ActivityD result: D-${name}!` +} diff --git a/packages/workflows/src/workflowB/workflow.ts b/packages/workflows/src/workflowB/workflow.ts new file mode 100644 index 000000000..01fe03baf --- /dev/null +++ b/packages/workflows/src/workflowB/workflow.ts @@ -0,0 +1,15 @@ +import { proxyActivities, sleep, log } from '@temporalio/workflow' +// Only import the activity types +import type * as activities from './activities.js' + +const { activityC, activityD } = proxyActivities({ + startToCloseTimeout: '1 minute', +}) + +export async function WorkflowB(name = 'WorkflowB'): Promise { + log.info('Hello from WorkflowB') + const res1 = await activityC(name) + await sleep(100) + const res2 = await activityD(name) + return `${res1} ${res2}` +} diff --git a/packages/workflows/tsconfig.json b/packages/workflows/tsconfig.json new file mode 100644 index 000000000..33ae1b7eb --- /dev/null +++ b/packages/workflows/tsconfig.json @@ -0,0 +1,35 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + // Enable latest features + "lib": ["ESNext"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + // "allowImportingTsExtensions": true, + // "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false, + + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "baseUrl": ".", + "outDir": "./dist" + }, + "include": ["./src", "./jest.config.ts"] +} diff --git a/tilt/apps.Tiltfile b/tilt/apps.Tiltfile new file mode 100644 index 000000000..1e1398d9a --- /dev/null +++ b/tilt/apps.Tiltfile @@ -0,0 +1,121 @@ +# -*- mode: python -*- + +load("./common.Tiltfile", "CFG", "CI") + +labels = ["apps"] + +next_app_resource_deps = [ + "yarn:install", + "supabase", + "anvil:fixtures", + "shovel", + "temporal", + "aa_bundler:base", + "workers", +] + ([ + "supabase:generate", + "wagmi:generate", + "ui:build", + "ui:generate-theme", + "daimo-expo-passkeys:build", +] if not CFG.dockerize else []) + +# Next +if CFG.dockerize: + GIT_BRANCH = str(local("git symbolic-ref --short HEAD 2>/dev/null || git rev-parse --short HEAD")).strip() + GIT_HASH = str(local("git rev-parse --short=10 HEAD")).strip() + + # FIXME: when we support dev mode and dockerize. + # docker_build( + # "0xsend/sendapp/next-app", + # ".", + # dockerfile = "apps/next/Dockerfile", + # extra_tag = ["latest", GIT_HASH], + # platform = "linux/amd64", + # secret = [ + # "id=SUPABASE_DB_URL,src=./var/SUPABASE_DB_URL.txt", + # "id=SUPABASE_SERVICE_ROLE,src=./var/SUPABASE_SERVICE_ROLE.txt", + # ], + # build_args=[ + + # ] + # ) + docker_compose("../docker-compose.yml") + dc_resource( + "next-app", + labels = ["apps"], + new_name = "next:web", + resource_deps = [ + "yarn:install", + "supabase", + "anvil:fixtures", + "aa_bundler:base", + "shovel", + ], + ) +else: + local_resource( + "next:web", + "yarn workspace next-app next:build" if CI else "", # In CI, only build the web app + labels = labels, + links = ["http://localhost:3000"], + readiness_probe = None if CI else probe( + http_get = http_get_action( + path = "/api/healthz", + port = 3000, + ), + period_secs = 15, + ), + resource_deps = next_app_resource_deps, + serve_cmd = + "" if CI else "yarn next-app dev", # In CI, playwright tests start the web server + ) + +local_resource( + "distributor:web", + allow_parallel = True, + labels = labels, + links = ["http://localhost:3050"], + readiness_probe = probe( + http_get = http_get_action( + path = "/", + port = 3050, + ), + period_secs = 15, + ), + resource_deps = [ + "yarn:install", + "anvil:mainnet", + "supabase", + "supabase:generate", + "wagmi:generate", + ], + serve_cmd = + "yarn run distributor start" if CI else "yarn run distributor dev", +) + +local_resource( + "caddy:web", + auto_init = not CI, + labels = labels, + serve_cmd = "caddy run --watch --config ../dev.Caddyfile", + trigger_mode = TRIGGER_MODE_MANUAL, +) + +local_resource( + "workers", + allow_parallel = True, + labels = labels, + links = [ + link("http://localhost:8233", "Temporal Web UI"), + ], + resource_deps = [ + "yarn:install", + "supabase", + "supabase:generate", + "wagmi:generate", + "temporal", + ], + serve_cmd = "yarn workspace workers start.watch", +) + diff --git a/tilt/cleanup.tiltfile b/tilt/cleanup.Tiltfile similarity index 93% rename from tilt/cleanup.tiltfile rename to tilt/cleanup.Tiltfile index b86a942e5..af240c6d2 100644 --- a/tilt/cleanup.tiltfile +++ b/tilt/cleanup.Tiltfile @@ -1,3 +1,5 @@ +# -*- mode: python -*- + local(""" bun run ../bin/reset-supabase.ts || true docker ps -a | grep aa-bundler | awk '{{print $1}}' | xargs -r docker rm -f @@ -8,6 +10,7 @@ docker ps -a | grep next-app | awk '{{print $1}}' | xargs -r docker rm -f docker ps -a | grep sendapp-anvil-ethmainnet | awk '{{print $1}}' | xargs -r docker rm -f docker ps -a | grep sendapp-anvil-base | awk '{{print $1}}' | xargs -r docker rm -f pkill anvil || true +git clean -fxd ./var """) local("yarn clean || true") diff --git a/tilt/common.Tiltfile b/tilt/common.Tiltfile new file mode 100644 index 000000000..b89244cdc --- /dev/null +++ b/tilt/common.Tiltfile @@ -0,0 +1,39 @@ +# -*- mode: python -*- + +load("./utils.Tiltfile", "files_matching") + +contract_files = files_matching( + os.path.join("packages", "contracts"), + lambda f: f.endswith(".sol") and f.find("cache") == -1 and f.find("lib") == -1, +) + +DEBUG = os.getenv("DEBUG", "").find("tilt") != -1 + +CI = bool(os.getenv( + "CI", + config.tilt_subcommand == "ci", +)) + +def get_cfg(): + if os.getenv("TILT_CONFIGURED_PARSED") == None: + config.define_string_list( + "args", + args = True, + ) + + config.define_bool("dockerize", False, "Whether to build and run the apps in docker") + + _cfg = config.parse() + + config.set_enabled_resources(_cfg.get("args", [])) + os.putenv("TILT_CONFIGURED_PARSED", encode_json(_cfg)) + else: + _cfg = decode_json(os.getenv("TILT_CONFIGURED_PARSED")) + + return struct( + args = _cfg.get("args", []), + dockerize = _cfg.get("dockerize", CI), + ) + +CFG = get_cfg() + diff --git a/tilt/common.tiltfile b/tilt/common.tiltfile deleted file mode 100644 index 80fc823d6..000000000 --- a/tilt/common.tiltfile +++ /dev/null @@ -1,30 +0,0 @@ -load("./utils.tiltfile", "files_matching") - -contract_files = files_matching( - os.path.join("packages", "contracts"), - lambda f: f.endswith(".sol") and f.find("cache") == -1 and f.find("lib") == -1, -) - -DEBUG = os.getenv("DEBUG", "").find("tilt") != -1 - -CI = bool(os.getenv( - "CI", - config.tilt_subcommand == "ci", -)) - -config.define_string_list( - "args", - args = True, -) - -config.define_bool("dockerize", False, "Whether to build and run the apps in docker") - -_cfg = config.parse() - -config.set_enabled_resources(_cfg.get("args", [])) - -CFG = struct( - args = _cfg.get("args", []), - dockerize = _cfg.get("dockerize", CI), -) - diff --git a/tilt/deps.tiltfile b/tilt/deps.Tiltfile similarity index 97% rename from tilt/deps.tiltfile rename to tilt/deps.Tiltfile index f8b372534..feb2c7889 100644 --- a/tilt/deps.tiltfile +++ b/tilt/deps.Tiltfile @@ -1,6 +1,8 @@ +# -*- mode: python -*- + load("ext://uibutton", "cmd_button", "location") -load("./common.tiltfile", "CI", "contract_files") -load("./utils.tiltfile", "files_matching") +load("./common.Tiltfile", "CI", "contract_files") +load("./utils.Tiltfile", "files_matching") labels = ["deps"] @@ -38,8 +40,6 @@ cmd_button( text = "yarn lint:fix", ) -load("common.tiltfile", "contract_files") - local_resource( name = "contracts:build", allow_parallel = True, diff --git a/tilt/infra.tiltfile b/tilt/infra.Tiltfile similarity index 95% rename from tilt/infra.tiltfile rename to tilt/infra.Tiltfile index 7495e01bf..c04ab624e 100644 --- a/tilt/infra.tiltfile +++ b/tilt/infra.Tiltfile @@ -1,5 +1,7 @@ +# -*- mode: python -*- + load("ext://uibutton", "cmd_button", "location") -load("./common.tiltfile", "CI") +load("./common.Tiltfile", "CI") _prj_root = os.path.join( os.getcwd(), @@ -307,3 +309,13 @@ local_resource( serve_dir = _prj_root, ) +local_resource( + name = "temporal", + allow_parallel = True, + labels = labels, + links = [link("http://localhost:8233", "Temporal Web UI")], + resource_deps = [], + serve_cmd = "temporal server start-dev --db-filename ./var/temporal.db", + serve_dir = _prj_root, +) + diff --git a/tilt/tests.Tiltfile b/tilt/tests.Tiltfile new file mode 100644 index 000000000..adfb17dac --- /dev/null +++ b/tilt/tests.Tiltfile @@ -0,0 +1,228 @@ +# -*- mode: python -*- + +load("ext://uibutton", "cmd_button", "location") +load("./common.Tiltfile", "CI", "contract_files") +load("./utils.Tiltfile", "files_matching") + +labels = ["test"] + +local_resource( + "app:test", + "yarn workspace app test", + allow_parallel = True, + labels = labels, + resource_deps = [ + "yarn:install", + "contracts:build", + "wagmi:generate", + "supabase:generate", + "snaplet:generate", + "ui:build", + "ui:generate-theme", + "daimo-expo-passkeys:build", + "webauthn-authenticator:build", + "shovel:generate-config", + ], + deps = + files_matching( + os.path.join("packages", "app"), + lambda f: f.endswith(".ts") or f.endswith(".tsx"), + ), +) + +cmd_button( + "app:test:update-snapshots", + argv = [ + "yarn", + "workspace", + "app", + "test", + "-u", + ], + icon_name = "update", + location = location.RESOURCE, + resource = "app:test", + text = "update snapshots", +) + +local_resource( + "webauthn-authenticator:test", + "yarn workspace @0xsend/webauthn-authenticator test:coverage --run", + allow_parallel = True, + labels = labels, + resource_deps = ["yarn:install"], + deps = + files_matching( + os.path.join("packages", "webauthn-authenticator"), + lambda f: f.endswith(".ts"), + ), +) + +local_resource( + "playwright:deps", + "echo 🥳", + labels = labels, + resource_deps = [ + "anvil:mainnet", + "anvil:base", + "anvil:fixtures", + "aa_bundler:base", + "snaplet:generate", + "next:web", + "supabase", + "shovel", + ], +) + +local_resource( + "playwright:test", + "yarn playwright test", + allow_parallel = True, + auto_init = CI, + labels = labels, + resource_deps = [ + "next:web", + "playwright:deps", + ], + trigger_mode = CI and TRIGGER_MODE_AUTO or TRIGGER_MODE_MANUAL, + deps = files_matching( + os.path.join("packages", "playwright"), + lambda f: f.endswith(".ts"), + ), +) + +cmd_button( + "playwright:show-report", + argv = [ + "yarn", + "playwright", + "playwright", + "show-report", + ], + icon_name = "info", + location = location.RESOURCE, + resource = "playwright:test", + text = "playwright report", +) + +cmd_button( + "playwright:test:ui", + argv = [ + "yarn", + "playwright", + "test", + "--ui", + ], + icon_name = "bug_report", + location = location.RESOURCE, + resource = "playwright:test", + text = "playwright test --ui", +) + +local_resource( + "distributor:test", + "yarn workspace distributor test --run", + allow_parallel = True, + labels = labels, + resource_deps = [ + "yarn:install", + "anvil:mainnet", + "supabase", + "supabase:generate", + "wagmi:generate", + ], + deps = + files_matching( + os.path.join("apps", "distributor", "test"), + lambda f: f.endswith(".ts"), + ), +) + +local_resource( + "supabase:test", + "yarn supabase test", + allow_parallel = True, + labels = labels, + resource_deps = [ + "supabase", + "snaplet:generate", # hack to ensure snaplet doesn't include test pg_tap schema + ], + deps = files_matching( + os.path.join("supabase", "tests"), + lambda f: f.endswith(".sql"), + ), +) + +local_resource( + "contracts:test", + "yarn contracts test", + allow_parallel = True, + labels = labels, + resource_deps = [ + "yarn:install", + "contracts:build", + ], + deps = contract_files, +) + +local_resource( + "contracts:cov", + "yarn contracts test:cov -vvv", + allow_parallel = True, + auto_init = False, + labels = labels, + resource_deps = [ + "yarn:install", + "contracts:build", + "contracts:test", + ], + deps = contract_files, +) + +local_resource( + name = "shovel:test", + allow_parallel = True, + auto_init = not CI, + cmd = "yarn workspace @my/shovel test", + labels = labels, + resource_deps = [ + "yarn:install", + "shovel:generate-config", + ], + trigger_mode = CI and TRIGGER_MODE_MANUAL or TRIGGER_MODE_AUTO, + deps = files_matching( + os.path.join("packages", "shovel", "etc"), + lambda f: f.endswith(".json"), + ), +) + +local_resource( + "workers:test", + allow_parallel = True, + cmd = "yarn workspace @my/workflows test", + labels = labels, + resource_deps = [ + "yarn:install", + ], + deps = files_matching( + os.path.join("packages", "workflows"), + lambda f: f.endswith(".ts"), + ), +) + +local_resource( + name = "unit-tests", + allow_parallel = True, + cmd = "echo 🥳", + labels = labels, + resource_deps = [ + # messy but create a single resource that runs all the tests + "app:test", + "webauthn-authenticator:test", + "supabase:test", + "contracts:test", + "distributor:test", + "workers:test", + ], +) + diff --git a/tilt/utils.tiltfile b/tilt/utils.Tiltfile similarity index 97% rename from tilt/utils.tiltfile rename to tilt/utils.Tiltfile index 88f2c802d..159b7c5df 100644 --- a/tilt/utils.tiltfile +++ b/tilt/utils.Tiltfile @@ -1,3 +1,5 @@ +# -*- mode: python -*- + load("ext://color", "color") def require_tools(*tools): diff --git a/tsconfig.base.json b/tsconfig.base.json index 7c437cb3a..8f8d58aa0 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -11,7 +11,8 @@ "@daimo/expo-passkeys/*": ["./packages/daimo-expo-passkeys/src/*"], "@0xsend/webauthn-authenticator/*": ["./packages/webauthn-authenticator/src/*"], "@my/playwright/*": ["./packages/playwright/tests/*"], - "@my/snaplet/*": ["./packages/snaplet/*"] + "@my/snaplet/*": ["./packages/snaplet/*"], + "@my/workflows/*": ["./packages/workflows/src/*"] }, "importHelpers": true, "allowJs": false, diff --git a/yarn.lock b/yarn.lock index 66c72fc12..7003ebf12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -43,7 +43,7 @@ __metadata: debug: "npm:^4.3.4" rollup: "npm:^4.6.1" rollup-plugin-polyfill-node: "npm:^0.13.0" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" vitest: "npm:^0.34.6" languageName: unknown linkType: soft @@ -888,6 +888,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.23.9": + version: 7.24.7 + resolution: "@babel/parser@npm:7.24.7" + bin: + parser: ./bin/babel-parser.js + checksum: ef9ebce60e13db560ccc7af9235d460f6726bb7e23ae2d675098c1fc43d5249067be60d4118889dad33b1d4f85162cf66baf554719e1669f29bb20e71322568e + languageName: node + linkType: hard + "@babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.1": version: 7.24.1 resolution: "@babel/parser@npm:7.24.1" @@ -4601,6 +4610,30 @@ __metadata: languageName: node linkType: hard +"@grpc/grpc-js@npm:^1.10.6": + version: 1.10.10 + resolution: "@grpc/grpc-js@npm:1.10.10" + dependencies: + "@grpc/proto-loader": "npm:^0.7.13" + "@js-sdsl/ordered-map": "npm:^4.4.2" + checksum: eb794804305ae4ce6c55564d5fea97e76462eee0b8c4bf3ba1cc220143e7dea26553dd131662047b87d30f90ac4c84bd5ed4604720cd758c8f039848a1c4db69 + languageName: node + linkType: hard + +"@grpc/proto-loader@npm:^0.7.13": + version: 0.7.13 + resolution: "@grpc/proto-loader@npm:0.7.13" + dependencies: + lodash.camelcase: "npm:^4.3.0" + long: "npm:^5.0.0" + protobufjs: "npm:^7.2.5" + yargs: "npm:^17.7.2" + bin: + proto-loader-gen-types: build/bin/proto-loader-gen-types.js + checksum: 7e2d842c2061cbaf6450c71da0077263be3bab165454d5c8a3e1ae4d3c6d2915f02fd27da63ff01f05e127b1221acd40705273f5d29303901e60514e852992f4 + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -4692,7 +4725,7 @@ __metadata: languageName: node linkType: hard -"@istanbuljs/schema@npm:^0.1.2": +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": version: 0.1.3 resolution: "@istanbuljs/schema@npm:0.1.3" checksum: a9b1e49acdf5efc2f5b2359f2df7f90c5c725f2656f16099e8b2cd3a000619ecca9fc48cf693ba789cf0fd989f6e0df6a22bc05574be4223ecdbb7997d04384b @@ -5043,6 +5076,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + checksum: 0a9aca9320dc9044014ba0ef989b3a8411b0d778895553e3b7ca2ac0a75a20af4a5ad3f202acfb1879fa40466036a4417e1d5b38305baed8b9c1ebe6e4b3e7f5 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:1.4.14": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" @@ -5087,7 +5130,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -5097,6 +5140,45 @@ __metadata: languageName: node linkType: hard +"@js-sdsl/ordered-map@npm:^4.4.2": + version: 4.4.2 + resolution: "@js-sdsl/ordered-map@npm:4.4.2" + checksum: ac64e3f0615ecc015461c9f527f124d2edaa9e68de153c1e270c627e01e83d046522d7e872692fd57a8c514578b539afceff75831c0d8b2a9a7a347fbed35af4 + languageName: node + linkType: hard + +"@jsonjoy.com/base64@npm:^1.1.1": + version: 1.1.2 + resolution: "@jsonjoy.com/base64@npm:1.1.2" + peerDependencies: + tslib: 2 + checksum: d76bb58eff841c090d9bf69a073611ffa73c40a664ccbcea689f65961f57d7b24051269d06b437e4f6204285d6ba92f50f587c5e95c5f9e4f10b36a2ed4cd0c8 + languageName: node + linkType: hard + +"@jsonjoy.com/json-pack@npm:^1.0.3": + version: 1.0.4 + resolution: "@jsonjoy.com/json-pack@npm:1.0.4" + dependencies: + "@jsonjoy.com/base64": "npm:^1.1.1" + "@jsonjoy.com/util": "npm:^1.1.2" + hyperdyperid: "npm:^1.2.0" + thingies: "npm:^1.20.0" + peerDependencies: + tslib: 2 + checksum: dd749e7c4610db4ab7d53d9df6d8465b9805e560eda9c60dac4435b50a30710d39e975887104021a11d91c12fdf9c1752f0b0c63580a1b6b1b12854633cfea39 + languageName: node + linkType: hard + +"@jsonjoy.com/util@npm:^1.1.2": + version: 1.2.0 + resolution: "@jsonjoy.com/util@npm:1.2.0" + peerDependencies: + tslib: 2 + checksum: 6af58b3d34266f1f8e4f953668f163ef1028a5d372a90391bd238c2ea637e0ea3792b18b99162b8ec072af35baebe0e947d9eedd702ad942e697ed419f1e54eb + languageName: node + linkType: hard + "@kwsites/file-exists@npm:^1.1.1": version: 1.1.1 resolution: "@kwsites/file-exists@npm:1.1.1" @@ -5669,7 +5751,7 @@ __metadata: jsonwebtoken: "npm:^9.0.2" permissionless: "npm:^0.1.14" pg: "npm:^8.11.3" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" viem: "npm:^2.13.7" languageName: unknown linkType: soft @@ -5685,7 +5767,7 @@ __metadata: viem: "npm:^2.13.7" zx: "npm:^8.1.2" peerDependencies: - typescript: ^5.0.0 + typescript: ^5.5.3 languageName: unknown linkType: soft @@ -5736,7 +5818,7 @@ __metadata: react-hook-form: "npm:^7.48.2" solito: "npm:^4.0.1" tamagui: "npm:^1.93.2" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" zod: "npm:^3.22.4" languageName: unknown linkType: soft @@ -5753,12 +5835,33 @@ __metadata: debug: "npm:^4.3.4" globby: "npm:^14.0.0" permissionless: "npm:^0.1.14" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" viem: "npm:^2.13.7" wagmi: "npm:^2.9.10" languageName: unknown linkType: soft +"@my/workflows@workspace:*, @my/workflows@workspace:packages/workflows": + version: 0.0.0-use.local + resolution: "@my/workflows@workspace:packages/workflows" + dependencies: + "@jest/globals": "npm:^29.7.0" + "@temporalio/activity": "npm:^1.10.1" + "@temporalio/nyc-test-coverage": "npm:^1.10.1" + "@temporalio/testing": "npm:^1.10.1" + "@temporalio/workflow": "npm:^1.10.1" + "@types/source-map-support": "npm:^0" + jest: "npm:^29.7.0" + nyc: "npm:^17.0.0" + source-map-support: "npm:^0.5.21" + ts-jest: "npm:^29.1.5" + ts-node: "npm:^10.9.2" + typescript: "npm:^5.5.3" + peerDependencies: + typescript: ^5.5.3 + languageName: unknown + linkType: soft + "@nderscore/tamagui-typescript-plugin@npm:^0.6.0": version: 0.6.0 resolution: "@nderscore/tamagui-typescript-plugin@npm:0.6.0" @@ -6185,6 +6288,79 @@ __metadata: languageName: node linkType: hard +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 8a938d84fe4889411296db66b29287bd61ea3c14c2d23e7a8325f46a2b8ce899857c5f038d65d7641805e6c1d06b495525c7faf00c44f85a7ee6476649034969 + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: c71b100daeb3c9bdccab5cbc29495b906ba0ae22ceedc200e1ba49717d9c4ab15a6256839cebb6f9c6acae4ed7c25c67e0a95e734f612b258261d1a3098fe342 + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: c6ee5fa172a8464f5253174d3c2353ea520c2573ad7b6476983d9b1346f4d8f2b44aa29feb17a949b83c1816bc35286a5ea265ed9d8fdd2865acfa09668c0447 + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 03af3e99f17ad421283d054c88a06a30a615922a817741b43ca1b13e7c6b37820a37f6eba9980fb5150c54dba6e26cb6f7b64a6f7d8afa83596fafb3afa218c3 + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.1" + "@protobufjs/inquire": "npm:^1.1.0" + checksum: 67ae40572ad536e4ef94269199f252c024b66e3059850906bdaee161ca1d75c73d04d35cd56f147a8a5a079f5808e342b99e61942c1dae15604ff0600b09a958 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 634c2c989da0ef2f4f19373d64187e2a79f598c5fb7991afb689d29a2ea17c14b796b29725945fa34b9493c17fb799e08ac0a7ccaae460ee1757d3083ed35187 + languageName: node + linkType: hard + +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: c09efa34a5465cb120775e1a482136f2340a58b4abce7e93d72b8b5a9324a0e879275016ef9fcd73d72a4731639c54f2bb755bb82f916e4a78892d1d840bb3d2 + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: bb709567935fd385a86ad1f575aea98131bbd719c743fb9b6edd6b47ede429ff71a801cecbd64fc72deebf4e08b8f1bd8062793178cdaed3713b8d15771f9b83 + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: b9c7047647f6af28e92aac54f6f7c1f7ff31b201b4bfcc7a415b2861528854fce3ec666d7e7e10fd744da905f7d4aef2205bbcc8944ca0ca7a82e18134d00c46 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: 131e289c57534c1d73a0e55782d6751dd821db1583cb2f7f7e017c9d6747addaebe79f28120b2e0185395d990aad347fb14ffa73ef4096fa38508d61a0e64602 + languageName: node + linkType: hard + "@radix-ui/react-compose-refs@npm:1.0.0": version: 1.0.0 resolution: "@radix-ui/react-compose-refs@npm:1.0.0" @@ -7876,6 +8052,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-darwin-arm64@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-darwin-arm64@npm:1.6.7" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@swc/core-darwin-x64@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-darwin-x64@npm:1.4.11" @@ -7883,6 +8066,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-darwin-x64@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-darwin-x64@npm:1.6.7" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@swc/core-linux-arm-gnueabihf@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.4.11" @@ -7890,6 +8080,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-linux-arm-gnueabihf@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.7" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@swc/core-linux-arm64-gnu@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-linux-arm64-gnu@npm:1.4.11" @@ -7897,6 +8094,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-linux-arm64-gnu@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-linux-arm64-gnu@npm:1.6.7" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@swc/core-linux-arm64-musl@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-linux-arm64-musl@npm:1.4.11" @@ -7904,6 +8108,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-linux-arm64-musl@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-linux-arm64-musl@npm:1.6.7" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@swc/core-linux-x64-gnu@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-linux-x64-gnu@npm:1.4.11" @@ -7911,6 +8122,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-linux-x64-gnu@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-linux-x64-gnu@npm:1.6.7" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@swc/core-linux-x64-musl@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-linux-x64-musl@npm:1.4.11" @@ -7918,6 +8136,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-linux-x64-musl@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-linux-x64-musl@npm:1.6.7" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@swc/core-win32-arm64-msvc@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-win32-arm64-msvc@npm:1.4.11" @@ -7925,6 +8150,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-win32-arm64-msvc@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-win32-arm64-msvc@npm:1.6.7" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@swc/core-win32-ia32-msvc@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-win32-ia32-msvc@npm:1.4.11" @@ -7932,6 +8164,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-win32-ia32-msvc@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-win32-ia32-msvc@npm:1.6.7" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@swc/core-win32-x64-msvc@npm:1.4.11": version: 1.4.11 resolution: "@swc/core-win32-x64-msvc@npm:1.4.11" @@ -7939,6 +8178,13 @@ __metadata: languageName: node linkType: hard +"@swc/core-win32-x64-msvc@npm:1.6.7": + version: 1.6.7 + resolution: "@swc/core-win32-x64-msvc@npm:1.6.7" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@swc/core@npm:^1.3.100, @swc/core@npm:^1.3.107": version: 1.4.11 resolution: "@swc/core@npm:1.4.11" @@ -7985,7 +8231,53 @@ __metadata: languageName: node linkType: hard -"@swc/counter@npm:^0.1.2": +"@swc/core@npm:^1.3.102": + version: 1.6.7 + resolution: "@swc/core@npm:1.6.7" + dependencies: + "@swc/core-darwin-arm64": "npm:1.6.7" + "@swc/core-darwin-x64": "npm:1.6.7" + "@swc/core-linux-arm-gnueabihf": "npm:1.6.7" + "@swc/core-linux-arm64-gnu": "npm:1.6.7" + "@swc/core-linux-arm64-musl": "npm:1.6.7" + "@swc/core-linux-x64-gnu": "npm:1.6.7" + "@swc/core-linux-x64-musl": "npm:1.6.7" + "@swc/core-win32-arm64-msvc": "npm:1.6.7" + "@swc/core-win32-ia32-msvc": "npm:1.6.7" + "@swc/core-win32-x64-msvc": "npm:1.6.7" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.9" + peerDependencies: + "@swc/helpers": "*" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 31ea4d06f3abe9333ba4a7391494ff1c4d142310db5af8ce772f7bf3f6b30af08dea9cb12477e3052553b8e6982a21af860da1714345508751ad523f41f4ad5d + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.2, @swc/counter@npm:^0.1.3": version: 0.1.3 resolution: "@swc/counter@npm:0.1.3" checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 @@ -8017,6 +8309,15 @@ __metadata: languageName: node linkType: hard +"@swc/types@npm:^0.1.9": + version: 0.1.9 + resolution: "@swc/types@npm:0.1.9" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: c67ee0480b7d71c20764c5d99addebc1aacd4aed218f56143fa946132a93ff3e11bdea913c628ad992acf78c4d1fe69e65bb4fd2b81d8006a2edf94661d2fbce + languageName: node + linkType: hard + "@szmarczak/http-timer@npm:4.0.6": version: 4.0.6 resolution: "@szmarczak/http-timer@npm:4.0.6" @@ -9595,6 +9896,132 @@ __metadata: languageName: node linkType: hard +"@temporalio/activity@npm:1.10.1, @temporalio/activity@npm:^1.10.1": + version: 1.10.1 + resolution: "@temporalio/activity@npm:1.10.1" + dependencies: + "@temporalio/common": "npm:1.10.1" + abort-controller: "npm:^3.0.0" + checksum: 73ca1535b5599353db9f111c431495406721919467bf714e12aaeebceee37c000a22eddecbd1a679b6711ca958e3318f94aeaaa23ae2201edad0a055b0e16add + languageName: node + linkType: hard + +"@temporalio/client@npm:1.10.1": + version: 1.10.1 + resolution: "@temporalio/client@npm:1.10.1" + dependencies: + "@grpc/grpc-js": "npm:^1.10.6" + "@temporalio/common": "npm:1.10.1" + "@temporalio/proto": "npm:1.10.1" + abort-controller: "npm:^3.0.0" + long: "npm:^5.2.3" + uuid: "npm:^9.0.1" + checksum: cbc7e6e9e874748357fe1ce1e7979817f2e27d42ed1a5256aec0c2e0da1983d8e292d6fc34329f0c1e950978ded125508ce2ab3e04e15441b8d0419e483a2160 + languageName: node + linkType: hard + +"@temporalio/common@npm:1.10.1": + version: 1.10.1 + resolution: "@temporalio/common@npm:1.10.1" + dependencies: + "@temporalio/proto": "npm:1.10.1" + long: "npm:^5.2.3" + ms: "npm:^3.0.0-canary.1" + proto3-json-serializer: "npm:^2.0.0" + checksum: 009fc69f4223554276e23e0542f53cf475cb7c3ec132bcbcdf288fe81b2583f39c2637c34199c975237878354a4faeed48fd8df2931dc6f225173e1ef03909c3 + languageName: node + linkType: hard + +"@temporalio/core-bridge@npm:1.10.1": + version: 1.10.1 + resolution: "@temporalio/core-bridge@npm:1.10.1" + dependencies: + "@temporalio/common": "npm:1.10.1" + arg: "npm:^5.0.2" + cargo-cp-artifact: "npm:^0.1.8" + which: "npm:^4.0.0" + checksum: ac20a51c6d9cddd94c8ee6532e0477461c3a84b3d83ef7b96a167f140c4bffe12edbc0e6bc61680667b9dee9ed8c6c54ab977a3dc24102c5d058b239f0030986 + languageName: node + linkType: hard + +"@temporalio/nyc-test-coverage@npm:^1.10.1": + version: 1.10.1 + resolution: "@temporalio/nyc-test-coverage@npm:1.10.1" + dependencies: + convert-source-map: "npm:^2.0.0" + istanbul-lib-coverage: "npm:^3.2.2" + istanbul-lib-instrument: "npm:^6.0.1" + ts-loader: "npm:^9.5.1" + peerDependencies: + "@temporalio/common": 1.10.1 + "@temporalio/worker": 1.10.1 + "@temporalio/workflow": 1.10.1 + webpack: 5.89.0 + checksum: 3539d138f0fee3cbea567375de0d7363ed5b9fcf6b222e6287322b26531fe1500dfef42b2e4addb3385239abdadd99e59f2b7266193c63850ba35bd3ef4474f3 + languageName: node + linkType: hard + +"@temporalio/proto@npm:1.10.1": + version: 1.10.1 + resolution: "@temporalio/proto@npm:1.10.1" + dependencies: + long: "npm:^5.2.3" + protobufjs: "npm:^7.2.5" + checksum: 05c021b3d6433f7a0d03fb0ff01dbb5ef661c2210d37a8819d562bb36461b7adb921e748de1402f942644a132205eff17528a7e960a8c36cbc263d6dd7a8db96 + languageName: node + linkType: hard + +"@temporalio/testing@npm:^1.10.1": + version: 1.10.1 + resolution: "@temporalio/testing@npm:1.10.1" + dependencies: + "@temporalio/activity": "npm:1.10.1" + "@temporalio/client": "npm:1.10.1" + "@temporalio/common": "npm:1.10.1" + "@temporalio/core-bridge": "npm:1.10.1" + "@temporalio/proto": "npm:1.10.1" + "@temporalio/worker": "npm:1.10.1" + "@temporalio/workflow": "npm:1.10.1" + abort-controller: "npm:^3.0.0" + checksum: 2870fc65c787439060f09b01bd7ccf22e009a64cabc7955a28a6a3b16870ed6f2bbc0f72a69e9c5fbedbce1d493b6162260e2b787107e38c027d81315f7fd514 + languageName: node + linkType: hard + +"@temporalio/worker@npm:1.10.1, @temporalio/worker@npm:^1.10.1": + version: 1.10.1 + resolution: "@temporalio/worker@npm:1.10.1" + dependencies: + "@swc/core": "npm:^1.3.102" + "@temporalio/activity": "npm:1.10.1" + "@temporalio/client": "npm:1.10.1" + "@temporalio/common": "npm:1.10.1" + "@temporalio/core-bridge": "npm:1.10.1" + "@temporalio/proto": "npm:1.10.1" + "@temporalio/workflow": "npm:1.10.1" + abort-controller: "npm:^3.0.0" + heap-js: "npm:^2.3.0" + memfs: "npm:^4.6.0" + rxjs: "npm:^7.8.1" + source-map: "npm:^0.7.4" + source-map-loader: "npm:^4.0.2" + supports-color: "npm:^8.1.1" + swc-loader: "npm:^0.2.3" + unionfs: "npm:^4.5.1" + webpack: "npm:^5.89.0" + checksum: a499a6a3f633450abda887d00451272c44ce27af727568e0c06de894b9553da8715496a4050413fb435c87229f78ca328fe756318d1f996e49827d1c6a24baec + languageName: node + linkType: hard + +"@temporalio/workflow@npm:1.10.1, @temporalio/workflow@npm:^1.10.1": + version: 1.10.1 + resolution: "@temporalio/workflow@npm:1.10.1" + dependencies: + "@temporalio/common": "npm:1.10.1" + "@temporalio/proto": "npm:1.10.1" + checksum: 67f5a53c0f1c04d70b4c00c7203a2b72cbcaecb2a7ff8d86ce44134db022b84cdc8e922670cd37ff128888f63cf98aef52887be4afadc0716cf8dde4a2c3f7f4 + languageName: node + linkType: hard + "@testing-library/react-hooks@npm:^7.0.1": version: 7.0.2 resolution: "@testing-library/react-hooks@npm:7.0.2" @@ -9894,6 +10321,26 @@ __metadata: languageName: node linkType: hard +"@types/eslint-scope@npm:^3.7.3": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "npm:*" + "@types/estree": "npm:*" + checksum: e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 8.56.10 + resolution: "@types/eslint@npm:8.56.10" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 0cdd914b944ebba51c35827d3ef95bc3e16eb82b4c2741f6437fa57cdb00a4407c77f89c220afe9e4c9566982ec8a0fb9b97c956ac3bd4623a3b6af32eed8424 + languageName: node + linkType: hard + "@types/estree@npm:*, @types/estree@npm:^1.0.0": version: 1.0.1 resolution: "@types/estree@npm:1.0.1" @@ -9901,7 +10348,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:1.0.5": +"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 @@ -10050,7 +10497,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.5": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.5": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 @@ -10142,6 +10589,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:>=13.7.0": + version: 20.14.9 + resolution: "@types/node@npm:20.14.9" + dependencies: + undici-types: "npm:~5.26.4" + checksum: f313b06c79be92f5d3541159ef813b9fc606941f951ecf826e940658c6d4952755ca2f06277b746326cef0697ed79a04676ecde053d32e1121b3352c8168d2e9 + languageName: node + linkType: hard + "@types/node@npm:>=20.12.12": version: 20.13.0 resolution: "@types/node@npm:20.13.0" @@ -10325,6 +10781,15 @@ __metadata: languageName: node linkType: hard +"@types/source-map-support@npm:^0": + version: 0.5.10 + resolution: "@types/source-map-support@npm:0.5.10" + dependencies: + source-map: "npm:^0.6.0" + checksum: 72486b93c3340ed89537bc4f75cfcaa7ed8d4384c916b5fea919a1e39592696ab868ff73aae9e4a7d0099921aa1c35941be1ec02cd5fc7e045110a9f4707d4c8 + languageName: node + linkType: hard + "@types/stack-utils@npm:^2.0.0": version: 2.0.1 resolution: "@types/stack-utils@npm:2.0.1" @@ -11943,6 +12408,157 @@ __metadata: languageName: node linkType: hard +"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/ast@npm:1.12.1" + dependencies: + "@webassemblyjs/helper-numbers": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + checksum: a775b0559437ae122d14fec0cfe59fdcaf5ca2d8ff48254014fd05d6797e20401e0f1518e628f9b06819aa085834a2534234977f9608b3f2e51f94b6e8b0bc43 + languageName: node + linkType: hard + +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" + checksum: 1d8705daa41f4d22ef7c6d422af4c530b84d69d0c253c6db5adec44d511d7caa66837803db5b1addcea611a1498fd5a67d2cf318b057a916283ae41ffb85ba8a + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" + dependencies: + "@webassemblyjs/floating-point-hex-parser": "npm:1.11.6" + "@webassemblyjs/helper-api-error": "npm:1.11.6" + "@xtuc/long": "npm:4.2.2" + checksum: 9ffd258ad809402688a490fdef1fd02222f20cdfe191c895ac215a331343292164e5033dbc0347f0f76f2447865c0b5c2d2e3304ee948d44f7aa27857028fd08 + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 4ebf03e9c1941288c10e94e0f813f413f972bfaa1f09be2cc2e5577f300430906b61aa24d52f5ef2f894e8e24e61c6f7c39871d7e3d98bc69460e1b8e00bb20b + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-section@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + checksum: e91e6b28114e35321934070a2db8973a08a5cd9c30500b817214c683bbf5269ed4324366dd93ad83bf2fba0d671ac8f39df1c142bf58f70c57a827eeba4a3d2f + languageName: node + linkType: hard + +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" + dependencies: + "@xtuc/ieee754": "npm:^1.2.0" + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de + languageName: node + linkType: hard + +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" + dependencies: + "@xtuc/long": "npm:4.2.2" + checksum: ec3b72db0e7ce7908fe08ec24395bfc97db486063824c0edc580f0973a4cfbadf30529569d9c7db663a56513e45b94299cca03be9e1992ea3308bb0744164f3d + languageName: node + linkType: hard + +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 361a537bd604101b320a5604c3c96d1038d83166f1b9fb86cedadc7e81bae54c3785ae5d90bf5b1842f7da08194ccaf0f44a64fcca0cbbd6afe1a166196986d6 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/helper-wasm-section": "npm:1.12.1" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + "@webassemblyjs/wasm-opt": "npm:1.12.1" + "@webassemblyjs/wasm-parser": "npm:1.12.1" + "@webassemblyjs/wast-printer": "npm:1.12.1" + checksum: 5678ae02dbebba2f3a344e25928ea5a26a0df777166c9be77a467bfde7aca7f4b57ef95587e4bd768a402cdf2fddc4c56f0a599d164cdd9fe313520e39e18137 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: ec45bd50e86bc9856f80fe9af4bc1ae5c98fb85f57023d11dff2b670da240c47a7b1b9b6c89755890314212bd167cf3adae7f1157216ddffb739a4ce589fc338 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-buffer": "npm:1.12.1" + "@webassemblyjs/wasm-gen": "npm:1.12.1" + "@webassemblyjs/wasm-parser": "npm:1.12.1" + checksum: 21f25ae109012c49bb084e09f3b67679510429adc3e2408ad3621b2b505379d9cce337799a7919ef44db64e0d136833216914aea16b0d4856f353b9778e0cdb7 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@webassemblyjs/helper-api-error": "npm:1.11.6" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.11.6" + "@webassemblyjs/ieee754": "npm:1.11.6" + "@webassemblyjs/leb128": "npm:1.11.6" + "@webassemblyjs/utf8": "npm:1.11.6" + checksum: f7311685b76c3e1def2abea3488be1e77f06ecd8633143a6c5c943ca289660952b73785231bb76a010055ca64645227a4bc79705c26ab7536216891b6bb36320 + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wast-printer@npm:1.12.1" + dependencies: + "@webassemblyjs/ast": "npm:1.12.1" + "@xtuc/long": "npm:4.2.2" + checksum: 1a6a4b6bc4234f2b5adbab0cb11a24911b03380eb1cab6fb27a2250174a279fdc6aa2f5a9cf62dd1f6d4eb39f778f488e8ff15b9deb0670dee5c5077d46cf572 + languageName: node + linkType: hard + "@whatwg-node/events@npm:^0.1.0": version: 0.1.1 resolution: "@whatwg-node/events@npm:0.1.1" @@ -11990,6 +12606,20 @@ __metadata: languageName: node linkType: hard +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: ab033b032927d77e2f9fa67accdf31b1ca7440974c21c9cfabc8349e10ca2817646171c4f23be98d0e31896d6c2c3462a074fe37752e523abc3e45c79254259c + languageName: node + linkType: hard + +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 7217bae9fe240e0d804969e7b2af11cb04ec608837c78b56ca88831991b287e232a0b7fce8d548beaff42aaf0197ffa471d81be6ac4c4e53b0148025a2c076ec + languageName: node + linkType: hard + "@zxing/text-encoding@npm:0.9.0": version: 0.9.0 resolution: "@zxing/text-encoding@npm:0.9.0" @@ -12094,6 +12724,15 @@ __metadata: languageName: node linkType: hard +"acorn-import-attributes@npm:^1.9.5": + version: 1.9.5 + resolution: "acorn-import-attributes@npm:1.9.5" + peerDependencies: + acorn: ^8 + checksum: 8bfbfbb6e2467b9b47abb4d095df717ab64fce2525da65eabee073e85e7975fb3a176b6c8bba17c99a7d8ede283a10a590272304eb54a93c4aa1af9790d47a8b + languageName: node + linkType: hard + "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -12135,6 +12774,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.7.1, acorn@npm:^8.8.2": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 + languageName: node + linkType: hard + "aes-js@npm:3.0.0": version: 3.0.0 resolution: "aes-js@npm:3.0.0" @@ -12478,7 +13126,7 @@ __metadata: react-test-renderer: "npm:^18.3.1" solito: "npm:^4.0.1" superjson: "npm:^1.13.1" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" viem: "npm:^2.13.7" wagmi: "npm:^2.9.10" zod: "npm:^3.22.4" @@ -12492,6 +13140,15 @@ __metadata: languageName: node linkType: hard +"append-transform@npm:^2.0.0": + version: 2.0.0 + resolution: "append-transform@npm:2.0.0" + dependencies: + default-require-extensions: "npm:^3.0.0" + checksum: f26f393bf7a428fd1bb18f2758a819830a582243310c5170edb3f98fdc5a535333d02b952f7c2d9b14522bd8ead5b132a0b15000eca18fa9f49172963ebbc231 + languageName: node + linkType: hard + "application-config-path@npm:^0.1.0": version: 0.1.1 resolution: "application-config-path@npm:0.1.1" @@ -12513,6 +13170,13 @@ __metadata: languageName: node linkType: hard +"archy@npm:^1.0.0": + version: 1.0.0 + resolution: "archy@npm:1.0.0" + checksum: d7928049a57988b86df3f4de75ca16a4252ccee591d085c627e649fc54c5ae5daa833f17aa656bd825bd00bc0a2756ae03d2b983050bdbda1046b6d832bf7303 + languageName: node + linkType: hard + "are-we-there-yet@npm:^2.0.0": version: 2.0.0 resolution: "are-we-there-yet@npm:2.0.0" @@ -13463,6 +14127,15 @@ __metadata: languageName: node linkType: hard +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 + languageName: node + linkType: hard + "brorand@npm:^1.1.0": version: 1.1.0 resolution: "brorand@npm:1.1.0" @@ -13477,6 +14150,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.10": + version: 4.23.1 + resolution: "browserslist@npm:4.23.1" + dependencies: + caniuse-lite: "npm:^1.0.30001629" + electron-to-chromium: "npm:^1.4.796" + node-releases: "npm:^2.0.14" + update-browserslist-db: "npm:^1.0.16" + bin: + browserslist: cli.js + checksum: 91da59f70a8e01ece97133670f9857d6d7e96be78e1b7ffa54b869f97d01d01c237612471b595cee41c1ab212e26e536ce0b6716ad1d6c4368a40c222698cac1 + languageName: node + linkType: hard + "browserslist@npm:^4.21.3, browserslist@npm:^4.21.5": version: 4.21.5 resolution: "browserslist@npm:4.21.5" @@ -13789,6 +14476,18 @@ __metadata: languageName: node linkType: hard +"caching-transform@npm:^4.0.0": + version: 4.0.0 + resolution: "caching-transform@npm:4.0.0" + dependencies: + hasha: "npm:^5.0.0" + make-dir: "npm:^3.0.0" + package-hash: "npm:^4.0.0" + write-file-atomic: "npm:^3.0.0" + checksum: 7e7ca628511ab18c86eea1231834d2591de29a13ae771a7d9ab85be8c6e53e45c5a5b0d0d95d4a3274fc4f26c16956a98162e40c191c131204b5d5aa949660b5 + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" @@ -13900,6 +14599,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001629": + version: 1.0.30001640 + resolution: "caniuse-lite@npm:1.0.30001640" + checksum: 14f04379452d4302185400db14b286115d25ce96fd09536590233a09908273990deeb1c081a7ea8bc091d86cb4d1665260de8f150e84dc240e17bf7d6af0aca7 + languageName: node + linkType: hard + "capital-case@npm:^1.0.4": version: 1.0.4 resolution: "capital-case@npm:1.0.4" @@ -13923,6 +14629,15 @@ __metadata: languageName: node linkType: hard +"cargo-cp-artifact@npm:^0.1.8": + version: 0.1.9 + resolution: "cargo-cp-artifact@npm:0.1.9" + bin: + cargo-cp-artifact: bin/cargo-cp-artifact.js + checksum: 51fcb9641cc025b39384163dce97b82be6af494bc215a70e197af0a01e30dc30173a56a383dd5dbf5b4b76785ab4e91649455128b2ed7d2c3ed3c27c79c7b632 + languageName: node + linkType: hard + "catch-unknown@npm:^1.0.0": version: 1.0.0 resolution: "catch-unknown@npm:1.0.0" @@ -14175,6 +14890,13 @@ __metadata: languageName: node linkType: hard +"chrome-trace-event@npm:^1.0.2": + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: 1762bed739774903bf5915fe3045c3120fc3c7f7d929d88e566447ea38944937a6370ccb687278318c43c24f837ad22dac780bed67c066336815557b8cf558c6 + languageName: node + linkType: hard + "chromium-edge-launcher@npm:^1.0.0": version: 1.0.0 resolution: "chromium-edge-launcher@npm:1.0.0" @@ -14713,6 +15435,13 @@ __metadata: languageName: node linkType: hard +"convert-source-map@npm:^1.7.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -15187,6 +15916,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4": + version: 4.3.5 + resolution: "debug@npm:4.3.5" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: cb6eab424c410e07813ca1392888589972ce9a32b8829c6508f5e1f25f3c3e70a76731610ae55b4bbe58d1a2fffa1424b30e97fa8d394e49cd2656a9643aedd2 + languageName: node + linkType: hard + "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -15307,6 +16048,15 @@ __metadata: languageName: node linkType: hard +"default-require-extensions@npm:^3.0.0": + version: 3.0.1 + resolution: "default-require-extensions@npm:3.0.1" + dependencies: + strip-bom: "npm:^4.0.0" + checksum: 45882fc971dd157faf6716ced04c15cf252c0a2d6f5c5844b66ca49f46ed03396a26cd940771aa569927aee22923a961bab789e74b25aabc94d90742c9dd1217 + languageName: node + linkType: hard + "defaults@npm:^1.0.3": version: 1.0.4 resolution: "defaults@npm:1.0.4" @@ -15614,7 +16364,7 @@ __metadata: express: "npm:^4.18.2" pino: "npm:^8.16.1" supertest: "npm:^6.3.3" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" viem: "npm:^2.13.7" languageName: unknown linkType: soft @@ -15939,6 +16689,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.796": + version: 1.4.816 + resolution: "electron-to-chromium@npm:1.4.816" + checksum: c44da0ca6eb40b92cc025a9ab157d465708601b4c226b7a41ab3fbb42825094f62b25d6260bb4399dd9a4be308611f22711412eb61a13cecc544d95fab8eafab + languageName: node + linkType: hard + "elliptic@npm:6.5.4, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -16050,6 +16807,16 @@ __metadata: languageName: node linkType: hard +"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.17.0": + version: 5.17.0 + resolution: "enhanced-resolve@npm:5.17.0" + dependencies: + graceful-fs: "npm:^4.2.4" + tapable: "npm:^2.2.0" + checksum: 8f7bf71537d78e7d20a27363793f2c9e13ec44800c7c7830364a448f80a44994aa19d64beecefa1ab49e4de6f7fbe18cc0931dc449c115f02918ff5fcbe7705f + languageName: node + linkType: hard + "enhanced-resolve@npm:^5.12.0": version: 5.15.0 resolution: "enhanced-resolve@npm:5.15.0" @@ -16262,6 +17029,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.2.1": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 + languageName: node + linkType: hard + "es-module-lexer@npm:^1.3.1": version: 1.4.0 resolution: "es-module-lexer@npm:1.4.0" @@ -16311,6 +17085,13 @@ __metadata: languageName: node linkType: hard +"es6-error@npm:^4.0.1": + version: 4.1.1 + resolution: "es6-error@npm:4.1.1" + checksum: 48483c25701dc5a6376f39bbe2eaf5da0b505607ec5a98cd3ade472c1939242156660636e2e508b33211e48e88b132d245341595c067bd4a95ac79fa7134da06 + languageName: node + linkType: hard + "es6-iterator@npm:^2.0.3": version: 2.0.3 resolution: "es6-iterator@npm:2.0.3" @@ -16902,6 +17683,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3 + languageName: node + linkType: hard + "escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -17282,7 +18070,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^5.1.1": +"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -17606,7 +18394,7 @@ __metadata: languageName: node linkType: hard -"events@npm:3.3.0, events@npm:^3.3.0": +"events@npm:3.3.0, events@npm:^3.2.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" checksum: a3d47e285e28d324d7180f1e493961a2bbb4cad6412090e4dec114f4db1f5b560c7696ee8e758f55e23913ede856e3689cd3aa9ae13c56b5d8314cd3b3ddd1be @@ -17810,7 +18598,7 @@ __metadata: react-native-svg: "npm:14.1.0" react-native-url-polyfill: "npm:^1.3.0" react-native-web: "npm:~0.19.10" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" languageName: unknown linkType: soft @@ -18629,6 +19417,15 @@ __metadata: languageName: node linkType: hard +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea + languageName: node + linkType: hard + "filter-obj@npm:^1.1.0": version: 1.1.0 resolution: "filter-obj@npm:1.1.0" @@ -18697,7 +19494,7 @@ __metadata: languageName: node linkType: hard -"find-cache-dir@npm:^3.3.1, find-cache-dir@npm:^3.3.2": +"find-cache-dir@npm:^3.2.0, find-cache-dir@npm:^3.3.1, find-cache-dir@npm:^3.3.2": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" dependencies: @@ -18872,6 +19669,16 @@ __metadata: languageName: node linkType: hard +"foreground-child@npm:^2.0.0": + version: 2.0.0 + resolution: "foreground-child@npm:2.0.0" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^3.0.2" + checksum: f36574ad8e19d69ce06fceac7d86161b863968e4ba292c14b7b40e5c464e3e9bcd7711250d33427d95cc2bb0d48cf101df9687433dbbc7fd3c7e4f595be8305e + languageName: node + linkType: hard + "form-data-encoder@npm:1.7.2": version: 1.7.2 resolution: "form-data-encoder@npm:1.7.2" @@ -18987,6 +19794,13 @@ __metadata: languageName: node linkType: hard +"fromentries@npm:^1.2.0": + version: 1.3.2 + resolution: "fromentries@npm:1.3.2" + checksum: 10d6e07d289db102c0c1eaf5c3e3fa55ddd6b50033d7de16d99a7cd89f1e1a302dfadb26457031f9bb5d2ed95a179aaf0396092dde5abcae06e8a2f0476826be + languageName: node + linkType: hard + "fs-constants@npm:^1.0.0": version: 1.0.0 resolution: "fs-constants@npm:1.0.0" @@ -19080,6 +19894,13 @@ __metadata: languageName: node linkType: hard +"fs-monkey@npm:^1.0.0": + version: 1.0.6 + resolution: "fs-monkey@npm:1.0.6" + checksum: a0502a23aa0b467f671cd5c7f989ff48611cce1f23deb8f6924862b49234ff37de6828f739a4f2c1acf8f20e80cb426bf6a9d135c401f3df1e7089b7de04c815 + languageName: node + linkType: hard + "fs-readdir-recursive@npm:^1.1.0": version: 1.1.0 resolution: "fs-readdir-recursive@npm:1.1.0" @@ -19653,7 +20474,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 @@ -19838,6 +20659,16 @@ __metadata: languageName: node linkType: hard +"hasha@npm:^5.0.0": + version: 5.2.2 + resolution: "hasha@npm:5.2.2" + dependencies: + is-stream: "npm:^2.0.0" + type-fest: "npm:^0.8.0" + checksum: 06cc474bed246761ff61c19d629977eb5f53fa817be4313a255a64ae0f433e831a29e83acb6555e3f4592b348497596f1d1653751008dda4f21c9c21ca60ac5a + languageName: node + linkType: hard + "hasown@npm:^2.0.0": version: 2.0.0 resolution: "hasown@npm:2.0.0" @@ -19866,6 +20697,13 @@ __metadata: languageName: node linkType: hard +"heap-js@npm:^2.3.0": + version: 2.5.0 + resolution: "heap-js@npm:2.5.0" + checksum: b97a1d5a0868322cfa18071e82140ef7bfae2831b1e7dbd8f9a373cf544b618e95f3212406c7b76ab68c6e88adcf2d524cfa184f121a6da6bf4147943ffb660f + languageName: node + linkType: hard + "hermes-estree@npm:0.15.0": version: 0.15.0 resolution: "hermes-estree@npm:0.15.0" @@ -20183,6 +21021,13 @@ __metadata: languageName: node linkType: hard +"hyperdyperid@npm:^1.2.0": + version: 1.2.0 + resolution: "hyperdyperid@npm:1.2.0" + checksum: 64abb5568ff17aa08ac0175ae55e46e22831c5552be98acdd1692081db0209f36fff58b31432017b4e1772c178962676a2cc3c54e4d5d7f020d7710cec7ad7a6 + languageName: node + linkType: hard + "hyphenate-style-name@npm:^1.0.3": version: 1.0.4 resolution: "hyphenate-style-name@npm:1.0.4" @@ -20217,7 +21062,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -20249,6 +21094,13 @@ __metadata: languageName: node linkType: hard +"ignore-by-default@npm:^1.0.1": + version: 1.0.1 + resolution: "ignore-by-default@npm:1.0.1" + checksum: 441509147b3615e0365e407a3c18e189f78c07af08564176c680be1fabc94b6c789cad1342ad887175d4ecd5225de86f73d376cec8e06b42fd9b429505ffcf8a + languageName: node + linkType: hard + "ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" @@ -21032,7 +21884,7 @@ __metadata: languageName: node linkType: hard -"is-windows@npm:^1.0.1": +"is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": version: 1.0.2 resolution: "is-windows@npm:1.0.2" checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 @@ -21083,6 +21935,13 @@ __metadata: languageName: node linkType: hard +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + "isobject@npm:^3.0.1": version: 3.0.1 resolution: "isobject@npm:3.0.1" @@ -21118,13 +21977,29 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": +"istanbul-lib-coverage@npm:3.2.2": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" checksum: 40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81 languageName: node linkType: hard +"istanbul-lib-coverage@patch:istanbul-lib-coverage@npm%3A3.2.2#~/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch": + version: 3.2.2 + resolution: "istanbul-lib-coverage@patch:istanbul-lib-coverage@npm%3A3.2.2#~/.yarn/patches/istanbul-lib-coverage-npm-3.2.2-5c0526e059.patch::version=3.2.2&hash=d0db5f" + checksum: 78f5fd68e2dd9b0e6989da52cef3c5033a6b8e51c7a3a554097426148f2fb94dd82e305e8440c3a5ea21dca60e9c537520437b2abc3a93c59e81410de475e530 + languageName: node + linkType: hard + +"istanbul-lib-hook@npm:^3.0.0": + version: 3.0.0 + resolution: "istanbul-lib-hook@npm:3.0.0" + dependencies: + append-transform: "npm:^2.0.0" + checksum: 512a996cce6b1b9003ba59eab42299dd1527176c01f3ceb7b16bf68f437eeab4958f9df7df0a6b258d45d5f1a2ca2a1bdb915970711e1a5d7b2de911c582f721 + languageName: node + linkType: hard + "istanbul-lib-instrument@npm:^5.0.4": version: 5.2.1 resolution: "istanbul-lib-instrument@npm:5.2.1" @@ -21151,6 +22026,33 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^6.0.1, istanbul-lib-instrument@npm:^6.0.2": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695 + languageName: node + linkType: hard + +"istanbul-lib-processinfo@npm:^2.0.2": + version: 2.0.3 + resolution: "istanbul-lib-processinfo@npm:2.0.3" + dependencies: + archy: "npm:^1.0.0" + cross-spawn: "npm:^7.0.3" + istanbul-lib-coverage: "npm:^3.2.0" + p-map: "npm:^3.0.0" + rimraf: "npm:^3.0.0" + uuid: "npm:^8.3.2" + checksum: 60e7b3441687249460f34a817c7204967b07830a69b6e430e60a45615319c2ab4e2b2eaeb8b3decf549fccd419cd600d21173961632229967608d7d1b194f39e + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0, istanbul-lib-report@npm:^3.0.1": version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" @@ -21173,6 +22075,16 @@ __metadata: languageName: node linkType: hard +"istanbul-reports@npm:^3.0.2": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa + languageName: node + linkType: hard + "istanbul-reports@npm:^3.1.3, istanbul-reports@npm:^3.1.5": version: 3.1.6 resolution: "istanbul-reports@npm:3.1.6" @@ -21711,6 +22623,17 @@ __metadata: languageName: node linkType: hard +"jest-worker@npm:^27.4.5": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "npm:*" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 06c6e2a84591d9ede704d5022fc13791e8876e83397c89d481b0063332abbb64c0f01ef4ca7de520b35c7a1058556078d6bdc3631376f4e9ffb42316c1a8488e + languageName: node + linkType: hard + "jest-worker@npm:^29.6.3, jest-worker@npm:^29.7.0": version: 29.7.0 resolution: "jest-worker@npm:29.7.0" @@ -21952,7 +22875,7 @@ __metadata: languageName: node linkType: hard -"json-parse-even-better-errors@npm:^2.3.0": +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" checksum: 5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf @@ -22590,7 +23513,7 @@ __metadata: languageName: node linkType: hard -"loader-runner@npm:^4.1.0": +"loader-runner@npm:^4.1.0, loader-runner@npm:^4.2.0": version: 4.3.0 resolution: "loader-runner@npm:4.3.0" checksum: 555ae002869c1e8942a0efd29a99b50a0ce6c3296efea95caf48f00d7f6f7f659203ed6613688b6181aa81dc76de3e65ece43094c6dffef3127fe1a84d973cd3 @@ -22668,6 +23591,13 @@ __metadata: languageName: node linkType: hard +"lodash.camelcase@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: c301cc379310441dc73cd6cebeb91fb254bea74e6ad3027f9346fc43b4174385153df420ffa521654e502fd34c40ef69ca4e7d40ee7129a99e06f306032bfc65 + languageName: node + linkType: hard + "lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" @@ -22682,6 +23612,13 @@ __metadata: languageName: node linkType: hard +"lodash.flattendeep@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.flattendeep@npm:4.4.0" + checksum: 0d0b41d8d86999e8bea94905ac65347404d427aacddbc6654dc2f85905e27cd2b708139671ecea135fa6f0a17ed94b9d4cab8ce12b08eddcbb1ddd83952ee4c2 + languageName: node + linkType: hard + "lodash.includes@npm:^4.3.0": version: 4.3.0 resolution: "lodash.includes@npm:4.3.0" @@ -22822,6 +23759,13 @@ __metadata: languageName: node linkType: hard +"long@npm:^5.0.0, long@npm:^5.2.3": + version: 5.2.3 + resolution: "long@npm:5.2.3" + checksum: 9167ec6947a825b827c30da169a7384eec6c0c9ec2f0b9c74da2e93d81159bbe39fb09c3f13dae9721d4b807ccfa09797a7dd1012f5d478e3e33ca3c78b608e6 + languageName: node + linkType: hard + "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -22940,7 +23884,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": +"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2, make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -23093,6 +24037,18 @@ __metadata: languageName: node linkType: hard +"memfs@npm:^4.6.0": + version: 4.9.3 + resolution: "memfs@npm:4.9.3" + dependencies: + "@jsonjoy.com/json-pack": "npm:^1.0.3" + "@jsonjoy.com/util": "npm:^1.1.2" + tree-dump: "npm:^1.0.1" + tslib: "npm:^2.0.0" + checksum: 0fb971420ac005e8c1e66a3c8ad97c22195374ca869ca7d9dcef45b6bc944e98df079fa30e6ff5a1fb9d0559e1afa2d47662671e3a2ff7be985896485cdb37be + languageName: node + linkType: hard + "memoize-one@npm:^5.0.0": version: 5.2.1 resolution: "memoize-one@npm:5.2.1" @@ -23447,6 +24403,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:^4.0.0": + version: 4.0.7 + resolution: "micromatch@npm:4.0.7" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: a11ed1cb67dcbbe9a5fc02c4062cf8bb0157d73bf86956003af8dcfdf9b287f9e15ec0f6d6925ff6b8b5b496202335e497b01de4d95ef6cf06411bc5e5c474a0 + languageName: node + linkType: hard + "micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -23831,6 +24797,13 @@ __metadata: languageName: node linkType: hard +"ms@npm:^3.0.0-canary.1": + version: 3.0.0-canary.1 + resolution: "ms@npm:3.0.0-canary.1" + checksum: 5ec76c0932cf83ac3e7f70f1a4c0d4db4dbc91de6ea5f7d336c67b48f513c8cb4c0fce3a07e3d84ee931dbdc9a48f33ed1c485e834279fff8906d385e86684ae + languageName: node + linkType: hard + "multiformats@npm:^9.4.2": version: 9.9.0 resolution: "multiformats@npm:9.9.0" @@ -24302,6 +25275,15 @@ __metadata: languageName: node linkType: hard +"node-preload@npm:^0.2.1": + version: 0.2.1 + resolution: "node-preload@npm:0.2.1" + dependencies: + process-on-spawn: "npm:^1.0.0" + checksum: de36ed365b7e474eaf05c41f976774dece23a7f398fe76dbf9705f9670a1f49e6a27c5f31fe58b4e43d96413fdce4806192c60d35317b25725636c90889d5bab + languageName: node + linkType: hard + "node-releases@npm:^2.0.14": version: 2.0.14 resolution: "node-releases@npm:2.0.14" @@ -24323,6 +25305,26 @@ __metadata: languageName: node linkType: hard +"nodemon@npm:^3.1.4": + version: 3.1.4 + resolution: "nodemon@npm:3.1.4" + dependencies: + chokidar: "npm:^3.5.2" + debug: "npm:^4" + ignore-by-default: "npm:^1.0.1" + minimatch: "npm:^3.1.2" + pstree.remy: "npm:^1.1.8" + semver: "npm:^7.5.3" + simple-update-notifier: "npm:^2.0.0" + supports-color: "npm:^5.5.0" + touch: "npm:^3.1.0" + undefsafe: "npm:^2.0.5" + bin: + nodemon: bin/nodemon.js + checksum: 2e54d3d7b8522d46b27c2537361c57a1b29ae01d1b67e558d316d284c5fc319b5267a0dcaa10821a6533a4b6ff604ac66d37e192ed4a89e794cb441b7d5a2fe1 + languageName: node + linkType: hard + "nofilter@npm:^3.1.0": version: 3.1.0 resolution: "nofilter@npm:3.1.0" @@ -24489,6 +25491,43 @@ __metadata: languageName: node linkType: hard +"nyc@npm:^17.0.0": + version: 17.0.0 + resolution: "nyc@npm:17.0.0" + dependencies: + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + caching-transform: "npm:^4.0.0" + convert-source-map: "npm:^1.7.0" + decamelize: "npm:^1.2.0" + find-cache-dir: "npm:^3.2.0" + find-up: "npm:^4.1.0" + foreground-child: "npm:^2.0.0" + get-package-type: "npm:^0.1.0" + glob: "npm:^7.1.6" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-hook: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^6.0.2" + istanbul-lib-processinfo: "npm:^2.0.2" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.0.2" + make-dir: "npm:^3.0.0" + node-preload: "npm:^0.2.1" + p-map: "npm:^3.0.0" + process-on-spawn: "npm:^1.0.0" + resolve-from: "npm:^5.0.0" + rimraf: "npm:^3.0.0" + signal-exit: "npm:^3.0.2" + spawn-wrap: "npm:^2.0.0" + test-exclude: "npm:^6.0.0" + yargs: "npm:^15.0.2" + bin: + nyc: bin/nyc.js + checksum: b20627f4875ac79861255bfc9abfaa2589bcb2b8e59ab0f8a4905e4fba80ba55be92ca408426f2d3a6a9786f79331b1e48404aa8f89208d8c11695c68d188b26 + languageName: node + linkType: hard + "ob1@npm:0.80.8": version: 0.80.8 resolution: "ob1@npm:0.80.8" @@ -25000,6 +26039,15 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^3.0.0": + version: 3.0.0 + resolution: "p-map@npm:3.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: d4a0664d2af05d7e5f6f342e6493d4cad48f7398ac803c5066afb1f8d2010bfc2a83d935689437288f7b1a743772085b8fa0909a8282b5df4210bcda496c37c8 + languageName: node + linkType: hard + "p-memoize-cjs@npm:7.1.0": version: 7.1.0 resolution: "p-memoize-cjs@npm:7.1.0" @@ -25031,6 +26079,18 @@ __metadata: languageName: node linkType: hard +"package-hash@npm:^4.0.0": + version: 4.0.0 + resolution: "package-hash@npm:4.0.0" + dependencies: + graceful-fs: "npm:^4.1.15" + hasha: "npm:^5.0.0" + lodash.flattendeep: "npm:^4.4.0" + release-zalgo: "npm:^1.0.0" + checksum: c7209d98ac31926e0c1753d014f8b6b924e1e6a1aacf833dc99edece9c8381424c41c97c26c7eee82026944a79e99023cde5998bf515d7465c87005d52152040 + languageName: node + linkType: hard + "package-json@npm:^6.5.0": version: 6.5.0 resolution: "package-json@npm:6.5.0" @@ -25519,6 +26579,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.0.7, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -26162,6 +27229,15 @@ __metadata: languageName: node linkType: hard +"process-on-spawn@npm:^1.0.0": + version: 1.0.0 + resolution: "process-on-spawn@npm:1.0.0" + dependencies: + fromentries: "npm:^1.2.0" + checksum: 8795d71742798e5a059e13da2a9c13988aa7c673a3a57f276c1ff6ed942ba9b7636139121c6a409eaa2ea6a8fda7af4be19c3dc576320515bb3f354e3544106e + languageName: node + linkType: hard + "process-warning@npm:^1.0.0": version: 1.0.0 resolution: "process-warning@npm:1.0.0" @@ -26280,6 +27356,35 @@ __metadata: languageName: node linkType: hard +"proto3-json-serializer@npm:^2.0.0": + version: 2.0.2 + resolution: "proto3-json-serializer@npm:2.0.2" + dependencies: + protobufjs: "npm:^7.2.5" + checksum: d588337f9a24a94ac14a456261af48ea07e6d0a8a00faebb0b689e79e83925383b9d3ea713184d6336d0bb743dd803f188710e3e8fbfb316586cd1e3f7862a56 + languageName: node + linkType: hard + +"protobufjs@npm:^7.2.5": + version: 7.3.2 + resolution: "protobufjs@npm:7.3.2" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/node": "npm:>=13.7.0" + long: "npm:^5.0.0" + checksum: 816604aa0649a93fd5d3ef2858ef038f482d18eebcfb4201fe85c0d3bcccc12410f9e3e73262f1219e6b5bed4f27b28c3bf7c931c409dfb1fd563a304d541d89 + languageName: node + linkType: hard + "proxy-addr@npm:~2.0.7": version: 2.0.7 resolution: "proxy-addr@npm:2.0.7" @@ -26311,6 +27416,13 @@ __metadata: languageName: node linkType: hard +"pstree.remy@npm:^1.1.8": + version: 1.1.8 + resolution: "pstree.remy@npm:1.1.8" + checksum: ef13b1b5896b35f67dbd4fb7ba54bb2a5da1a5c317276cbad4bcad4159bf8f7b5e1748dc244bf36865f3d560d2fc952521581280a91468c9c2df166cc760c8c1 + languageName: node + linkType: hard + "pump@npm:^3.0.0": version: 3.0.0 resolution: "pump@npm:3.0.0" @@ -26587,6 +27699,15 @@ __metadata: languageName: node linkType: hard +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: "npm:^5.1.0" + checksum: 4efd1ad3d88db77c2d16588dc54c2b52fd2461e70fe5724611f38d283857094fe09040fa2c9776366803c3152cf133171b452ef717592b65631ce5dc3a2bdafc + languageName: node + linkType: hard + "range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" @@ -27397,6 +28518,15 @@ __metadata: languageName: node linkType: hard +"release-zalgo@npm:^1.0.0": + version: 1.0.0 + resolution: "release-zalgo@npm:1.0.0" + dependencies: + es6-error: "npm:^4.0.1" + checksum: 1719e44b240ee1f57d034b26ea167f3cbf3c36fdae6d6efd0e6e5b202d9852baffc1c5595d378b5f8b2ad729b907ddd962f3d051d89499f83584993a5399f964 + languageName: node + linkType: hard + "remove-trailing-slash@npm:^0.1.0": version: 0.1.1 resolution: "remove-trailing-slash@npm:0.1.1" @@ -27935,7 +29065,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.5.7": +"rxjs@npm:^7.5.7, rxjs@npm:^7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" dependencies: @@ -27963,7 +29093,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 @@ -28067,6 +29197,17 @@ __metadata: languageName: node linkType: hard +"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": "npm:^7.0.8" + ajv: "npm:^6.12.5" + ajv-keywords: "npm:^3.5.2" + checksum: 2c7bbb1da967fdfd320e6cea538949006ec6e8c13ea560a4f94ff2c56809a8486fa5ec419e023452501a6befe1ca381e409c2798c24f4993c7c4094d97fdb258 + languageName: node + linkType: hard + "schema-utils@npm:^4.0.1": version: 4.0.1 resolution: "schema-utils@npm:4.0.1" @@ -28197,6 +29338,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.3.4": + version: 7.6.2 + resolution: "semver@npm:7.6.2" + bin: + semver: bin/semver.js + checksum: 296b17d027f57a87ef645e9c725bff4865a38dfc9caf29b26aa084b85820972fbe7372caea1ba6857162fa990702c6d9c1d82297cecb72d56c78ab29070d2ca2 + languageName: node + linkType: hard + "semver@npm:^7.3.5, semver@npm:^7.3.7": version: 7.5.0 resolution: "semver@npm:7.5.0" @@ -28268,7 +29418,7 @@ __metadata: node-gyp: "npm:^9.3.1" pierre: "npm:^2.0.0-alpha.8" turbo: "npm:^2.0.3" - typescript: "npm:^5.3.3" + typescript: "npm:^5.5.3" zx: "npm:^8.1.2" languageName: unknown linkType: soft @@ -28291,6 +29441,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^6.0.1": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: "npm:^2.1.0" + checksum: 445a420a6fa2eaee4b70cbd884d538e259ab278200a2ededd73253ada17d5d48e91fb1f4cd224a236ab62ea7ba0a70c6af29fc93b4f3d3078bf7da1c031fde58 + languageName: node + linkType: hard + "serve-static@npm:1.15.0, serve-static@npm:^1.13.1": version: 1.15.0 resolution: "serve-static@npm:1.15.0" @@ -28571,6 +29730,15 @@ __metadata: languageName: node linkType: hard +"simple-update-notifier@npm:^2.0.0": + version: 2.0.0 + resolution: "simple-update-notifier@npm:2.0.0" + dependencies: + semver: "npm:^7.5.3" + checksum: 40bd4f96aa89aedbf717ae9f4ab8fca70e8f7511e8b766feb15471cca3f6fe4fe673743309b08b4ba8abfe0965c9cd927e1de46550a757b819b70fc7430cc85d + languageName: node + linkType: hard + "siphash@npm:^1.1.0": version: 1.1.0 resolution: "siphash@npm:1.1.0" @@ -28908,6 +30076,18 @@ __metadata: languageName: node linkType: hard +"source-map-loader@npm:^4.0.2": + version: 4.0.2 + resolution: "source-map-loader@npm:4.0.2" + dependencies: + iconv-lite: "npm:^0.6.3" + source-map-js: "npm:^1.0.2" + peerDependencies: + webpack: ^5.72.1 + checksum: 9a33adfe21b804b2ac5be05d159dda0dd8e86ac8650816638dcff0aa982e7559ced366ed68800b82c85a48482df9072694482757ab8746633c75bae75da698b6 + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -28956,6 +30136,20 @@ __metadata: languageName: node linkType: hard +"spawn-wrap@npm:^2.0.0": + version: 2.0.0 + resolution: "spawn-wrap@npm:2.0.0" + dependencies: + foreground-child: "npm:^2.0.0" + is-windows: "npm:^1.0.2" + make-dir: "npm:^3.0.0" + rimraf: "npm:^3.0.0" + signal-exit: "npm:^3.0.2" + which: "npm:^2.0.1" + checksum: ce6ca08d66c3a41a28a7ecc10bf4945d7930fd3ae961d40804ee109cee6ee9f8436125f53bc07918ca1eb461fe2ff0033af1dc3cb803469b585639675fc2d2e7 + languageName: node + linkType: hard + "spawndamnit@npm:^2.0.0": version: 2.0.0 resolution: "spawndamnit@npm:2.0.0" @@ -29647,7 +30841,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": +"supports-color@npm:^5.3.0, supports-color@npm:^5.5.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" dependencies: @@ -29665,7 +30859,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^8.0.0": +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: @@ -29691,6 +30885,18 @@ __metadata: languageName: node linkType: hard +"swc-loader@npm:^0.2.3": + version: 0.2.6 + resolution: "swc-loader@npm:0.2.6" + dependencies: + "@swc/counter": "npm:^0.1.3" + peerDependencies: + "@swc/core": ^1.2.147 + webpack: ">=2" + checksum: fe90948c02a51bb8ffcff1ce3590e01dc12860b0bb7c9e22052b14fa846ed437781ae265614a5e14344bea22001108780f00a6e350e28c0b3499bc4cd11335fb + languageName: node + linkType: hard + "symbol-tree@npm:^3.2.4": version: 3.2.4 resolution: "symbol-tree@npm:3.2.4" @@ -29809,7 +31015,7 @@ __metadata: languageName: node linkType: hard -"tapable@npm:^2.0.0, tapable@npm:^2.2.0": +"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" checksum: 1769336dd21481ae6347611ca5fca47add0962fd8e80466515032125eca0084a4f0ede11e65341b9c0018ef4e1cf1ad820adbb0fba7cc99865c6005734000b0a @@ -29969,6 +31175,28 @@ __metadata: languageName: node linkType: hard +"terser-webpack-plugin@npm:^5.3.10": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.20" + jest-worker: "npm:^27.4.5" + schema-utils: "npm:^3.1.1" + serialize-javascript: "npm:^6.0.1" + terser: "npm:^5.26.0" + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: fb1c2436ae1b4e983be043fa0a3d355c047b16b68f102437d08c736d7960c001e7420e2f722b9d99ce0dc70ca26a68cc63c0b82bc45f5b48671142b352a9d938 + languageName: node + linkType: hard + "terser@npm:^5.10.0, terser@npm:^5.15.0": version: 5.17.1 resolution: "terser@npm:5.17.1" @@ -29983,6 +31211,20 @@ __metadata: languageName: node linkType: hard +"terser@npm:^5.26.0": + version: 5.31.1 + resolution: "terser@npm:5.31.1" + dependencies: + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.8.2" + commander: "npm:^2.20.0" + source-map-support: "npm:~0.5.20" + bin: + terser: bin/terser + checksum: 4b22b62e762aebcd538dc3f5d5323fb3b51786e9294f7069d591cb61401a1161778039fdf283bbaf06244f500ee8563e0c49fc3c64176310556f34cc6637d463 + languageName: node + linkType: hard + "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" @@ -30026,6 +31268,15 @@ __metadata: languageName: node linkType: hard +"thingies@npm:^1.20.0": + version: 1.21.0 + resolution: "thingies@npm:1.21.0" + peerDependencies: + tslib: ^2 + checksum: 5c3954b67391d1432c252cb7089f29480e2164f06987a63d83c9747aa6999bfc313d6edfce71ed967316a3378dfcaf38f35ea77aaa5d423edaf776b8ff854f83 + languageName: node + linkType: hard + "thread-loader@npm:^4.0.1": version: 4.0.1 resolution: "thread-loader@npm:4.0.1" @@ -30218,6 +31469,15 @@ __metadata: languageName: node linkType: hard +"touch@npm:^3.1.0": + version: 3.1.1 + resolution: "touch@npm:3.1.1" + bin: + nodetouch: bin/nodetouch.js + checksum: 853e763a1f4903302c5654ed353f84ad85baf757dac62c2d37ab67e0477cfd271e8c64771fcfad42310aff7c9d284ddb435ee5ca13ff36d0f3693fedd8e971d1 + languageName: node + linkType: hard + "tough-cookie@npm:^4.1.2": version: 4.1.3 resolution: "tough-cookie@npm:4.1.3" @@ -30253,6 +31513,15 @@ __metadata: languageName: node linkType: hard +"tree-dump@npm:^1.0.1": + version: 1.0.2 + resolution: "tree-dump@npm:1.0.2" + peerDependencies: + tslib: 2 + checksum: ddcde4da9ded8edc2fa77fc9153ef8d7fba9cd5f813db27c30c7039191b50e1512b7106f0f4fe7ccaa3aa69f85b4671eda7ed0b9f9d34781eb26ebe4593ad4eb + languageName: node + linkType: hard + "tree-kill@npm:1.2.2": version: 1.2.2 resolution: "tree-kill@npm:1.2.2" @@ -30285,6 +31554,42 @@ __metadata: languageName: node linkType: hard +"ts-jest@npm:^29.1.5": + version: 29.1.5 + resolution: "ts-jest@npm:29.1.5" + dependencies: + bs-logger: "npm:0.x" + fast-json-stable-stringify: "npm:2.x" + jest-util: "npm:^29.0.0" + json5: "npm:^2.2.3" + lodash.memoize: "npm:4.x" + make-error: "npm:1.x" + semver: "npm:^7.5.3" + yargs-parser: "npm:^21.0.1" + peerDependencies: + "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/transform": ^29.0.0 + "@jest/types": ^29.0.0 + babel-jest: ^29.0.0 + jest: ^29.0.0 + typescript: ">=4.3 <6" + peerDependenciesMeta: + "@babel/core": + optional: true + "@jest/transform": + optional: true + "@jest/types": + optional: true + babel-jest: + optional: true + esbuild: + optional: true + bin: + ts-jest: cli.js + checksum: 11a29a49130f1c9bef5aebe8007f6be3e630af6c2dea6b00ff5a86d649321854a43966b4990a43960d77a3f98d7a753b9b7e19c20c42a2d38341d6e67a3e48d1 + languageName: node + linkType: hard + "ts-jest@npm:~29.0.4": version: 29.0.5 resolution: "ts-jest@npm:29.0.5" @@ -30318,6 +31623,22 @@ __metadata: languageName: node linkType: hard +"ts-loader@npm:^9.5.1": + version: 9.5.1 + resolution: "ts-loader@npm:9.5.1" + dependencies: + chalk: "npm:^4.1.0" + enhanced-resolve: "npm:^5.0.0" + micromatch: "npm:^4.0.0" + semver: "npm:^7.3.4" + source-map: "npm:^0.7.4" + peerDependencies: + typescript: "*" + webpack: ^5.0.0 + checksum: a85d43bb6f72858d613290ac02d1d24e81c38ba2dcb98b90465dc97eb6c2036bf9a389542c1a7865548643e7ed39f063fdff2dbb3e5aafbc511de6a3eb275adf + languageName: node + linkType: hard + "ts-morph@npm:12.0.0": version: 12.0.0 resolution: "ts-morph@npm:12.0.0" @@ -30376,6 +31697,44 @@ __metadata: languageName: node linkType: hard +"ts-node@npm:^10.9.2": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: a91a15b3c9f76ac462f006fa88b6bfa528130dcfb849dd7ef7f9d640832ab681e235b8a2bc58ecde42f72851cc1d5d4e22c901b0c11aa51001ea1d395074b794 + languageName: node + linkType: hard + "ts-toolbelt@npm:^6.15.5": version: 6.15.5 resolution: "ts-toolbelt@npm:6.15.5" @@ -30605,6 +31964,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.8.0": + version: 0.8.1 + resolution: "type-fest@npm:0.8.1" + checksum: fd4a91bfb706aeeb0d326ebd2e9a8ea5263979e5dec8d16c3e469a5bd3a946e014a062ef76c02e3086d3d1c7209a56a20a4caafd0e9f9a5c2ab975084ea3d388 + languageName: node + linkType: hard + "type-fest@npm:^2.1.0, type-fest@npm:^2.13.0, type-fest@npm:^2.19.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" @@ -30736,6 +32102,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:^5.5.3": + version: 5.5.3 + resolution: "typescript@npm:5.5.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 11a867312419ed497929aafd2f1d28b2cd41810a5eb6c6e9e169559112e9ea073d681c121a29102e67cd4478d0a4ae37a306a5800f3717f59c4337e6a9bd5e8d + languageName: node + linkType: hard + "typescript@patch:typescript@npm%3A4.9.5#optional!builtin": version: 4.9.5 resolution: "typescript@patch:typescript@npm%3A4.9.5#optional!builtin::version=4.9.5&hash=289587" @@ -30766,6 +32142,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A^5.5.3#optional!builtin": + version: 5.5.3 + resolution: "typescript@patch:typescript@npm%3A5.5.3#optional!builtin::version=5.5.3&hash=e012d7" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: b61b8bb4b4d6a8a00f9d5f931f8c67070eed6ad11feabf4c41744a326987080bfc806a621596c70fbf2e5974eca3ed65bafeeeb22a078071bdfb51d8abd7c013 + languageName: node + linkType: hard + "ua-parser-js@npm:^0.7.30": version: 0.7.35 resolution: "ua-parser-js@npm:0.7.35" @@ -30845,6 +32231,13 @@ __metadata: languageName: node linkType: hard +"undefsafe@npm:^2.0.5": + version: 2.0.5 + resolution: "undefsafe@npm:2.0.5" + checksum: f42ab3b5770fedd4ada175fc1b2eb775b78f609156f7c389106aafd231bfc210813ee49f54483d7191d7b76e483bc7f537b5d92d19ded27156baf57592eb02cc + languageName: node + linkType: hard + "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -30939,6 +32332,15 @@ __metadata: languageName: node linkType: hard +"unionfs@npm:^4.5.1": + version: 4.5.4 + resolution: "unionfs@npm:4.5.4" + dependencies: + fs-monkey: "npm:^1.0.0" + checksum: 13e200164619134cea7d3cb2db8162f052f364c1beb83f53f17935c483ccfd117b6af048e0c6566773a3f1a34c1fbe78b41a2a4e5830d52a8f8e8b58b8f198fe + languageName: node + linkType: hard + "unique-filename@npm:^1.1.1": version: 1.1.1 resolution: "unique-filename@npm:1.1.1" @@ -31133,6 +32535,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.16": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" + dependencies: + escalade: "npm:^3.1.2" + picocolors: "npm:^1.0.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c + languageName: node + linkType: hard + "upper-case-first@npm:^2.0.2": version: 2.0.2 resolution: "upper-case-first@npm:2.0.2" @@ -31364,6 +32780,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^9.0.1": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 9d0b6adb72b736e36f2b1b53da0d559125ba3e39d913b6072f6f033e0c87835b414f0836b45bcfaf2bdf698f92297fea1c3cc19b0b258bc182c9c43cc0fab9f2 + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -31778,6 +33203,16 @@ __metadata: languageName: node linkType: hard +"watchpack@npm:^2.4.1": + version: 2.4.1 + resolution: "watchpack@npm:2.4.1" + dependencies: + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.1.2" + checksum: 0736ebd20b75d3931f9b6175c819a66dee29297c1b389b2e178bc53396a6f867ecc2fd5d87a713ae92dcb73e487daec4905beee20ca00a9e27f1184a7c2bca5e + languageName: node + linkType: hard + "wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" @@ -31878,6 +33313,50 @@ __metadata: languageName: node linkType: hard +"webpack-sources@npm:^3.2.3": + version: 3.2.3 + resolution: "webpack-sources@npm:3.2.3" + checksum: a661f41795d678b7526ae8a88cd1b3d8ce71a7d19b6503da8149b2e667fc7a12f9b899041c1665d39e38245ed3a59ab68de648ea31040c3829aa695a5a45211d + languageName: node + linkType: hard + +"webpack@npm:^5.89.0": + version: 5.92.1 + resolution: "webpack@npm:5.92.1" + dependencies: + "@types/eslint-scope": "npm:^3.7.3" + "@types/estree": "npm:^1.0.5" + "@webassemblyjs/ast": "npm:^1.12.1" + "@webassemblyjs/wasm-edit": "npm:^1.12.1" + "@webassemblyjs/wasm-parser": "npm:^1.12.1" + acorn: "npm:^8.7.1" + acorn-import-attributes: "npm:^1.9.5" + browserslist: "npm:^4.21.10" + chrome-trace-event: "npm:^1.0.2" + enhanced-resolve: "npm:^5.17.0" + es-module-lexer: "npm:^1.2.1" + eslint-scope: "npm:5.1.1" + events: "npm:^3.2.0" + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.2.11" + json-parse-even-better-errors: "npm:^2.3.1" + loader-runner: "npm:^4.2.0" + mime-types: "npm:^2.1.27" + neo-async: "npm:^2.6.2" + schema-utils: "npm:^3.2.0" + tapable: "npm:^2.1.1" + terser-webpack-plugin: "npm:^5.3.10" + watchpack: "npm:^2.4.1" + webpack-sources: "npm:^3.2.3" + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 76fcfbebcc0719c4734c65a01dcef7a0f18f3f2647484e8a7e8606adbd128ac42756bb3a8b7e2d486fe97f6286ebdc7b937ccdf3cf1d21b4684134bb89bbed89 + languageName: node + linkType: hard + "websocket@npm:^1.0.34": version: 1.0.34 resolution: "websocket@npm:1.0.34" @@ -32033,6 +33512,17 @@ __metadata: languageName: node linkType: hard +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + languageName: node + linkType: hard + "why-is-node-running@npm:^2.2.2": version: 2.2.2 resolution: "why-is-node-running@npm:2.2.2" @@ -32091,6 +33581,21 @@ __metadata: languageName: node linkType: hard +"workers@workspace:apps/workers": + version: 0.0.0-use.local + resolution: "workers@workspace:apps/workers" + dependencies: + "@my/workflows": "workspace:*" + "@temporalio/worker": "npm:^1.10.1" + "@types/bun": "npm:latest" + nodemon: "npm:^3.1.4" + ts-node: "npm:^10.9.2" + typescript: "npm:^5.5.3" + peerDependencies: + typescript: ^5.5.3 + languageName: unknown + linkType: soft + "wrap-ansi@npm:^6.2.0": version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" @@ -32142,6 +33647,18 @@ __metadata: languageName: node linkType: hard +"write-file-atomic@npm:^3.0.0": + version: 3.0.3 + resolution: "write-file-atomic@npm:3.0.3" + dependencies: + imurmurhash: "npm:^0.1.4" + is-typedarray: "npm:^1.0.0" + signal-exit: "npm:^3.0.2" + typedarray-to-buffer: "npm:^3.1.5" + checksum: 0955ab94308b74d32bc252afe69d8b42ba4b8a28b8d79f399f3f405969f82623f981e35d13129a52aa2973450f342107c06d86047572637584e85a1c0c246bf3 + languageName: node + linkType: hard + "write-file-atomic@npm:^4.0.2": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" @@ -32436,7 +33953,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^15.1.0, yargs@npm:^15.3.1": +"yargs@npm:^15.0.2, yargs@npm:^15.1.0, yargs@npm:^15.3.1": version: 15.4.1 resolution: "yargs@npm:15.4.1" dependencies: @@ -32455,7 +33972,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.3.1, yargs@npm:^17.5.1, yargs@npm:^17.6.2": +"yargs@npm:^17.3.1, yargs@npm:^17.5.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: