From a1e813d10fbb9fab19745e8ebe0beeafc2f8f50f Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 28 Jul 2024 13:54:30 +0200 Subject: [PATCH 001/122] desktop and npm tested Former-commit-id: 69395cd96c09eb10b423434911043f93113ab65b --- docker-compose.yaml | 9 + examples/hello/.gitignore | 3 +- examples/hello/backend/package.json | 2 +- examples/hello/backend/pnpm-lock.yaml | 22 +- examples/hello/backend/src/index.ts | 2 +- .../hello/backend/src/tools/openai/chat.ts | 2 +- .../hello/backend/src/workflows/example.ts | 2 +- examples/hello/trigger/package.json | 2 +- examples/hello/trigger/pnpm-lock.yaml | 1245 ++++++++++++++++- examples/hello/trigger/src/triggerWorkflow.ts | 2 +- .../.gitignore | 0 examples/wip-local-streaming/.gitignore copy | 4 + .../backend/.env.example | 0 .../backend/package.json | 2 +- .../backend/pnpm-lock.yaml | 0 .../backend/src/functions/index.ts | 0 .../backend/src/functions/stream.ts | 0 .../backend/src/index.ts | 0 .../backend/src/tools/openai/client.ts | 0 .../backend/src/workflows/index.ts | 0 .../backend/src/workflows/stream.ts | 0 .../readme.md | 0 .../trigger/package.json | 0 .../trigger/pnpm-lock.yaml | 0 .../trigger/src/triggerWorkflow.ts | 0 readme.md | 40 + restack-desktop.dmg.REMOVED.git-id | 1 + 27 files changed, 1322 insertions(+), 16 deletions(-) create mode 100644 docker-compose.yaml rename examples/{streaming => wip-local-streaming}/.gitignore (100%) create mode 100644 examples/wip-local-streaming/.gitignore copy rename examples/{streaming => wip-local-streaming}/backend/.env.example (100%) rename examples/{streaming => wip-local-streaming}/backend/package.json (86%) rename examples/{streaming => wip-local-streaming}/backend/pnpm-lock.yaml (100%) rename examples/{streaming => wip-local-streaming}/backend/src/functions/index.ts (100%) rename examples/{streaming => wip-local-streaming}/backend/src/functions/stream.ts (100%) rename examples/{streaming => wip-local-streaming}/backend/src/index.ts (100%) rename examples/{streaming => wip-local-streaming}/backend/src/tools/openai/client.ts (100%) rename examples/{streaming => wip-local-streaming}/backend/src/workflows/index.ts (100%) rename examples/{streaming => wip-local-streaming}/backend/src/workflows/stream.ts (100%) rename examples/{streaming => wip-local-streaming}/readme.md (100%) rename examples/{streaming => wip-local-streaming}/trigger/package.json (100%) rename examples/{streaming => wip-local-streaming}/trigger/pnpm-lock.yaml (100%) rename examples/{streaming => wip-local-streaming}/trigger/src/triggerWorkflow.ts (100%) create mode 100644 readme.md create mode 100644 restack-desktop.dmg.REMOVED.git-id diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..19d3850 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,9 @@ +services: + app: + container_name: restack-backend + image: ghcr.io/restackio/local-operator:main + ports: + # - "5233:5233" + - "6233:6233" + - "7233:7233" + - "8233:8233" \ No newline at end of file diff --git a/examples/hello/.gitignore b/examples/hello/.gitignore index a0d218e..bd87338 100644 --- a/examples/hello/.gitignore +++ b/examples/hello/.gitignore @@ -1,3 +1,4 @@ node_modules dist -.env \ No newline at end of file +.env +.npmrc \ No newline at end of file diff --git a/examples/hello/backend/package.json b/examples/hello/backend/package.json index 6466bea..0ca369f 100644 --- a/examples/hello/backend/package.json +++ b/examples/hello/backend/package.json @@ -22,7 +22,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "restack-sdk-ts": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist", + "@restackio/restack-sdk-ts": "0.0.2", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" }, diff --git a/examples/hello/backend/pnpm-lock.yaml b/examples/hello/backend/pnpm-lock.yaml index defd19a..9d8ea17 100644 --- a/examples/hello/backend/pnpm-lock.yaml +++ b/examples/hello/backend/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@restackio/restack-sdk-ts': + specifier: 0.0.2 + version: 0.0.2 '@temporalio/worker': specifier: ^1.10.3 version: 1.10.3 @@ -20,9 +23,6 @@ importers: openai: specifier: ^4.53.2 version: 4.53.2 - restack-sdk-ts: - specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../../../local-operator/sdk/typescript/dist zod: specifier: ^3.23.8 version: 3.23.8 @@ -130,6 +130,10 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@restackio/restack-sdk-ts@0.0.2': + resolution: {integrity: sha512-9tmS7v2F+TCGngUavrUo4bOKGvuYtHrnxGNKB36rqMdKzo/UPA5GvkcgyQKGVPFDWNdRzY/DP3eFQ47HTvCM1g==} + engines: {node: '>=20'} + '@swc/core-darwin-arm64@1.7.2': resolution: {integrity: sha512-Zb8KiGaESzOgh5HBnp6Vhs2fRpngHIT81JOfIo0oaGlzAckamnG7UAXC/yK6cQ8q2KXc78utJ/yq/NM2yVKLqw==} engines: {node: '>=10'} @@ -1003,6 +1007,18 @@ snapshots: '@protobufjs/utf8@1.1.0': {} + '@restackio/restack-sdk-ts@0.0.2': + dependencies: + '@temporalio/activity': 1.10.3 + '@temporalio/client': 1.10.3 + '@temporalio/worker': 1.10.3 + '@temporalio/workflow': 1.10.3 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + '@swc/core-darwin-arm64@1.7.2': optional: true diff --git a/examples/hello/backend/src/index.ts b/examples/hello/backend/src/index.ts index 94a3ff6..ee47978 100644 --- a/examples/hello/backend/src/index.ts +++ b/examples/hello/backend/src/index.ts @@ -1,4 +1,4 @@ -import Restack from "restack-sdk-ts"; +import Restack from "@restackio/restack-sdk-ts"; import { greet, goodbye } from "./functions"; async function main() { diff --git a/examples/hello/backend/src/tools/openai/chat.ts b/examples/hello/backend/src/tools/openai/chat.ts index fe84ccc..08a0e94 100644 --- a/examples/hello/backend/src/tools/openai/chat.ts +++ b/examples/hello/backend/src/tools/openai/chat.ts @@ -1,5 +1,5 @@ import { ZodObject } from "zod"; -import { FunctionFailure, log } from "restack-sdk-ts/function"; +import { FunctionFailure, log } from "@restackio/restack-sdk-ts/dist/function"; import { zodPrompt } from "./zodPrompt"; import { openaiClient } from "./client"; import { openaiCost } from "./cost"; diff --git a/examples/hello/backend/src/workflows/example.ts b/examples/hello/backend/src/workflows/example.ts index 8dea4c5..7b6b4cc 100644 --- a/examples/hello/backend/src/workflows/example.ts +++ b/examples/hello/backend/src/workflows/example.ts @@ -1,4 +1,4 @@ -import { log, step } from "restack-sdk-ts/workflow"; +import { log, step } from "@restackio/restack-sdk-ts/dist/workflow"; import * as functions from "../functions"; import { UsageOutput } from "../tools/openai/chat"; diff --git a/examples/hello/trigger/package.json b/examples/hello/trigger/package.json index ad74dc3..2df4555 100644 --- a/examples/hello/trigger/package.json +++ b/examples/hello/trigger/package.json @@ -8,7 +8,7 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { - "restack-sdk-ts": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist" + "@restackio/restack-sdk-ts": "0.0.2" }, "devDependencies": { "ts-node": "^10.9.2" diff --git a/examples/hello/trigger/pnpm-lock.yaml b/examples/hello/trigger/pnpm-lock.yaml index 911c159..f91b768 100644 --- a/examples/hello/trigger/pnpm-lock.yaml +++ b/examples/hello/trigger/pnpm-lock.yaml @@ -8,13 +8,13 @@ importers: .: dependencies: - restack-sdk-ts: - specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../local-operator/sdk/typescript/dist + '@restackio/restack-sdk-ts': + specifier: 0.0.2 + version: 0.0.2 devDependencies: ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.12)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.3)(@types/node@20.14.12)(typescript@5.5.4) packages: @@ -22,16 +22,191 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@grpc/grpc-js@1.11.1': + resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.0.4': + resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.3.0': + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@restackio/restack-sdk-ts@0.0.2': + resolution: {integrity: sha512-9tmS7v2F+TCGngUavrUo4bOKGvuYtHrnxGNKB36rqMdKzo/UPA5GvkcgyQKGVPFDWNdRzY/DP3eFQ47HTvCM1g==} + engines: {node: '>=20'} + + '@swc/core-darwin-arm64@1.7.3': + resolution: {integrity: sha512-CTkHa6MJdov9t41vuV2kmQIMu+Q19LrEHGIR/UiJYH06SC/sOu35ZZH8DyfLp9ZoaCn21gwgWd61ixOGQlwzTw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.3': + resolution: {integrity: sha512-mun623y6rCoZ2EFIYfIRqXYRFufJOopoYSJcxYhZUrfTpAvQ1zLngjQpWCUU1krggXR2U0PQj+ls0DfXUTraNg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.3': + resolution: {integrity: sha512-4Jz4UcIcvZNMp9qoHbBx35bo3rjt8hpYLPqnR4FFq6gkAsJIMFC56UhRZwdEQoDuYiOFMBnnrsg31Fyo6YQypA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.3': + resolution: {integrity: sha512-p+U/M/oqV7HC4erQ5TVWHhJU1984QD+wQBPxslAYq751bOQGm0R/mXK42GjugqjnR6yYrAiwKKbpq4iWVXNePA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.3': + resolution: {integrity: sha512-s6VzyaJwaRGTi2mz2h6Ywxfmgpkc69IxhuMzl+sl34plH0V0RgnZDm14HoCGIKIzRk4+a2EcBV1ZLAfWmPACQg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.3': + resolution: {integrity: sha512-IrFY48C356Z2dU2pjYg080yvMXzmSV3Lmm/Wna4cfcB1nkVLjWsuYwwRAk9CY7E19c+q8N1sMNggubAUDYoX2g==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.3': + resolution: {integrity: sha512-qoLgxBlBnnyUEDu5vmRQqX90h9jldU1JXI96e6eh2d1gJyKRA0oSK7xXmTzorv1fGHiHulv9qiJOUG+g6uzJWg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.3': + resolution: {integrity: sha512-OAd7jVVJ7nb0Ev80VAa1aeK+FldPeC4eZ35H4Qn6EICzIz0iqJo2T33qLKkSZiZEBKSoF4KcwrqYfkjLOp5qWg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.3': + resolution: {integrity: sha512-31+Le1NyfSnILFV9+AhxfFOG0DK0272MNhbIlbcv4w/iqpjkhaOnNQnLsYJD1Ow7lTX1MtIZzTjOhRlzSviRWg==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.3': + resolution: {integrity: sha512-jVQPbYrwcuueI4QB0fHC29SVrkFOBcfIspYDlgSoHnEz6tmLMqUy+txZUypY/ZH/KaK0HEY74JkzgbRC1S6LFQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.3': + resolution: {integrity: sha512-HHAlbXjWI6Kl9JmmUW1LSygT1YbblXgj2UvvDzMkTBPRzYMhW6xchxdO8HbtMPtFYRt/EQq9u1z7j4ttRSrFsA==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + + '@temporalio/activity@1.10.3': + resolution: {integrity: sha512-2wGEnH3lzfRkAPsM29Uih4jaXPjsRDCsXdSFJqmHz2fxcfodcjSjgTAJERFKRVOb9JfYmzsITRIrkKAfs3kvxA==} + + '@temporalio/client@1.10.3': + resolution: {integrity: sha512-0xGYlURFoHrWByIJB3vNCaY7p9lnUkvrlA4uVAG92AwI0z/kcXdkUwn+VTOBBJi83iX6NZ0QS47HA6sCr00OPw==} + + '@temporalio/common@1.10.3': + resolution: {integrity: sha512-0LF4UZQomMy+K3dGR0PGkBAqBByavjldeUKyMONtDrVqtq4sO2+2NtLW9mvmXGCH15jsabye1pQZdZxlTGP/CQ==} + + '@temporalio/core-bridge@1.10.3': + resolution: {integrity: sha512-TJV8Th8h0pv6gwwEqcTUIbOZVqfKj/6qWgNBnZuHi3BYd1WKzvXGGg0r1gorwlfapaC3Mms/Rqed9Xlnl9xjDQ==} + + '@temporalio/proto@1.10.3': + resolution: {integrity: sha512-ugp04SpQFNmOa0+/kpg2vLfWMBPD2UW4s4XRaN23v9RREZ0HqV+DB+ZTT+03F9jeZlIFB0hxbF1Xd65tAF6fKg==} + + '@temporalio/worker@1.10.3': + resolution: {integrity: sha512-IGHSpp9usFcn1kuYs234xOP2xjBJVyEtjborV8ZEFi9Eu01s7BfrNrVZUMQjs6dRTOCvvvkiFhU3MNuyk2qkWA==} + engines: {node: '>= 16.0.0'} + + '@temporalio/workflow@1.10.3': + resolution: {integrity: sha512-XnP1Srb4r1dhl4g5U/KDTSSJ9zixIeqBd5lfC0wol257ItjfJPJgXAYUNg0YqPg4HyE77OlG7Qh6qhyAU80ubg==} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -44,9 +219,81 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.0': + resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/node@20.14.12': resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-walk@8.3.3: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} @@ -56,9 +303,61 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + browserslist@4.23.2: + resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + caniuse-lite@1.0.30001643: + resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} + + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + hasBin: true + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -66,9 +365,252 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + electron-to-chromium@1.5.2: + resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + engines: {node: '>=10.0.0'} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + memfs@4.11.0: + resolution: {integrity: sha512-+6kz90/YQoZuHvg3rn1CGPMZfEMaU5xe7xIavZMNiom2RNesiI8S37p9O9n+PlIUnUgretjLdM6HnqpZYl3X2g==} + engines: {node: '>= 4.0.0'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + ms@3.0.0-canary.1: + resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} + engines: {node: '>=12.13'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.3.2: + resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} + engines: {node: '>=12.0.0'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-loader@4.0.2: + resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.31.3: + resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} + engines: {node: '>=10'} + hasBin: true + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -83,6 +625,9 @@ packages: '@swc/wasm': optional: true + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -91,9 +636,64 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + unionfs@4.5.4: + resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.93.0: + resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -104,15 +704,213 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@grpc/grpc-js@1.11.1': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.3.2 + yargs: 17.7.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': + dependencies: + tslib: 2.6.3 + + '@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) + '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.6.3) + tslib: 2.6.3 + + '@jsonjoy.com/util@1.3.0(tslib@2.6.3)': + dependencies: + tslib: 2.6.3 + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@restackio/restack-sdk-ts@0.0.2': + dependencies: + '@temporalio/activity': 1.10.3 + '@temporalio/client': 1.10.3 + '@temporalio/worker': 1.10.3 + '@temporalio/workflow': 1.10.3 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@swc/core-darwin-arm64@1.7.3': + optional: true + + '@swc/core-darwin-x64@1.7.3': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.3': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.3': + optional: true + + '@swc/core-linux-arm64-musl@1.7.3': + optional: true + + '@swc/core-linux-x64-gnu@1.7.3': + optional: true + + '@swc/core-linux-x64-musl@1.7.3': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.3': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.3': + optional: true + + '@swc/core-win32-x64-msvc@1.7.3': + optional: true + + '@swc/core@1.7.3': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.3 + '@swc/core-darwin-x64': 1.7.3 + '@swc/core-linux-arm-gnueabihf': 1.7.3 + '@swc/core-linux-arm64-gnu': 1.7.3 + '@swc/core-linux-arm64-musl': 1.7.3 + '@swc/core-linux-x64-gnu': 1.7.3 + '@swc/core-linux-x64-musl': 1.7.3 + '@swc/core-win32-arm64-msvc': 1.7.3 + '@swc/core-win32-ia32-msvc': 1.7.3 + '@swc/core-win32-x64-msvc': 1.7.3 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.12': + dependencies: + '@swc/counter': 0.1.3 + + '@temporalio/activity@1.10.3': + dependencies: + '@temporalio/common': 1.10.3 + abort-controller: 3.0.0 + + '@temporalio/client@1.10.3': + dependencies: + '@grpc/grpc-js': 1.11.1 + '@temporalio/common': 1.10.3 + '@temporalio/proto': 1.10.3 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/common@1.10.3': + dependencies: + '@temporalio/proto': 1.10.3 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.10.3': + dependencies: + '@temporalio/common': 1.10.3 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/proto@1.10.3': + dependencies: + long: 5.2.3 + protobufjs: 7.3.2 + + '@temporalio/worker@1.10.3': + dependencies: + '@swc/core': 1.7.3 + '@temporalio/activity': 1.10.3 + '@temporalio/client': 1.10.3 + '@temporalio/common': 1.10.3 + '@temporalio/core-bridge': 1.10.3 + '@temporalio/proto': 1.10.3 + '@temporalio/workflow': 1.10.3 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.11.0 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.3)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)) + unionfs: 4.5.4 + webpack: 5.93.0(@swc/core@1.7.3) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/workflow@1.10.3': + dependencies: + '@temporalio/common': 1.10.3 + '@temporalio/proto': 1.10.3 + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -121,25 +919,380 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.0 + '@types/estree': 1.0.5 + + '@types/eslint@9.6.0': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.5': {} + + '@types/json-schema@7.0.15': {} + '@types/node@20.14.12': dependencies: undici-types: 5.26.5 + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + acorn-walk@8.3.3: dependencies: acorn: 8.12.1 acorn@8.12.1: {} + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + arg@4.1.3: {} + arg@5.0.2: {} + + browserslist@4.23.2: + dependencies: + caniuse-lite: 1.0.30001643 + electron-to-chromium: 1.5.2 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.2) + + buffer-from@1.1.2: {} + + caniuse-lite@1.0.30001643: {} + + cargo-cp-artifact@0.1.9: {} + + chrome-trace-event@1.0.4: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@2.20.3: {} + create-require@1.1.1: {} diff@4.0.2: {} + electron-to-chromium@1.5.2: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-module-lexer@1.5.4: {} + + escalade@3.1.2: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fs-monkey@1.0.6: {} + + get-caller-file@2.0.5: {} + + glob-to-regexp@0.4.1: {} + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + heap-js@2.5.0: {} + + hyperdyperid@1.2.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + is-fullwidth-code-point@3.0.0: {} + + isexe@3.1.1: {} + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.14.12 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + loader-runner@4.3.0: {} + + lodash.camelcase@4.3.0: {} + + long@5.2.3: {} + make-error@1.3.6: {} - ts-node@10.9.2(@types/node@20.14.12)(typescript@5.5.4): + memfs@4.11.0: + dependencies: + '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) + '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) + tree-dump: 1.0.2(tslib@2.6.3) + tslib: 2.6.3 + + merge-stream@2.0.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + ms@3.0.0-canary.1: {} + + neo-async@2.6.2: {} + + node-releases@2.0.18: {} + + picocolors@1.0.1: {} + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.3.2 + + protobufjs@7.3.2: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.14.12 + long: 5.2.3 + + punycode@2.3.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + require-directory@2.1.1: {} + + rxjs@7.8.1: + dependencies: + tslib: 2.6.3 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + source-map-js@1.2.0: {} + + source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.3)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.0 + webpack: 5.93.0(@swc/core@1.7.3) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + swc-loader@0.2.6(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)): + dependencies: + '@swc/core': 1.7.3 + '@swc/counter': 0.1.3 + webpack: 5.93.0(@swc/core@1.7.3) + + tapable@2.2.1: {} + + terser-webpack-plugin@5.3.10(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.31.3 + webpack: 5.93.0(@swc/core@1.7.3) + optionalDependencies: + '@swc/core': 1.7.3 + + terser@5.31.3: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + thingies@1.21.0(tslib@2.6.3): + dependencies: + tslib: 2.6.3 + + tree-dump@1.0.2(tslib@2.6.3): + dependencies: + tslib: 2.6.3 + + ts-node@10.9.2(@swc/core@1.7.3)(@types/node@20.14.12)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -156,11 +1309,93 @@ snapshots: typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.3 + + tslib@2.6.3: {} typescript@5.5.4: {} undici-types@5.26.5: {} + unionfs@4.5.4: + dependencies: + fs-monkey: 1.0.6 + + update-browserslist-db@1.1.0(browserslist@4.23.2): + dependencies: + browserslist: 4.23.2 + escalade: 3.1.2 + picocolors: 1.0.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + uuid@9.0.1: {} + v8-compile-cache-lib@3.0.1: {} + watchpack@2.4.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webpack-sources@3.2.3: {} + + webpack@5.93.0(@swc/core@1.7.3): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + yn@3.1.1: {} diff --git a/examples/hello/trigger/src/triggerWorkflow.ts b/examples/hello/trigger/src/triggerWorkflow.ts index 3dc43ee..d134632 100644 --- a/examples/hello/trigger/src/triggerWorkflow.ts +++ b/examples/hello/trigger/src/triggerWorkflow.ts @@ -1,4 +1,4 @@ -import Restack from "restack-sdk-ts"; +import Restack from "@restackio/restack-sdk-ts"; async function triggerExampleWorkflow() { try { diff --git a/examples/streaming/.gitignore b/examples/wip-local-streaming/.gitignore similarity index 100% rename from examples/streaming/.gitignore rename to examples/wip-local-streaming/.gitignore diff --git a/examples/wip-local-streaming/.gitignore copy b/examples/wip-local-streaming/.gitignore copy new file mode 100644 index 0000000..bd87338 --- /dev/null +++ b/examples/wip-local-streaming/.gitignore copy @@ -0,0 +1,4 @@ +node_modules +dist +.env +.npmrc \ No newline at end of file diff --git a/examples/streaming/backend/.env.example b/examples/wip-local-streaming/backend/.env.example similarity index 100% rename from examples/streaming/backend/.env.example rename to examples/wip-local-streaming/backend/.env.example diff --git a/examples/streaming/backend/package.json b/examples/wip-local-streaming/backend/package.json similarity index 86% rename from examples/streaming/backend/package.json rename to examples/wip-local-streaming/backend/package.json index cf28f0d..9c8a422 100644 --- a/examples/streaming/backend/package.json +++ b/examples/wip-local-streaming/backend/package.json @@ -22,7 +22,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "restack-sdk-ts": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist", + "@restackio/restack-sdk-ts": "0.0.2" }, "devDependencies": { "@types/node": "^20.11.1", diff --git a/examples/streaming/backend/pnpm-lock.yaml b/examples/wip-local-streaming/backend/pnpm-lock.yaml similarity index 100% rename from examples/streaming/backend/pnpm-lock.yaml rename to examples/wip-local-streaming/backend/pnpm-lock.yaml diff --git a/examples/streaming/backend/src/functions/index.ts b/examples/wip-local-streaming/backend/src/functions/index.ts similarity index 100% rename from examples/streaming/backend/src/functions/index.ts rename to examples/wip-local-streaming/backend/src/functions/index.ts diff --git a/examples/streaming/backend/src/functions/stream.ts b/examples/wip-local-streaming/backend/src/functions/stream.ts similarity index 100% rename from examples/streaming/backend/src/functions/stream.ts rename to examples/wip-local-streaming/backend/src/functions/stream.ts diff --git a/examples/streaming/backend/src/index.ts b/examples/wip-local-streaming/backend/src/index.ts similarity index 100% rename from examples/streaming/backend/src/index.ts rename to examples/wip-local-streaming/backend/src/index.ts diff --git a/examples/streaming/backend/src/tools/openai/client.ts b/examples/wip-local-streaming/backend/src/tools/openai/client.ts similarity index 100% rename from examples/streaming/backend/src/tools/openai/client.ts rename to examples/wip-local-streaming/backend/src/tools/openai/client.ts diff --git a/examples/streaming/backend/src/workflows/index.ts b/examples/wip-local-streaming/backend/src/workflows/index.ts similarity index 100% rename from examples/streaming/backend/src/workflows/index.ts rename to examples/wip-local-streaming/backend/src/workflows/index.ts diff --git a/examples/streaming/backend/src/workflows/stream.ts b/examples/wip-local-streaming/backend/src/workflows/stream.ts similarity index 100% rename from examples/streaming/backend/src/workflows/stream.ts rename to examples/wip-local-streaming/backend/src/workflows/stream.ts diff --git a/examples/streaming/readme.md b/examples/wip-local-streaming/readme.md similarity index 100% rename from examples/streaming/readme.md rename to examples/wip-local-streaming/readme.md diff --git a/examples/streaming/trigger/package.json b/examples/wip-local-streaming/trigger/package.json similarity index 100% rename from examples/streaming/trigger/package.json rename to examples/wip-local-streaming/trigger/package.json diff --git a/examples/streaming/trigger/pnpm-lock.yaml b/examples/wip-local-streaming/trigger/pnpm-lock.yaml similarity index 100% rename from examples/streaming/trigger/pnpm-lock.yaml rename to examples/wip-local-streaming/trigger/pnpm-lock.yaml diff --git a/examples/streaming/trigger/src/triggerWorkflow.ts b/examples/wip-local-streaming/trigger/src/triggerWorkflow.ts similarity index 100% rename from examples/streaming/trigger/src/triggerWorkflow.ts rename to examples/wip-local-streaming/trigger/src/triggerWorkflow.ts diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..bd31fa8 --- /dev/null +++ b/readme.md @@ -0,0 +1,40 @@ +# Requirements + +- Docker Desktop + +- Node 20 or higher + +brew install nvm +nvm use 20 + +- pnpm + +brew install pnpm + +# Run Restack backend (will be integrated in Restack Desktop ) + +docker compose up -d --build --pull always + +(will force repulling and rebuilding) + +# Run Restack Desktop + +Open restack-desktop.dmg and launch app + +# Install dependencies + +in both folders: +/examples/hello/backend +/examples/hello/trigger + +pnpm i + +# Launch backend + +in /examples/hello/backend +pnpm dev + +# Trigger workflow + +in /examples/hello/trigger +pnpm trigger diff --git a/restack-desktop.dmg.REMOVED.git-id b/restack-desktop.dmg.REMOVED.git-id new file mode 100644 index 0000000..43ad2dd --- /dev/null +++ b/restack-desktop.dmg.REMOVED.git-id @@ -0,0 +1 @@ +3c4df8862a49183ede06a7bcf13a689b1461f37d \ No newline at end of file From 23ae71a89e20aa04d864f78a04cb4885ea9abcd7 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 28 Jul 2024 14:03:01 +0200 Subject: [PATCH 002/122] remove link now that npm is public Former-commit-id: 74cdc85ef2be13109a252c37950c672434c8263c --- examples/hello/readme.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/hello/readme.md b/examples/hello/readme.md index 246914e..7d6ba1d 100644 --- a/examples/hello/readme.md +++ b/examples/hello/readme.md @@ -1,7 +1,5 @@ # /backend -pnpm link --global restack-sdk-ts - add OPENAI_API_KEY in .env pnpm i @@ -11,8 +9,6 @@ Tools will be running and waiting for workflows # /trigger -pnpm link --global restack-sdk-ts - pnpm i pnpm trigger From 81bae7bbc34a188ab0c9f998dd7c479f182dffc6 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 28 Jul 2024 14:22:01 +0200 Subject: [PATCH 003/122] stream local wip Former-commit-id: e2ea09daa33b9cb45ceb4ae0e805a2cfc7b68a77 --- .../wip-local-streaming/backend/package.json | 2 +- .../backend/pnpm-lock.yaml | 24 ++----------------- .../backend/src/functions/stream.ts | 2 +- .../wip-local-streaming/backend/src/index.ts | 2 +- .../backend/src/workflows/stream.ts | 2 +- .../wip-local-streaming/trigger/package.json | 2 +- .../trigger/pnpm-lock.yaml | 4 ++-- .../trigger/src/triggerWorkflow.ts | 2 +- 8 files changed, 10 insertions(+), 30 deletions(-) diff --git a/examples/wip-local-streaming/backend/package.json b/examples/wip-local-streaming/backend/package.json index 9c8a422..ee5a1fd 100644 --- a/examples/wip-local-streaming/backend/package.json +++ b/examples/wip-local-streaming/backend/package.json @@ -22,7 +22,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "0.0.2" + "restack-sdk-ts-local": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist" }, "devDependencies": { "@types/node": "^20.11.1", diff --git a/examples/wip-local-streaming/backend/pnpm-lock.yaml b/examples/wip-local-streaming/backend/pnpm-lock.yaml index b4602bc..b0477e0 100644 --- a/examples/wip-local-streaming/backend/pnpm-lock.yaml +++ b/examples/wip-local-streaming/backend/pnpm-lock.yaml @@ -20,15 +20,9 @@ importers: openai: specifier: ^4.53.2 version: 4.53.2 - restack-sdk-ts: + restack-sdk-ts-local: specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../local-operator/sdk/typescript/dist - zod: - specifier: ^3.23.8 - version: 3.23.8 - zod-to-json-schema: - specifier: ^3.23.1 - version: 3.23.1(zod@3.23.8) + version: link:../../../../local-operator/sdk/typescript/dist devDependencies: '@types/node': specifier: ^20.11.1 @@ -909,14 +903,6 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - zod-to-json-schema@3.23.1: - resolution: {integrity: sha512-oT9INvydob1XV0v1d2IadrR74rLtDInLvDFfAa1CG0Pmg/vxATk7I2gSelfj271mbzeM4Da0uuDQE/Nkj3DWNw==} - peerDependencies: - zod: ^3.23.3 - - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - snapshots: '@cspotcode/source-map-support@0.8.1': @@ -1789,9 +1775,3 @@ snapshots: yargs-parser: 21.1.1 yn@3.1.1: {} - - zod-to-json-schema@3.23.1(zod@3.23.8): - dependencies: - zod: 3.23.8 - - zod@3.23.8: {} diff --git a/examples/wip-local-streaming/backend/src/functions/stream.ts b/examples/wip-local-streaming/backend/src/functions/stream.ts index 430f961..b81bea3 100644 --- a/examples/wip-local-streaming/backend/src/functions/stream.ts +++ b/examples/wip-local-streaming/backend/src/functions/stream.ts @@ -1,4 +1,4 @@ -import { FunctionFailure } from "restack-sdk-ts/function"; +import { FunctionFailure } from "restack-sdk-ts-local/function"; import { openaiClient } from "../tools/openai/client"; export async function stream({ diff --git a/examples/wip-local-streaming/backend/src/index.ts b/examples/wip-local-streaming/backend/src/index.ts index b9c9b44..887a336 100644 --- a/examples/wip-local-streaming/backend/src/index.ts +++ b/examples/wip-local-streaming/backend/src/index.ts @@ -1,4 +1,4 @@ -import Restack from "restack-sdk-ts"; +import Restack from "restack-sdk-ts-local"; import { stream } from "./functions"; async function main() { diff --git a/examples/wip-local-streaming/backend/src/workflows/stream.ts b/examples/wip-local-streaming/backend/src/workflows/stream.ts index 46d64c2..8cd0a64 100644 --- a/examples/wip-local-streaming/backend/src/workflows/stream.ts +++ b/examples/wip-local-streaming/backend/src/workflows/stream.ts @@ -1,4 +1,4 @@ -import { step } from "restack-sdk-ts/workflow"; +import { step } from "restack-sdk-ts-local/workflow"; import * as functions from "../functions"; interface Input { diff --git a/examples/wip-local-streaming/trigger/package.json b/examples/wip-local-streaming/trigger/package.json index ad74dc3..22326b0 100644 --- a/examples/wip-local-streaming/trigger/package.json +++ b/examples/wip-local-streaming/trigger/package.json @@ -8,7 +8,7 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { - "restack-sdk-ts": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist" + "restack-sdk-ts-local": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist" }, "devDependencies": { "ts-node": "^10.9.2" diff --git a/examples/wip-local-streaming/trigger/pnpm-lock.yaml b/examples/wip-local-streaming/trigger/pnpm-lock.yaml index 911c159..3750479 100644 --- a/examples/wip-local-streaming/trigger/pnpm-lock.yaml +++ b/examples/wip-local-streaming/trigger/pnpm-lock.yaml @@ -8,9 +8,9 @@ importers: .: dependencies: - restack-sdk-ts: + restack-sdk-ts-local: specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../local-operator/sdk/typescript/dist + version: link:../../../../local-operator/sdk/typescript/dist devDependencies: ts-node: specifier: ^10.9.2 diff --git a/examples/wip-local-streaming/trigger/src/triggerWorkflow.ts b/examples/wip-local-streaming/trigger/src/triggerWorkflow.ts index c580f85..c41eadc 100644 --- a/examples/wip-local-streaming/trigger/src/triggerWorkflow.ts +++ b/examples/wip-local-streaming/trigger/src/triggerWorkflow.ts @@ -1,4 +1,4 @@ -import Restack from "restack-sdk-ts"; +import Restack from "restack-sdk-ts-local"; async function triggerExampleWorkflow() { try { From 647aa6c2dc5dc5a6d1293035ee57af482ab75554 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 28 Jul 2024 15:26:54 +0200 Subject: [PATCH 004/122] stream log Former-commit-id: 08f2f350633a6ab9146fee7607f414294933312e --- .../wip-local-streaming/backend/src/functions/stream.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/wip-local-streaming/backend/src/functions/stream.ts b/examples/wip-local-streaming/backend/src/functions/stream.ts index b81bea3..2bd937e 100644 --- a/examples/wip-local-streaming/backend/src/functions/stream.ts +++ b/examples/wip-local-streaming/backend/src/functions/stream.ts @@ -1,4 +1,4 @@ -import { FunctionFailure } from "restack-sdk-ts-local/function"; +import { FunctionFailure, log } from "restack-sdk-ts-local/function"; import { openaiClient } from "../tools/openai/client"; export async function stream({ @@ -20,9 +20,13 @@ export async function stream({ stream: true, }); + let message = ""; for await (const part of stream) { - streamUpdate(part.choices[0]?.delta?.content || ""); + message = message + part.choices[0]?.delta?.content; + log.info("stream openai", { content: part.choices[0]?.delta?.content }); } + + return message; } catch (error) { throw FunctionFailure.nonRetryable(`Error OpenAI chat: ${error}`); } From 767e43c5a761fced623317367de94aa3ec81fd0c Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 29 Jul 2024 20:18:11 +0200 Subject: [PATCH 005/122] refactor Desktop and sdk 0.0.5 Former-commit-id: 671b9950fc7eae6cbb6d806080c8165859d30bb6 Former-commit-id: 29675348c0704226082901ca9a0464c41d608c7c --- examples/hello/.gitignore => .gitignore | 0 docker-compose.yaml | 2 +- examples/hello/{backend => }/.env.example | 0 examples/hello/{backend => }/package.json | 3 +- examples/hello/{backend => }/pnpm-lock.yaml | 10 +- examples/hello/readme.md | 26 +- ...triggerWorkflow.ts => scheduleWorkflow.ts} | 11 +- .../{backend => }/src/functions/goodbye.ts | 0 .../{backend => }/src/functions/greet.ts | 2 +- .../{backend => }/src/functions/index.ts | 0 .../tools => src/functions}/openai/chat.ts | 0 .../tools => src/functions}/openai/client.ts | 0 .../tools => src/functions}/openai/cost.ts | 0 .../functions}/openai/zodPrompt.ts | 0 .../{backend/src/index.ts => src/run.ts} | 15 +- .../{backend => }/src/workflows/example.ts | 8 +- .../{backend => }/src/workflows/index.ts | 0 examples/hello/trigger/package.json | 19 - examples/hello/trigger/pnpm-lock.yaml | 1401 ----------------- examples/wip-local-streaming/.gitignore copy | 4 - .../wip-local-streaming/trigger/package.json | 19 - .../trigger/pnpm-lock.yaml | 166 -- .../local-streaming}/.env.example | 0 .../local-streaming}/.gitignore | 0 .../local-streaming}/package.json | 1 + .../local-streaming}/pnpm-lock.yaml | 2 +- .../local-streaming}/readme.md | 0 .../local-streaming/scheduleWorkflow.ts} | 11 +- .../local-streaming}/src/functions/index.ts | 0 .../src/functions}/openai/client.ts | 0 .../local-streaming}/src/functions/stream.ts | 2 +- .../local-streaming/src/run.ts} | 10 +- .../local-streaming}/src/workflows/index.ts | 0 .../local-streaming}/src/workflows/stream.ts | 2 +- readme.md | 37 +- restack-desktop.dmg.REMOVED.git-id | 1 - ...k-desktop_0.0.1_aarch64.dmg.REMOVED.git-id | 1 + 37 files changed, 61 insertions(+), 1692 deletions(-) rename examples/hello/.gitignore => .gitignore (100%) rename examples/hello/{backend => }/.env.example (100%) rename examples/hello/{backend => }/package.json (88%) rename examples/hello/{backend => }/pnpm-lock.yaml (99%) rename examples/hello/{trigger/src/triggerWorkflow.ts => scheduleWorkflow.ts} (64%) rename examples/hello/{backend => }/src/functions/goodbye.ts (100%) rename examples/hello/{backend => }/src/functions/greet.ts (89%) rename examples/hello/{backend => }/src/functions/index.ts (100%) rename examples/hello/{backend/src/tools => src/functions}/openai/chat.ts (100%) rename examples/hello/{backend/src/tools => src/functions}/openai/client.ts (100%) rename examples/hello/{backend/src/tools => src/functions}/openai/cost.ts (100%) rename examples/hello/{backend/src/tools => src/functions}/openai/zodPrompt.ts (100%) rename examples/hello/{backend/src/index.ts => src/run.ts} (81%) rename examples/hello/{backend => }/src/workflows/example.ts (81%) rename examples/hello/{backend => }/src/workflows/index.ts (100%) delete mode 100644 examples/hello/trigger/package.json delete mode 100644 examples/hello/trigger/pnpm-lock.yaml delete mode 100644 examples/wip-local-streaming/.gitignore copy delete mode 100644 examples/wip-local-streaming/trigger/package.json delete mode 100644 examples/wip-local-streaming/trigger/pnpm-lock.yaml rename examples/{wip-local-streaming/backend => work-in-progress/local-streaming}/.env.example (100%) rename examples/{wip-local-streaming => work-in-progress/local-streaming}/.gitignore (100%) rename examples/{wip-local-streaming/backend => work-in-progress/local-streaming}/package.json (93%) rename examples/{wip-local-streaming/backend => work-in-progress/local-streaming}/pnpm-lock.yaml (99%) rename examples/{wip-local-streaming => work-in-progress/local-streaming}/readme.md (100%) rename examples/{wip-local-streaming/trigger/src/triggerWorkflow.ts => work-in-progress/local-streaming/scheduleWorkflow.ts} (70%) rename examples/{wip-local-streaming/backend => work-in-progress/local-streaming}/src/functions/index.ts (100%) rename examples/{wip-local-streaming/backend/src/tools => work-in-progress/local-streaming/src/functions}/openai/client.ts (100%) rename examples/{wip-local-streaming/backend => work-in-progress/local-streaming}/src/functions/stream.ts (93%) rename examples/{wip-local-streaming/backend/src/index.ts => work-in-progress/local-streaming/src/run.ts} (83%) rename examples/{wip-local-streaming/backend => work-in-progress/local-streaming}/src/workflows/index.ts (100%) rename examples/{wip-local-streaming/backend => work-in-progress/local-streaming}/src/workflows/stream.ts (93%) delete mode 100644 restack-desktop.dmg.REMOVED.git-id create mode 100644 restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id diff --git a/examples/hello/.gitignore b/.gitignore similarity index 100% rename from examples/hello/.gitignore rename to .gitignore diff --git a/docker-compose.yaml b/docker-compose.yaml index 19d3850..57f5281 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -3,7 +3,7 @@ services: container_name: restack-backend image: ghcr.io/restackio/local-operator:main ports: - # - "5233:5233" + - "5233:5233" - "6233:6233" - "7233:7233" - "8233:8233" \ No newline at end of file diff --git a/examples/hello/backend/.env.example b/examples/hello/.env.example similarity index 100% rename from examples/hello/backend/.env.example rename to examples/hello/.env.example diff --git a/examples/hello/backend/package.json b/examples/hello/package.json similarity index 88% rename from examples/hello/backend/package.json rename to examples/hello/package.json index 0ca369f..54bb6a0 100644 --- a/examples/hello/backend/package.json +++ b/examples/hello/package.json @@ -6,6 +6,7 @@ "scripts": { "start.watch": "nodemon src/index.ts", "dev": "pnpm start.watch", + "workflow": "ts-node ./scheduleWorkflow.ts", "test": "echo \"Error: no test specified\" && exit 1" }, "nodemonConfig": { @@ -22,7 +23,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "0.0.2", + "@restackio/restack-sdk-ts": "0.0.5", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" }, diff --git a/examples/hello/backend/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml similarity index 99% rename from examples/hello/backend/pnpm-lock.yaml rename to examples/hello/pnpm-lock.yaml index 9d8ea17..9215e25 100644 --- a/examples/hello/backend/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/restack-sdk-ts': - specifier: 0.0.2 - version: 0.0.2 + specifier: 0.0.5 + version: 0.0.5 '@temporalio/worker': specifier: ^1.10.3 version: 1.10.3 @@ -130,8 +130,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.2': - resolution: {integrity: sha512-9tmS7v2F+TCGngUavrUo4bOKGvuYtHrnxGNKB36rqMdKzo/UPA5GvkcgyQKGVPFDWNdRzY/DP3eFQ47HTvCM1g==} + '@restackio/restack-sdk-ts@0.0.5': + resolution: {integrity: sha512-LtPErcDScntBH8mJz+opGIjprS0s8oY+RjqySgblOSCXRDHx2QQnMx5ZIEygUXopgyUeCy553StRmjAOYV3fuA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1007,7 +1007,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.2': + '@restackio/restack-sdk-ts@0.0.5': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/hello/readme.md b/examples/hello/readme.md index 7d6ba1d..d1aeaa1 100644 --- a/examples/hello/readme.md +++ b/examples/hello/readme.md @@ -1,15 +1,29 @@ -# /backend +# Requirements + +- Node 20 or higher + +brew install nvm +nvm use 20 + +- pnpm + +brew install pnpm + +# Start pods + +Where all your code is defined, including workflow steps. add OPENAI_API_KEY in .env pnpm i pnpm dev -Tools will be running and waiting for workflows +Your code will be running in pods and syncing with Restack engine to execute workflows or functions. -# /trigger +# Schedule a workflow -pnpm i -pnpm trigger +In another shell: + +pnpm workflow -Will trigger example workflow +Will schedule to start example workflow immediately. diff --git a/examples/hello/trigger/src/triggerWorkflow.ts b/examples/hello/scheduleWorkflow.ts similarity index 64% rename from examples/hello/trigger/src/triggerWorkflow.ts rename to examples/hello/scheduleWorkflow.ts index d134632..2219b41 100644 --- a/examples/hello/trigger/src/triggerWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -1,10 +1,10 @@ import Restack from "@restackio/restack-sdk-ts"; -async function triggerExampleWorkflow() { +async function scheduleWorkflow() { try { const restack = new Restack(); - const handle = await restack.start({ + const handle = await restack.schedule({ workflowName: "example", workflowId: `${Date.now()}-exampleWorkflow`, input: [ @@ -14,7 +14,7 @@ async function triggerExampleWorkflow() { ], }); - console.log("Workflow started successfully:", handle.firstExecutionRunId); + console.log("Workflow scheduled successfully:", handle.firstExecutionRunId); handle.result().then((result) => { console.log("Workflow result:", result); @@ -22,10 +22,9 @@ async function triggerExampleWorkflow() { process.exit(0); // Exit the process successfully } catch (error) { - console.error("Error starting workflow:", error); + console.error("Error scheduling workflow:", error); process.exit(1); // Exit the process with an error code } } -// Trigger the workflow -triggerExampleWorkflow(); +scheduleWorkflow(); diff --git a/examples/hello/backend/src/functions/goodbye.ts b/examples/hello/src/functions/goodbye.ts similarity index 100% rename from examples/hello/backend/src/functions/goodbye.ts rename to examples/hello/src/functions/goodbye.ts diff --git a/examples/hello/backend/src/functions/greet.ts b/examples/hello/src/functions/greet.ts similarity index 89% rename from examples/hello/backend/src/functions/greet.ts rename to examples/hello/src/functions/greet.ts index a185312..01734e2 100644 --- a/examples/hello/backend/src/functions/greet.ts +++ b/examples/hello/src/functions/greet.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { UsageOutput, openaiChat } from "../tools/openai/chat"; +import { UsageOutput, openaiChat } from "./openai/chat"; const zodSchema = z.object({ message: z.string().describe("The greeting message."), diff --git a/examples/hello/backend/src/functions/index.ts b/examples/hello/src/functions/index.ts similarity index 100% rename from examples/hello/backend/src/functions/index.ts rename to examples/hello/src/functions/index.ts diff --git a/examples/hello/backend/src/tools/openai/chat.ts b/examples/hello/src/functions/openai/chat.ts similarity index 100% rename from examples/hello/backend/src/tools/openai/chat.ts rename to examples/hello/src/functions/openai/chat.ts diff --git a/examples/hello/backend/src/tools/openai/client.ts b/examples/hello/src/functions/openai/client.ts similarity index 100% rename from examples/hello/backend/src/tools/openai/client.ts rename to examples/hello/src/functions/openai/client.ts diff --git a/examples/hello/backend/src/tools/openai/cost.ts b/examples/hello/src/functions/openai/cost.ts similarity index 100% rename from examples/hello/backend/src/tools/openai/cost.ts rename to examples/hello/src/functions/openai/cost.ts diff --git a/examples/hello/backend/src/tools/openai/zodPrompt.ts b/examples/hello/src/functions/openai/zodPrompt.ts similarity index 100% rename from examples/hello/backend/src/tools/openai/zodPrompt.ts rename to examples/hello/src/functions/openai/zodPrompt.ts diff --git a/examples/hello/backend/src/index.ts b/examples/hello/src/run.ts similarity index 81% rename from examples/hello/backend/src/index.ts rename to examples/hello/src/run.ts index ee47978..f148288 100644 --- a/examples/hello/backend/src/index.ts +++ b/examples/hello/src/run.ts @@ -11,30 +11,29 @@ async function main() { } try { - // start all your tools - const restack = new Restack(); await Promise.all([ - restack.tool({ + restack.pod({ name: "restack", workflowsPath, functions: { goodbye }, }), - restack.tool({ + + // Create a separate pod for all openAI functions and rate limit them + + restack.pod({ name: "openai", functions: { greet }, - streaming: true, - // rate limit allows you to control the number of requests per second for all your function associated to this tool rateLimit: calculateRpmToSecond(5000), }), ]); - console.log("Tools started successfully."); + console.log("Pods running successfully."); } catch (e) { - console.error("Failed to start tools:", e); + console.error("Failed to run pod", e); } } diff --git a/examples/hello/backend/src/workflows/example.ts b/examples/hello/src/workflows/example.ts similarity index 81% rename from examples/hello/backend/src/workflows/example.ts rename to examples/hello/src/workflows/example.ts index 7b6b4cc..728b339 100644 --- a/examples/hello/backend/src/workflows/example.ts +++ b/examples/hello/src/workflows/example.ts @@ -1,6 +1,6 @@ import { log, step } from "@restackio/restack-sdk-ts/dist/workflow"; import * as functions from "../functions"; -import { UsageOutput } from "../tools/openai/chat"; +import { UsageOutput } from "../functions/openai/chat"; interface Input { name: string; @@ -18,8 +18,7 @@ export async function example({ name }: Input): Promise { output: { message: greetMessage }, usage: greetUsage, } = await step({ - tool: `openai`, - scheduleToCloseTimeout: "1 minute", + podName: `openai`, }).greet({ name }); log.info("greeted", { greetMessage }); @@ -27,8 +26,7 @@ export async function example({ name }: Input): Promise { // Step 2 create goodbye message with simple function const { message: goodbyeMessage } = await step({ - tool: `restack`, - scheduleToCloseTimeout: "1 minute", + podName: `restack`, }).goodbye({ name }); log.info("goodbye", { goodbyeMessage }); diff --git a/examples/hello/backend/src/workflows/index.ts b/examples/hello/src/workflows/index.ts similarity index 100% rename from examples/hello/backend/src/workflows/index.ts rename to examples/hello/src/workflows/index.ts diff --git a/examples/hello/trigger/package.json b/examples/hello/trigger/package.json deleted file mode 100644 index 2df4555..0000000 --- a/examples/hello/trigger/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "trigger", - "version": "0.0.1", - "description": "", - "main": "index.js", - "scripts": { - "trigger": "ts-node src/triggerWorkflow.ts", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "dependencies": { - "@restackio/restack-sdk-ts": "0.0.2" - }, - "devDependencies": { - "ts-node": "^10.9.2" - }, - "keywords": [], - "author": "", - "license": "ISC" -} diff --git a/examples/hello/trigger/pnpm-lock.yaml b/examples/hello/trigger/pnpm-lock.yaml deleted file mode 100644 index f91b768..0000000 --- a/examples/hello/trigger/pnpm-lock.yaml +++ /dev/null @@ -1,1401 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@restackio/restack-sdk-ts': - specifier: 0.0.2 - version: 0.0.2 - devDependencies: - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.3)(@types/node@20.14.12)(typescript@5.5.4) - -packages: - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@grpc/grpc-js@1.11.1': - resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} - engines: {node: '>=12.10.0'} - - '@grpc/proto-loader@0.7.13': - resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} - engines: {node: '>=6'} - hasBin: true - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@js-sdsl/ordered-map@4.4.2': - resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} - - '@jsonjoy.com/base64@1.1.2': - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pack@1.0.4': - resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/util@1.3.0': - resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - - '@restackio/restack-sdk-ts@0.0.2': - resolution: {integrity: sha512-9tmS7v2F+TCGngUavrUo4bOKGvuYtHrnxGNKB36rqMdKzo/UPA5GvkcgyQKGVPFDWNdRzY/DP3eFQ47HTvCM1g==} - engines: {node: '>=20'} - - '@swc/core-darwin-arm64@1.7.3': - resolution: {integrity: sha512-CTkHa6MJdov9t41vuV2kmQIMu+Q19LrEHGIR/UiJYH06SC/sOu35ZZH8DyfLp9ZoaCn21gwgWd61ixOGQlwzTw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.7.3': - resolution: {integrity: sha512-mun623y6rCoZ2EFIYfIRqXYRFufJOopoYSJcxYhZUrfTpAvQ1zLngjQpWCUU1krggXR2U0PQj+ls0DfXUTraNg==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.7.3': - resolution: {integrity: sha512-4Jz4UcIcvZNMp9qoHbBx35bo3rjt8hpYLPqnR4FFq6gkAsJIMFC56UhRZwdEQoDuYiOFMBnnrsg31Fyo6YQypA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.7.3': - resolution: {integrity: sha512-p+U/M/oqV7HC4erQ5TVWHhJU1984QD+wQBPxslAYq751bOQGm0R/mXK42GjugqjnR6yYrAiwKKbpq4iWVXNePA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-arm64-musl@1.7.3': - resolution: {integrity: sha512-s6VzyaJwaRGTi2mz2h6Ywxfmgpkc69IxhuMzl+sl34plH0V0RgnZDm14HoCGIKIzRk4+a2EcBV1ZLAfWmPACQg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-x64-gnu@1.7.3': - resolution: {integrity: sha512-IrFY48C356Z2dU2pjYg080yvMXzmSV3Lmm/Wna4cfcB1nkVLjWsuYwwRAk9CY7E19c+q8N1sMNggubAUDYoX2g==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-linux-x64-musl@1.7.3': - resolution: {integrity: sha512-qoLgxBlBnnyUEDu5vmRQqX90h9jldU1JXI96e6eh2d1gJyKRA0oSK7xXmTzorv1fGHiHulv9qiJOUG+g6uzJWg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-win32-arm64-msvc@1.7.3': - resolution: {integrity: sha512-OAd7jVVJ7nb0Ev80VAa1aeK+FldPeC4eZ35H4Qn6EICzIz0iqJo2T33qLKkSZiZEBKSoF4KcwrqYfkjLOp5qWg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.7.3': - resolution: {integrity: sha512-31+Le1NyfSnILFV9+AhxfFOG0DK0272MNhbIlbcv4w/iqpjkhaOnNQnLsYJD1Ow7lTX1MtIZzTjOhRlzSviRWg==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.7.3': - resolution: {integrity: sha512-jVQPbYrwcuueI4QB0fHC29SVrkFOBcfIspYDlgSoHnEz6tmLMqUy+txZUypY/ZH/KaK0HEY74JkzgbRC1S6LFQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.7.3': - resolution: {integrity: sha512-HHAlbXjWI6Kl9JmmUW1LSygT1YbblXgj2UvvDzMkTBPRzYMhW6xchxdO8HbtMPtFYRt/EQq9u1z7j4ttRSrFsA==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': '*' - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/types@0.1.12': - resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - - '@temporalio/activity@1.10.3': - resolution: {integrity: sha512-2wGEnH3lzfRkAPsM29Uih4jaXPjsRDCsXdSFJqmHz2fxcfodcjSjgTAJERFKRVOb9JfYmzsITRIrkKAfs3kvxA==} - - '@temporalio/client@1.10.3': - resolution: {integrity: sha512-0xGYlURFoHrWByIJB3vNCaY7p9lnUkvrlA4uVAG92AwI0z/kcXdkUwn+VTOBBJi83iX6NZ0QS47HA6sCr00OPw==} - - '@temporalio/common@1.10.3': - resolution: {integrity: sha512-0LF4UZQomMy+K3dGR0PGkBAqBByavjldeUKyMONtDrVqtq4sO2+2NtLW9mvmXGCH15jsabye1pQZdZxlTGP/CQ==} - - '@temporalio/core-bridge@1.10.3': - resolution: {integrity: sha512-TJV8Th8h0pv6gwwEqcTUIbOZVqfKj/6qWgNBnZuHi3BYd1WKzvXGGg0r1gorwlfapaC3Mms/Rqed9Xlnl9xjDQ==} - - '@temporalio/proto@1.10.3': - resolution: {integrity: sha512-ugp04SpQFNmOa0+/kpg2vLfWMBPD2UW4s4XRaN23v9RREZ0HqV+DB+ZTT+03F9jeZlIFB0hxbF1Xd65tAF6fKg==} - - '@temporalio/worker@1.10.3': - resolution: {integrity: sha512-IGHSpp9usFcn1kuYs234xOP2xjBJVyEtjborV8ZEFi9Eu01s7BfrNrVZUMQjs6dRTOCvvvkiFhU3MNuyk2qkWA==} - engines: {node: '>= 16.0.0'} - - '@temporalio/workflow@1.10.3': - resolution: {integrity: sha512-XnP1Srb4r1dhl4g5U/KDTSSJ9zixIeqBd5lfC0wol257ItjfJPJgXAYUNg0YqPg4HyE77OlG7Qh6qhyAU80ubg==} - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/node@20.14.12': - resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} - - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - caniuse-lite@1.0.30001643: - resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} - - cargo-cp-artifact@0.1.9: - resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} - hasBin: true - - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - electron-to-chromium@1.5.2: - resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} - engines: {node: '>=10.13.0'} - - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - heap-js@2.5.0: - resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} - engines: {node: '>=10.0.0'} - - hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} - engines: {node: '>=10.18'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - memfs@4.11.0: - resolution: {integrity: sha512-+6kz90/YQoZuHvg3rn1CGPMZfEMaU5xe7xIavZMNiom2RNesiI8S37p9O9n+PlIUnUgretjLdM6HnqpZYl3X2g==} - engines: {node: '>= 4.0.0'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - ms@3.0.0-canary.1: - resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} - engines: {node: '>=12.13'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - proto3-json-serializer@2.0.2: - resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} - engines: {node: '>=14.0.0'} - - protobufjs@7.3.2: - resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} - engines: {node: '>=12.0.0'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-loader@4.0.2: - resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.72.1 - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - swc-loader@0.2.6: - resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} - peerDependencies: - '@swc/core': ^1.2.147 - webpack: '>=2' - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.31.3: - resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} - engines: {node: '>=10'} - hasBin: true - - thingies@1.21.0: - resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} - engines: {node: '>=10.18'} - peerDependencies: - tslib: ^2 - - tree-dump@1.0.2: - resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - 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 - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unionfs@4.5.4: - resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} - - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.93.0: - resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - -snapshots: - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@grpc/grpc-js@1.11.1': - dependencies: - '@grpc/proto-loader': 0.7.13 - '@js-sdsl/ordered-map': 4.4.2 - - '@grpc/proto-loader@0.7.13': - dependencies: - lodash.camelcase: 4.3.0 - long: 5.2.3 - protobufjs: 7.3.2 - yargs: 17.7.2 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@js-sdsl/ordered-map@4.4.2': {} - - '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': - dependencies: - tslib: 2.6.3 - - '@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3)': - dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.6.3) - tslib: 2.6.3 - - '@jsonjoy.com/util@1.3.0(tslib@2.6.3)': - dependencies: - tslib: 2.6.3 - - '@protobufjs/aspromise@1.1.2': {} - - '@protobufjs/base64@1.1.2': {} - - '@protobufjs/codegen@2.0.4': {} - - '@protobufjs/eventemitter@1.1.0': {} - - '@protobufjs/fetch@1.1.0': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.0': {} - - '@protobufjs/path@1.1.2': {} - - '@protobufjs/pool@1.1.0': {} - - '@protobufjs/utf8@1.1.0': {} - - '@restackio/restack-sdk-ts@0.0.2': - dependencies: - '@temporalio/activity': 1.10.3 - '@temporalio/client': 1.10.3 - '@temporalio/worker': 1.10.3 - '@temporalio/workflow': 1.10.3 - transitivePeerDependencies: - - '@swc/helpers' - - esbuild - - uglify-js - - webpack-cli - - '@swc/core-darwin-arm64@1.7.3': - optional: true - - '@swc/core-darwin-x64@1.7.3': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.7.3': - optional: true - - '@swc/core-linux-arm64-gnu@1.7.3': - optional: true - - '@swc/core-linux-arm64-musl@1.7.3': - optional: true - - '@swc/core-linux-x64-gnu@1.7.3': - optional: true - - '@swc/core-linux-x64-musl@1.7.3': - optional: true - - '@swc/core-win32-arm64-msvc@1.7.3': - optional: true - - '@swc/core-win32-ia32-msvc@1.7.3': - optional: true - - '@swc/core-win32-x64-msvc@1.7.3': - optional: true - - '@swc/core@1.7.3': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 - optionalDependencies: - '@swc/core-darwin-arm64': 1.7.3 - '@swc/core-darwin-x64': 1.7.3 - '@swc/core-linux-arm-gnueabihf': 1.7.3 - '@swc/core-linux-arm64-gnu': 1.7.3 - '@swc/core-linux-arm64-musl': 1.7.3 - '@swc/core-linux-x64-gnu': 1.7.3 - '@swc/core-linux-x64-musl': 1.7.3 - '@swc/core-win32-arm64-msvc': 1.7.3 - '@swc/core-win32-ia32-msvc': 1.7.3 - '@swc/core-win32-x64-msvc': 1.7.3 - - '@swc/counter@0.1.3': {} - - '@swc/types@0.1.12': - dependencies: - '@swc/counter': 0.1.3 - - '@temporalio/activity@1.10.3': - dependencies: - '@temporalio/common': 1.10.3 - abort-controller: 3.0.0 - - '@temporalio/client@1.10.3': - dependencies: - '@grpc/grpc-js': 1.11.1 - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 - abort-controller: 3.0.0 - long: 5.2.3 - uuid: 9.0.1 - - '@temporalio/common@1.10.3': - dependencies: - '@temporalio/proto': 1.10.3 - long: 5.2.3 - ms: 3.0.0-canary.1 - proto3-json-serializer: 2.0.2 - - '@temporalio/core-bridge@1.10.3': - dependencies: - '@temporalio/common': 1.10.3 - arg: 5.0.2 - cargo-cp-artifact: 0.1.9 - which: 4.0.0 - - '@temporalio/proto@1.10.3': - dependencies: - long: 5.2.3 - protobufjs: 7.3.2 - - '@temporalio/worker@1.10.3': - dependencies: - '@swc/core': 1.7.3 - '@temporalio/activity': 1.10.3 - '@temporalio/client': 1.10.3 - '@temporalio/common': 1.10.3 - '@temporalio/core-bridge': 1.10.3 - '@temporalio/proto': 1.10.3 - '@temporalio/workflow': 1.10.3 - abort-controller: 3.0.0 - heap-js: 2.5.0 - memfs: 4.11.0 - rxjs: 7.8.1 - source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.3)) - supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)) - unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.3) - transitivePeerDependencies: - - '@swc/helpers' - - esbuild - - uglify-js - - webpack-cli - - '@temporalio/workflow@1.10.3': - dependencies: - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 - - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.0 - '@types/estree': 1.0.5 - - '@types/eslint@9.6.0': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - - '@types/estree@1.0.5': {} - - '@types/json-schema@7.0.15': {} - - '@types/node@20.14.12': - dependencies: - undici-types: 5.26.5 - - '@webassemblyjs/ast@1.12.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - - '@webassemblyjs/helper-api-error@1.11.6': {} - - '@webassemblyjs/helper-buffer@1.12.1': {} - - '@webassemblyjs/helper-numbers@1.11.6': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - - '@webassemblyjs/helper-wasm-section@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 - - '@webassemblyjs/ieee754@1.11.6': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.11.6': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.11.6': {} - - '@webassemblyjs/wasm-edit@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 - - '@webassemblyjs/wasm-gen@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wasm-opt@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - - '@webassemblyjs/wasm-parser@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wast-printer@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - acorn-import-attributes@1.9.5(acorn@8.12.1): - dependencies: - acorn: 8.12.1 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.1 - - acorn@8.12.1: {} - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - arg@4.1.3: {} - - arg@5.0.2: {} - - browserslist@4.23.2: - dependencies: - caniuse-lite: 1.0.30001643 - electron-to-chromium: 1.5.2 - node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.2) - - buffer-from@1.1.2: {} - - caniuse-lite@1.0.30001643: {} - - cargo-cp-artifact@0.1.9: {} - - chrome-trace-event@1.0.4: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - commander@2.20.3: {} - - create-require@1.1.1: {} - - diff@4.0.2: {} - - electron-to-chromium@1.5.2: {} - - emoji-regex@8.0.0: {} - - enhanced-resolve@5.17.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - es-module-lexer@1.5.4: {} - - escalade@3.1.2: {} - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - fast-deep-equal@3.1.3: {} - - fast-json-stable-stringify@2.1.0: {} - - fs-monkey@1.0.6: {} - - get-caller-file@2.0.5: {} - - glob-to-regexp@0.4.1: {} - - graceful-fs@4.2.11: {} - - has-flag@4.0.0: {} - - heap-js@2.5.0: {} - - hyperdyperid@1.2.0: {} - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - is-fullwidth-code-point@3.0.0: {} - - isexe@3.1.1: {} - - jest-worker@27.5.1: - dependencies: - '@types/node': 20.14.12 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - loader-runner@4.3.0: {} - - lodash.camelcase@4.3.0: {} - - long@5.2.3: {} - - make-error@1.3.6: {} - - memfs@4.11.0: - dependencies: - '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - tree-dump: 1.0.2(tslib@2.6.3) - tslib: 2.6.3 - - merge-stream@2.0.0: {} - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - ms@3.0.0-canary.1: {} - - neo-async@2.6.2: {} - - node-releases@2.0.18: {} - - picocolors@1.0.1: {} - - proto3-json-serializer@2.0.2: - dependencies: - protobufjs: 7.3.2 - - protobufjs@7.3.2: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/node': 20.14.12 - long: 5.2.3 - - punycode@2.3.1: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - require-directory@2.1.1: {} - - rxjs@7.8.1: - dependencies: - tslib: 2.6.3 - - safe-buffer@5.2.1: {} - - safer-buffer@2.1.2: {} - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - source-map-js@1.2.0: {} - - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.3)): - dependencies: - iconv-lite: 0.6.3 - source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.3) - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - source-map@0.7.4: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - swc-loader@0.2.6(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)): - dependencies: - '@swc/core': 1.7.3 - '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.3) - - tapable@2.2.1: {} - - terser-webpack-plugin@5.3.10(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.31.3 - webpack: 5.93.0(@swc/core@1.7.3) - optionalDependencies: - '@swc/core': 1.7.3 - - terser@5.31.3: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 - commander: 2.20.3 - source-map-support: 0.5.21 - - thingies@1.21.0(tslib@2.6.3): - dependencies: - tslib: 2.6.3 - - tree-dump@1.0.2(tslib@2.6.3): - dependencies: - tslib: 2.6.3 - - ts-node@10.9.2(@swc/core@1.7.3)(@types/node@20.14.12)(typescript@5.5.4): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.12 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.7.3 - - tslib@2.6.3: {} - - typescript@5.5.4: {} - - undici-types@5.26.5: {} - - unionfs@4.5.4: - dependencies: - fs-monkey: 1.0.6 - - update-browserslist-db@1.1.0(browserslist@4.23.2): - dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - uuid@9.0.1: {} - - v8-compile-cache-lib@3.0.1: {} - - watchpack@2.4.1: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - webpack-sources@3.2.3: {} - - webpack@5.93.0(@swc/core@1.7.3): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.3)(webpack@5.93.0(@swc/core@1.7.3)) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - which@4.0.0: - dependencies: - isexe: 3.1.1 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - y18n@5.0.8: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yn@3.1.1: {} diff --git a/examples/wip-local-streaming/.gitignore copy b/examples/wip-local-streaming/.gitignore copy deleted file mode 100644 index bd87338..0000000 --- a/examples/wip-local-streaming/.gitignore copy +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -dist -.env -.npmrc \ No newline at end of file diff --git a/examples/wip-local-streaming/trigger/package.json b/examples/wip-local-streaming/trigger/package.json deleted file mode 100644 index 22326b0..0000000 --- a/examples/wip-local-streaming/trigger/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "trigger", - "version": "0.0.1", - "description": "", - "main": "index.js", - "scripts": { - "trigger": "ts-node src/triggerWorkflow.ts", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "dependencies": { - "restack-sdk-ts-local": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist" - }, - "devDependencies": { - "ts-node": "^10.9.2" - }, - "keywords": [], - "author": "", - "license": "ISC" -} diff --git a/examples/wip-local-streaming/trigger/pnpm-lock.yaml b/examples/wip-local-streaming/trigger/pnpm-lock.yaml deleted file mode 100644 index 3750479..0000000 --- a/examples/wip-local-streaming/trigger/pnpm-lock.yaml +++ /dev/null @@ -1,166 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - restack-sdk-ts-local: - specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../../../local-operator/sdk/typescript/dist - devDependencies: - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.12)(typescript@5.5.4) - -packages: - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/node@20.14.12': - resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} - - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - 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 - - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - -snapshots: - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/node@20.14.12': - dependencies: - undici-types: 5.26.5 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.1 - - acorn@8.12.1: {} - - arg@4.1.3: {} - - create-require@1.1.1: {} - - diff@4.0.2: {} - - make-error@1.3.6: {} - - ts-node@10.9.2(@types/node@20.14.12)(typescript@5.5.4): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.12 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - typescript@5.5.4: {} - - undici-types@5.26.5: {} - - v8-compile-cache-lib@3.0.1: {} - - yn@3.1.1: {} diff --git a/examples/wip-local-streaming/backend/.env.example b/examples/work-in-progress/local-streaming/.env.example similarity index 100% rename from examples/wip-local-streaming/backend/.env.example rename to examples/work-in-progress/local-streaming/.env.example diff --git a/examples/wip-local-streaming/.gitignore b/examples/work-in-progress/local-streaming/.gitignore similarity index 100% rename from examples/wip-local-streaming/.gitignore rename to examples/work-in-progress/local-streaming/.gitignore diff --git a/examples/wip-local-streaming/backend/package.json b/examples/work-in-progress/local-streaming/package.json similarity index 93% rename from examples/wip-local-streaming/backend/package.json rename to examples/work-in-progress/local-streaming/package.json index ee5a1fd..e6ec775 100644 --- a/examples/wip-local-streaming/backend/package.json +++ b/examples/work-in-progress/local-streaming/package.json @@ -6,6 +6,7 @@ "scripts": { "start.watch": "nodemon src/index.ts", "dev": "pnpm start.watch", + "workflow": "ts-node ./scheduleWorkflow.ts", "test": "echo \"Error: no test specified\" && exit 1" }, "nodemonConfig": { diff --git a/examples/wip-local-streaming/backend/pnpm-lock.yaml b/examples/work-in-progress/local-streaming/pnpm-lock.yaml similarity index 99% rename from examples/wip-local-streaming/backend/pnpm-lock.yaml rename to examples/work-in-progress/local-streaming/pnpm-lock.yaml index b0477e0..24e3642 100644 --- a/examples/wip-local-streaming/backend/pnpm-lock.yaml +++ b/examples/work-in-progress/local-streaming/pnpm-lock.yaml @@ -22,7 +22,7 @@ importers: version: 4.53.2 restack-sdk-ts-local: specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../../../local-operator/sdk/typescript/dist + version: link:../../../local-operator/sdk/typescript/dist devDependencies: '@types/node': specifier: ^20.11.1 diff --git a/examples/wip-local-streaming/readme.md b/examples/work-in-progress/local-streaming/readme.md similarity index 100% rename from examples/wip-local-streaming/readme.md rename to examples/work-in-progress/local-streaming/readme.md diff --git a/examples/wip-local-streaming/trigger/src/triggerWorkflow.ts b/examples/work-in-progress/local-streaming/scheduleWorkflow.ts similarity index 70% rename from examples/wip-local-streaming/trigger/src/triggerWorkflow.ts rename to examples/work-in-progress/local-streaming/scheduleWorkflow.ts index c41eadc..fb0e5ce 100644 --- a/examples/wip-local-streaming/trigger/src/triggerWorkflow.ts +++ b/examples/work-in-progress/local-streaming/scheduleWorkflow.ts @@ -1,6 +1,6 @@ import Restack from "restack-sdk-ts-local"; -async function triggerExampleWorkflow() { +async function scheduleWorkflow() { try { const restack = new Restack(); @@ -8,7 +8,7 @@ async function triggerExampleWorkflow() { console.log("Stream update:", result); }; - const handle = await restack.start({ + const handle = await restack.schedule({ workflowName: "stream", workflowId: `${Date.now()}-streamWorkflow`, input: [ @@ -19,7 +19,7 @@ async function triggerExampleWorkflow() { ], }); - console.log("Workflow started successfully:", handle.firstExecutionRunId); + console.log("Workflow scheduled successfully:", handle.firstExecutionRunId); handle.result().then((result) => { console.log("Workflow result:", result); @@ -29,10 +29,9 @@ async function triggerExampleWorkflow() { process.exit(0); // Exit the process successfully } catch (error) { - console.error("Error starting workflow:", error); + console.error("Error scheduling workflow:", error); process.exit(1); // Exit the process with an error code } } -// Trigger the workflow -triggerExampleWorkflow(); +scheduleWorkflow(); diff --git a/examples/wip-local-streaming/backend/src/functions/index.ts b/examples/work-in-progress/local-streaming/src/functions/index.ts similarity index 100% rename from examples/wip-local-streaming/backend/src/functions/index.ts rename to examples/work-in-progress/local-streaming/src/functions/index.ts diff --git a/examples/wip-local-streaming/backend/src/tools/openai/client.ts b/examples/work-in-progress/local-streaming/src/functions/openai/client.ts similarity index 100% rename from examples/wip-local-streaming/backend/src/tools/openai/client.ts rename to examples/work-in-progress/local-streaming/src/functions/openai/client.ts diff --git a/examples/wip-local-streaming/backend/src/functions/stream.ts b/examples/work-in-progress/local-streaming/src/functions/stream.ts similarity index 93% rename from examples/wip-local-streaming/backend/src/functions/stream.ts rename to examples/work-in-progress/local-streaming/src/functions/stream.ts index 2bd937e..ad5990a 100644 --- a/examples/wip-local-streaming/backend/src/functions/stream.ts +++ b/examples/work-in-progress/local-streaming/src/functions/stream.ts @@ -1,5 +1,5 @@ import { FunctionFailure, log } from "restack-sdk-ts-local/function"; -import { openaiClient } from "../tools/openai/client"; +import { openaiClient } from "./openai/client"; export async function stream({ name, diff --git a/examples/wip-local-streaming/backend/src/index.ts b/examples/work-in-progress/local-streaming/src/run.ts similarity index 83% rename from examples/wip-local-streaming/backend/src/index.ts rename to examples/work-in-progress/local-streaming/src/run.ts index 887a336..908cbb4 100644 --- a/examples/wip-local-streaming/backend/src/index.ts +++ b/examples/work-in-progress/local-streaming/src/run.ts @@ -11,16 +11,14 @@ async function main() { } try { - // start all your tools - const restack = new Restack(); await Promise.all([ - restack.tool({ + restack.pod({ name: "restack", workflowsPath, }), - restack.tool({ + restack.pod({ name: "openai", functions: { stream }, streaming: true, @@ -31,9 +29,9 @@ async function main() { }), ]); - console.log("Tools started successfully."); + console.log("Started successfully."); } catch (e) { - console.error("Failed to start tools:", e); + console.error("Failed to start:", e); } } diff --git a/examples/wip-local-streaming/backend/src/workflows/index.ts b/examples/work-in-progress/local-streaming/src/workflows/index.ts similarity index 100% rename from examples/wip-local-streaming/backend/src/workflows/index.ts rename to examples/work-in-progress/local-streaming/src/workflows/index.ts diff --git a/examples/wip-local-streaming/backend/src/workflows/stream.ts b/examples/work-in-progress/local-streaming/src/workflows/stream.ts similarity index 93% rename from examples/wip-local-streaming/backend/src/workflows/stream.ts rename to examples/work-in-progress/local-streaming/src/workflows/stream.ts index 8cd0a64..a75f4c2 100644 --- a/examples/wip-local-streaming/backend/src/workflows/stream.ts +++ b/examples/work-in-progress/local-streaming/src/workflows/stream.ts @@ -8,7 +8,7 @@ interface Input { export async function stream({ name, streamUpdate }: Input) { await step({ - tool: `openai`, + podName: `openai`, scheduleToCloseTimeout: "1 minute", }).stream({ name, streamUpdate }); } diff --git a/readme.md b/readme.md index bd31fa8..0afeb56 100644 --- a/readme.md +++ b/readme.md @@ -1,40 +1,9 @@ -# Requirements - -- Docker Desktop - -- Node 20 or higher - -brew install nvm -nvm use 20 - -- pnpm - -brew install pnpm - -# Run Restack backend (will be integrated in Restack Desktop ) - -docker compose up -d --build --pull always - -(will force repulling and rebuilding) - # Run Restack Desktop Open restack-desktop.dmg and launch app -# Install dependencies - -in both folders: -/examples/hello/backend -/examples/hello/trigger - -pnpm i +# Alternative run Restack in Docker -# Launch backend - -in /examples/hello/backend -pnpm dev - -# Trigger workflow +docker compose up -d --build --pull always -in /examples/hello/trigger -pnpm trigger +(will force repulling and rebuilding) diff --git a/restack-desktop.dmg.REMOVED.git-id b/restack-desktop.dmg.REMOVED.git-id deleted file mode 100644 index 43ad2dd..0000000 --- a/restack-desktop.dmg.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -3c4df8862a49183ede06a7bcf13a689b1461f37d \ No newline at end of file diff --git a/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id b/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id new file mode 100644 index 0000000..9353bb9 --- /dev/null +++ b/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id @@ -0,0 +1 @@ +f37454253a6728afd00cef071135085596d014d0 \ No newline at end of file From 5910ff5dfa9eeca861d0513b5ccebdd66ea81a38 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 29 Jul 2024 20:18:18 +0200 Subject: [PATCH 006/122] readme Former-commit-id: e59766eb1282d1ee6de7455a76121a6340742aa8 Former-commit-id: 6ebfa1bf7db1adf59c5b97022db3feb5440a22d1 --- readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/readme.md b/readme.md index 0afeb56..80abe13 100644 --- a/readme.md +++ b/readme.md @@ -2,6 +2,8 @@ Open restack-desktop.dmg and launch app +Restack Engine will run locally in the application and will + # Alternative run Restack in Docker docker compose up -d --build --pull always From dbe511a5596792a41ceec8519739ef348cd1dc8b Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 29 Jul 2024 20:51:02 +0200 Subject: [PATCH 007/122] intel Former-commit-id: aa1c8d74b3e0f941bfa758f78ca7e91ee2b0ed3d Former-commit-id: 8ec16b9256a511aa7ab3caa3291c71bf33fcc6aa --- examples/hello/src/functions/goodbye.ts | 1 - examples/work-in-progress/local-streaming/pnpm-lock.yaml | 2 +- restack-desktop_0.0.1_x64.dmg.REMOVED.git-id | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 restack-desktop_0.0.1_x64.dmg.REMOVED.git-id diff --git a/examples/hello/src/functions/goodbye.ts b/examples/hello/src/functions/goodbye.ts index 02c7419..acf1d86 100644 --- a/examples/hello/src/functions/goodbye.ts +++ b/examples/hello/src/functions/goodbye.ts @@ -6,7 +6,6 @@ interface Output { message: string; } -// Original activity function export async function goodbye(input: Input): Promise { return { message: `Goodbye, ${input.name}!` }; } diff --git a/examples/work-in-progress/local-streaming/pnpm-lock.yaml b/examples/work-in-progress/local-streaming/pnpm-lock.yaml index 24e3642..b0477e0 100644 --- a/examples/work-in-progress/local-streaming/pnpm-lock.yaml +++ b/examples/work-in-progress/local-streaming/pnpm-lock.yaml @@ -22,7 +22,7 @@ importers: version: 4.53.2 restack-sdk-ts-local: specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../../local-operator/sdk/typescript/dist + version: link:../../../../local-operator/sdk/typescript/dist devDependencies: '@types/node': specifier: ^20.11.1 diff --git a/restack-desktop_0.0.1_x64.dmg.REMOVED.git-id b/restack-desktop_0.0.1_x64.dmg.REMOVED.git-id new file mode 100644 index 0000000..9dc6fa2 --- /dev/null +++ b/restack-desktop_0.0.1_x64.dmg.REMOVED.git-id @@ -0,0 +1 @@ +61f7c19690c5e7c4938cf0bed4fd120d06b919cd \ No newline at end of file From ff3c9f614fd0804365d8abadd844affc133d5840 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 29 Jul 2024 21:23:05 +0200 Subject: [PATCH 008/122] run Former-commit-id: 9dc9a5874f104765c7c854a344aac85b4e2816fe Former-commit-id: bcf9d4c99e2e0ab4d1be08f0acb786ed27aa287f --- examples/hello/package.json | 2 +- examples/work-in-progress/local-streaming/package.json | 2 +- readme.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/hello/package.json b/examples/hello/package.json index 54bb6a0..054feac 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start.watch": "nodemon src/index.ts", + "start.watch": "nodemon src/run.ts", "dev": "pnpm start.watch", "workflow": "ts-node ./scheduleWorkflow.ts", "test": "echo \"Error: no test specified\" && exit 1" diff --git a/examples/work-in-progress/local-streaming/package.json b/examples/work-in-progress/local-streaming/package.json index e6ec775..b646abd 100644 --- a/examples/work-in-progress/local-streaming/package.json +++ b/examples/work-in-progress/local-streaming/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start.watch": "nodemon src/index.ts", + "start.watch": "nodemon ./src/run.ts", "dev": "pnpm start.watch", "workflow": "ts-node ./scheduleWorkflow.ts", "test": "echo \"Error: no test specified\" && exit 1" diff --git a/readme.md b/readme.md index 80abe13..549f735 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ Open restack-desktop.dmg and launch app -Restack Engine will run locally in the application and will +Restack Engine will run locally in the application # Alternative run Restack in Docker From 3474dc483dd9883c22794ea5bc09450ba2fb78d7 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 29 Jul 2024 23:46:24 +0200 Subject: [PATCH 009/122] bump sdk and revert scheduleToClose Former-commit-id: 59dcb7a5b628dcf6aa05a7ace30c2823a23c1cf0 Former-commit-id: 01ef0b24af7d89f649e1c4c019c9ba1bae57568a --- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 10 +++++----- examples/hello/src/workflows/example.ts | 2 ++ readme.md | 2 ++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/examples/hello/package.json b/examples/hello/package.json index 054feac..90bb8af 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,7 +23,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "0.0.5", + "@restackio/restack-sdk-ts": "0.0.7", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" }, diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 9215e25..701929e 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/restack-sdk-ts': - specifier: 0.0.5 - version: 0.0.5 + specifier: 0.0.7 + version: 0.0.7 '@temporalio/worker': specifier: ^1.10.3 version: 1.10.3 @@ -130,8 +130,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.5': - resolution: {integrity: sha512-LtPErcDScntBH8mJz+opGIjprS0s8oY+RjqySgblOSCXRDHx2QQnMx5ZIEygUXopgyUeCy553StRmjAOYV3fuA==} + '@restackio/restack-sdk-ts@0.0.7': + resolution: {integrity: sha512-zsp4s94pwsiZvX1VRmWq2F+WO03g17K3kxLp2m8b2EECi5DDB1rXqYqosR7K35n2BjlfDvpj64pRQ+bSyKIs/g==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1007,7 +1007,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.5': + '@restackio/restack-sdk-ts@0.0.7': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/hello/src/workflows/example.ts b/examples/hello/src/workflows/example.ts index 728b339..b2fbe0a 100644 --- a/examples/hello/src/workflows/example.ts +++ b/examples/hello/src/workflows/example.ts @@ -19,6 +19,7 @@ export async function example({ name }: Input): Promise { usage: greetUsage, } = await step({ podName: `openai`, + scheduleToCloseTimeout: "1 minute", }).greet({ name }); log.info("greeted", { greetMessage }); @@ -27,6 +28,7 @@ export async function example({ name }: Input): Promise { const { message: goodbyeMessage } = await step({ podName: `restack`, + scheduleToCloseTimeout: "1 minute", }).goodbye({ name }); log.info("goodbye", { goodbyeMessage }); diff --git a/readme.md b/readme.md index 549f735..45aabfc 100644 --- a/readme.md +++ b/readme.md @@ -9,3 +9,5 @@ Restack Engine will run locally in the application docker compose up -d --build --pull always (will force repulling and rebuilding) + +Restack Desktop UI will be available at http://localhost:5233 From 9cae71c70a4f74026f980d3e45269f6d9bcb4773 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 30 Jul 2024 00:26:22 +0200 Subject: [PATCH 010/122] diagram Former-commit-id: 1e17df419511219f964fbb33a77a54e27948b2cd Former-commit-id: 356b3bedf6bc953e96b938ee917f866d6cd55722 --- examples/hello/readme.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/examples/hello/readme.md b/examples/hello/readme.md index d1aeaa1..9eb1f68 100644 --- a/examples/hello/readme.md +++ b/examples/hello/readme.md @@ -27,3 +27,18 @@ In another shell: pnpm workflow Will schedule to start example workflow immediately. + +# Architecture + +```mermaid +flowchart TD + C[fa:fa-bolt scheduleWorkflow client] -->|registers workflow with schedule| E{Restack Engine} + E --> |queries results| C + E -->|pulls queue with input| P1[fa:fa-ship restack pod] + E -->|orchestrates with rate limit| P2[fa:fa-ship openai pod] + P1 -->|runs| W[fa:fa-th-list example workflow] + P1 -->|runs| Go[fa:fa-code goodbye function] + P2 -->|runs| Gr[fa:fa-code greet function] + P1 -->|sends status + output | E + P2 -->|sends status output | E +``` From ad479eaea9a754b96c11458faddc0b85d03ba288 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 30 Jul 2024 00:28:24 +0200 Subject: [PATCH 011/122] line Former-commit-id: bb1e577c1acb5310f060ffc2dc5b114407774538 Former-commit-id: ed129b7aea8e91dd088c6c23be0e5e4cd5d42248 --- examples/hello/readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/hello/readme.md b/examples/hello/readme.md index 9eb1f68..8807dfa 100644 --- a/examples/hello/readme.md +++ b/examples/hello/readme.md @@ -16,6 +16,7 @@ Where all your code is defined, including workflow steps. add OPENAI_API_KEY in .env pnpm i + pnpm dev Your code will be running in pods and syncing with Restack engine to execute workflows or functions. From 396febf92929d10cf3a264aada76f616f7145ff5 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sat, 3 Aug 2024 03:13:57 +0200 Subject: [PATCH 012/122] wip Former-commit-id: 928240634e851ed19f6ebacd3fb2ab220b9a9911 Former-commit-id: 8cfef2c973a62195ecfa028b7f67475f12a12f8a --- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 10 +- examples/hello/src/functions/openai/chat.ts | 2 +- examples/hello/src/workflows/example.ts | 2 +- examples/twilio/.env.example | 18 + examples/twilio/callWorkflow.ts | 21 + examples/twilio/package.json | 41 + examples/twilio/pnpm-lock.yaml | 2837 +++++++++++++++++ examples/twilio/src/functions/agent/index.ts | 1 + .../twilio/src/functions/agent/voiceAgent.ts | 222 ++ .../twilio/src/functions/deepgram/index.ts | 2 + .../src/functions/deepgram/speechToText.ts | 103 + .../src/functions/deepgram/sttToWebsocket.ts | 70 + .../src/functions/deepgram/textToSpeech.ts | 68 + .../src/functions/deepgram/ttsToWebsocket.ts | 63 + examples/twilio/src/functions/index.ts | 5 + examples/twilio/src/functions/openai/chat.ts | 148 + examples/twilio/src/functions/openai/index.ts | 1 + .../twilio/src/functions/openai/prompt.ts | 25 + .../src/functions/openai/toWebsocket.ts | 56 + .../functions/openai/tools/checkInventory.ts | 16 + .../src/functions/openai/tools/checkPrice.ts | 15 + .../openai/tools/function-manifest.ts | 102 + .../src/functions/openai/tools/placeOrder.ts | 28 + examples/twilio/src/functions/twilio/index.ts | 1 + .../twilio/src/functions/twilio/twilioCall.ts | 36 + .../twilio/src/functions/websocket/connect.ts | 17 + .../twilio/src/functions/websocket/emit.ts | 22 + .../twilio/src/functions/websocket/index.ts | 1 + .../src/functions/websocket/streamAudio.ts | 68 + examples/twilio/src/server.ts | 112 + examples/twilio/src/worker.ts | 50 + examples/twilio/src/workflows/index.ts | 2 + examples/twilio/src/workflows/twilioAgent.ts | 107 + examples/twilio/src/workflows/twilioCall.ts | 23 + examples/twilio/tsconfig.json | 14 + 36 files changed, 4303 insertions(+), 8 deletions(-) create mode 100644 examples/twilio/.env.example create mode 100644 examples/twilio/callWorkflow.ts create mode 100644 examples/twilio/package.json create mode 100644 examples/twilio/pnpm-lock.yaml create mode 100644 examples/twilio/src/functions/agent/index.ts create mode 100644 examples/twilio/src/functions/agent/voiceAgent.ts create mode 100644 examples/twilio/src/functions/deepgram/index.ts create mode 100644 examples/twilio/src/functions/deepgram/speechToText.ts create mode 100644 examples/twilio/src/functions/deepgram/sttToWebsocket.ts create mode 100644 examples/twilio/src/functions/deepgram/textToSpeech.ts create mode 100644 examples/twilio/src/functions/deepgram/ttsToWebsocket.ts create mode 100644 examples/twilio/src/functions/index.ts create mode 100644 examples/twilio/src/functions/openai/chat.ts create mode 100644 examples/twilio/src/functions/openai/index.ts create mode 100644 examples/twilio/src/functions/openai/prompt.ts create mode 100644 examples/twilio/src/functions/openai/toWebsocket.ts create mode 100644 examples/twilio/src/functions/openai/tools/checkInventory.ts create mode 100644 examples/twilio/src/functions/openai/tools/checkPrice.ts create mode 100644 examples/twilio/src/functions/openai/tools/function-manifest.ts create mode 100644 examples/twilio/src/functions/openai/tools/placeOrder.ts create mode 100644 examples/twilio/src/functions/twilio/index.ts create mode 100644 examples/twilio/src/functions/twilio/twilioCall.ts create mode 100644 examples/twilio/src/functions/websocket/connect.ts create mode 100644 examples/twilio/src/functions/websocket/emit.ts create mode 100644 examples/twilio/src/functions/websocket/index.ts create mode 100644 examples/twilio/src/functions/websocket/streamAudio.ts create mode 100644 examples/twilio/src/server.ts create mode 100644 examples/twilio/src/worker.ts create mode 100644 examples/twilio/src/workflows/index.ts create mode 100644 examples/twilio/src/workflows/twilioAgent.ts create mode 100644 examples/twilio/src/workflows/twilioCall.ts create mode 100644 examples/twilio/tsconfig.json diff --git a/examples/hello/package.json b/examples/hello/package.json index 90bb8af..ec18779 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,7 +23,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "0.0.7", + "@restackio/restack-sdk-ts": "0.0.23", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" }, diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 701929e..21d2248 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/restack-sdk-ts': - specifier: 0.0.7 - version: 0.0.7 + specifier: 0.0.23 + version: 0.0.23 '@temporalio/worker': specifier: ^1.10.3 version: 1.10.3 @@ -130,8 +130,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.7': - resolution: {integrity: sha512-zsp4s94pwsiZvX1VRmWq2F+WO03g17K3kxLp2m8b2EECi5DDB1rXqYqosR7K35n2BjlfDvpj64pRQ+bSyKIs/g==} + '@restackio/restack-sdk-ts@0.0.23': + resolution: {integrity: sha512-7blKzeavHhaeA+3orG42XfhkwOV72dShqJMqaYsZPz4B51OVcoUParRy+HUceWw9CdHBib3sLSoQtwDKK32OkQ==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1007,7 +1007,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.7': + '@restackio/restack-sdk-ts@0.0.23': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/hello/src/functions/openai/chat.ts b/examples/hello/src/functions/openai/chat.ts index 08a0e94..1c87c94 100644 --- a/examples/hello/src/functions/openai/chat.ts +++ b/examples/hello/src/functions/openai/chat.ts @@ -1,5 +1,5 @@ import { ZodObject } from "zod"; -import { FunctionFailure, log } from "@restackio/restack-sdk-ts/dist/function"; +import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; import { zodPrompt } from "./zodPrompt"; import { openaiClient } from "./client"; import { openaiCost } from "./cost"; diff --git a/examples/hello/src/workflows/example.ts b/examples/hello/src/workflows/example.ts index b2fbe0a..e3113d7 100644 --- a/examples/hello/src/workflows/example.ts +++ b/examples/hello/src/workflows/example.ts @@ -1,4 +1,4 @@ -import { log, step } from "@restackio/restack-sdk-ts/dist/workflow"; +import { log, step } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../functions"; import { UsageOutput } from "../functions/openai/chat"; diff --git a/examples/twilio/.env.example b/examples/twilio/.env.example new file mode 100644 index 0000000..45335f7 --- /dev/null +++ b/examples/twilio/.env.example @@ -0,0 +1,18 @@ + +TWILIO_ACCOUNT_SID= +TWILIO_AUTH_TOKEN= +FROM_NUMBER= +APP_NUMBER= +YOUR_NUMBER= + +# Your ngrok or server URL +SERVER=5756-5-61-150-161.ngrok-free.app + +# Service API Keys +OPENAI_API_KEY= +DEEPGRAM_API_KEY= +# XI_API_KEY= +# XI_MODEL_ID=eleven_turbo_v2_5 + +# Deepgram voice model, see more options here: https://developers.deepgram.com/docs/tts-models +VOICE_MODEL=aura-asteria-en \ No newline at end of file diff --git a/examples/twilio/callWorkflow.ts b/examples/twilio/callWorkflow.ts new file mode 100644 index 0000000..170a397 --- /dev/null +++ b/examples/twilio/callWorkflow.ts @@ -0,0 +1,21 @@ +import Restack from "@restackio/restack-sdk-ts"; + +async function scheduleWorkflow() { + try { + const restack = new Restack(); + + const workflowRunId = await restack.schedule({ + workflowName: "twilioCallWorkflow", + workflowId: `${Date.now()}-twilioCallWorkflow`, + }); + + console.log("Workflow scheduled successfully:", workflowRunId); + + process.exit(0); // Exit the process successfully + } catch (error) { + console.error("Error scheduling workflow:", error); + process.exit(1); // Exit the process with an error code + } +} + +scheduleWorkflow(); diff --git a/examples/twilio/package.json b/examples/twilio/package.json new file mode 100644 index 0000000..5b84bcb --- /dev/null +++ b/examples/twilio/package.json @@ -0,0 +1,41 @@ +{ + "name": "restack-twilio", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", + "dev-worker": "ts-node-dev --respawn --transpile-only src/worker.ts", + "call": "ts-node ./callWorkflow.ts", + "ngrok": "ngrok http 3000" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@deepgram/sdk": "^3.5.0", + "@restackio/restack-sdk-ts": "^0.0.23", + "@temporalio/activity": "^1.10.3", + "@temporalio/workflow": "^1.10.3", + "axios": "^1.7.3", + "dotenv": "^16.4.5", + "express": "^4.19.2", + "openai": "^4.54.0", + "twilio": "^5.2.2", + "typescript": "^5.5.4", + "uuid": "^10.0.0", + "ws": "^8.18.0" + }, + "devDependencies": { + "@types/express": "^4.17.21", + "@types/node": "^22.1.0", + "@types/uuid": "^10.0.0", + "@types/ws": "^8.5.12", + "nodemon": "^3.1.4", + "ts-node": "^10.9.2", + "ts-node-dev": "^2.0.0" + }, + "optionalDependencies": { + "bufferutil": "^4.0.8" + } +} diff --git a/examples/twilio/pnpm-lock.yaml b/examples/twilio/pnpm-lock.yaml new file mode 100644 index 0000000..4c1e4c1 --- /dev/null +++ b/examples/twilio/pnpm-lock.yaml @@ -0,0 +1,2837 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@deepgram/sdk': + specifier: ^3.5.0 + version: 3.5.0(bufferutil@4.0.8) + '@restackio/restack-sdk-ts': + specifier: ^0.0.23 + version: 0.0.23 + '@temporalio/activity': + specifier: ^1.10.3 + version: 1.10.3 + '@temporalio/workflow': + specifier: ^1.10.3 + version: 1.10.3 + axios: + specifier: ^1.7.3 + version: 1.7.3 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + express: + specifier: ^4.19.2 + version: 4.19.2 + openai: + specifier: ^4.54.0 + version: 4.54.0 + twilio: + specifier: ^5.2.2 + version: 5.2.2 + typescript: + specifier: ^5.5.4 + version: 5.5.4 + uuid: + specifier: ^10.0.0 + version: 10.0.0 + ws: + specifier: ^8.18.0 + version: 8.18.0(bufferutil@4.0.8) + optionalDependencies: + bufferutil: + specifier: ^4.0.8 + version: 4.0.8 + devDependencies: + '@types/express': + specifier: ^4.17.21 + version: 4.17.21 + '@types/node': + specifier: ^22.1.0 + version: 22.1.0 + '@types/uuid': + specifier: ^10.0.0 + version: 10.0.0 + '@types/ws': + specifier: ^8.5.12 + version: 8.5.12 + nodemon: + specifier: ^3.1.4 + version: 3.1.4 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4) + ts-node-dev: + specifier: ^2.0.0 + version: 2.0.0(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4) + +packages: + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@deepgram/captions@1.2.0': + resolution: {integrity: sha512-8B1C/oTxTxyHlSFubAhNRgCbQ2SQ5wwvtlByn8sDYZvdDtdn/VE2yEPZ4BvUnrKWmsbTQY6/ooLV+9Ka2qmDSQ==} + engines: {node: '>=18.0.0'} + + '@deepgram/sdk@3.5.0': + resolution: {integrity: sha512-RD5JKxoBTJrj12BnAnAcDx6yFEs6uRU0DhwzCJeL4Meo9Sac4lb6MbEuZ04/VvtFCvh840EzuLrevFxXxcUNuQ==} + engines: {node: '>=18.0.0'} + + '@grpc/grpc-js@1.11.1': + resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.0.4': + resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.3.0': + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@restackio/restack-sdk-ts@0.0.23': + resolution: {integrity: sha512-7blKzeavHhaeA+3orG42XfhkwOV72dShqJMqaYsZPz4B51OVcoUParRy+HUceWw9CdHBib3sLSoQtwDKK32OkQ==} + engines: {node: '>=20'} + + '@swc/core-darwin-arm64@1.7.5': + resolution: {integrity: sha512-Y+bvW9C4/u26DskMbtQKT4FU6QQenaDYkKDi028vDIKAa7v1NZqYG9wmhD/Ih7n5EUy2uJ5I5EWD7WaoLzT6PA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.5': + resolution: {integrity: sha512-AuIbDlcaAhYS6mtF4UqvXgrLeAfXZbVf4pgtgShPbutF80VbCQiIB55zOFz5aZdCpsBVuCWcBq0zLneK+VQKkQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.5': + resolution: {integrity: sha512-99uBPHITRqgGwCXAjHY94VaV3Z40+D2NQNgR1t6xQpO8ZnevI6YSzX6GVZfBnV7+7oisiGkrVEwfIRRa+1s8FA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.5': + resolution: {integrity: sha512-xHL3Erlz+OGGCG4h6K2HWiR56H5UYMuBWWPbbUufi2bJpfhuKQy/X3vWffwL8ZVfJmCUwr4/G91GHcm32uYzRg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.5': + resolution: {integrity: sha512-5ArGdqvFMszNHdi4a67vopeYq8d1K+FuTWDrblHrAvZFhAyv+GQz2PnKqYOgl0sWmQxsNPfNwBFtxACpUO3Jzg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.5': + resolution: {integrity: sha512-mSVVV/PFzCGtI1nVQQyx34NwCMgSurF6ZX/me8pUAX054vsE/pSFL66xN+kQOe/1Z/LOd4UmXFkZ/EzOSnYcSg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.5': + resolution: {integrity: sha512-09hY3ZKMUORXVunESKS9yuP78+gQbr759GKHo8wyCdtAx8lCZdEjfI5NtC7/1VqwfeE32/U6u+5MBTVhZTt0AA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.5': + resolution: {integrity: sha512-B/UDtPI3RlYRFW42xQxOpl6kI/9LtkD7No+XeRIKQTPe15EP2o+rUlv7CmKljVBXgJ8KmaQbZlaEh1YP+QZEEQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.5': + resolution: {integrity: sha512-BgLesVGmIY6Nub/sURqtSRvWYcbCE/ACfuZB3bZHVKD6nsZJJuOpdB8oC41fZPyc8yZUzL3XTBIifkT2RP+w9w==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.5': + resolution: {integrity: sha512-CnF557tidLfQRPczcqDJ8x+LBQYsFa0Ra6w2+YU1iFUboaI2jJVuqt3vEChu80y6JiRIBAaaV2L/GawDJh1dIQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.5': + resolution: {integrity: sha512-qKK0/Ta4qvxs/ok3XyYVPT7OBenwRn1sSINf1cKQTBHPqr7U/uB4k2GTl6JgEs8H4PiJrMTNWfMLTucIoVSfAg==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + + '@temporalio/activity@1.10.3': + resolution: {integrity: sha512-2wGEnH3lzfRkAPsM29Uih4jaXPjsRDCsXdSFJqmHz2fxcfodcjSjgTAJERFKRVOb9JfYmzsITRIrkKAfs3kvxA==} + + '@temporalio/client@1.10.3': + resolution: {integrity: sha512-0xGYlURFoHrWByIJB3vNCaY7p9lnUkvrlA4uVAG92AwI0z/kcXdkUwn+VTOBBJi83iX6NZ0QS47HA6sCr00OPw==} + + '@temporalio/common@1.10.3': + resolution: {integrity: sha512-0LF4UZQomMy+K3dGR0PGkBAqBByavjldeUKyMONtDrVqtq4sO2+2NtLW9mvmXGCH15jsabye1pQZdZxlTGP/CQ==} + + '@temporalio/core-bridge@1.10.3': + resolution: {integrity: sha512-TJV8Th8h0pv6gwwEqcTUIbOZVqfKj/6qWgNBnZuHi3BYd1WKzvXGGg0r1gorwlfapaC3Mms/Rqed9Xlnl9xjDQ==} + + '@temporalio/proto@1.10.3': + resolution: {integrity: sha512-ugp04SpQFNmOa0+/kpg2vLfWMBPD2UW4s4XRaN23v9RREZ0HqV+DB+ZTT+03F9jeZlIFB0hxbF1Xd65tAF6fKg==} + + '@temporalio/worker@1.10.3': + resolution: {integrity: sha512-IGHSpp9usFcn1kuYs234xOP2xjBJVyEtjborV8ZEFi9Eu01s7BfrNrVZUMQjs6dRTOCvvvkiFhU3MNuyk2qkWA==} + engines: {node: '>= 16.0.0'} + + '@temporalio/workflow@1.10.3': + resolution: {integrity: sha512-XnP1Srb4r1dhl4g5U/KDTSSJ9zixIeqBd5lfC0wol257ItjfJPJgXAYUNg0YqPg4HyE77OlG7Qh6qhyAU80ubg==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.0': + resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/express-serve-static-core@4.19.5': + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@18.19.43': + resolution: {integrity: sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==} + + '@types/node@22.1.0': + resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==} + + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/strip-bom@3.0.0': + resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} + + '@types/strip-json-comments@0.0.30': + resolution: {integrity: sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.7.3: + resolution: {integrity: sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + caniuse-lite@1.0.30001646: + resolution: {integrity: sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==} + + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + hasBin: true + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + + dayjs@1.11.12: + resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + dynamic-dedupe@0.3.0: + resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} + + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.4: + resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + engines: {node: '>=10.0.0'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + + jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + + jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memfs@4.11.1: + resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} + engines: {node: '>= 4.0.0'} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + ms@3.0.0-canary.1: + resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} + engines: {node: '>=12.13'} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nodemon@3.1.4: + resolution: {integrity: sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==} + engines: {node: '>=10'} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + openai@4.54.0: + resolution: {integrity: sha512-e/12BdtTtj+tXs7iHm+Dm7H7WjEWnw7O52B2wSfCQ6lD5F6cvjzo7cANXy5TJ1Q3/qc8YRPT5wBTTFtP5sBp1g==} + hasBin: true + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.3.2: + resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} + engines: {node: '>=12.0.0'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + scmp@2.1.0: + resolution: {integrity: sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==} + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-loader@4.0.2: + resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.31.3: + resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} + engines: {node: '>=10'} + hasBin: true + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-node-dev@2.0.0: + resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==} + engines: {node: '>=0.8.0'} + hasBin: true + peerDependencies: + node-notifier: '*' + typescript: '*' + peerDependenciesMeta: + node-notifier: + optional: true + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 + + tsconfig@7.0.0: + resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + twilio@5.2.2: + resolution: {integrity: sha512-t2Nd8CvqAc0YxbJghKYQl1Vxc7e6SrWk4U28wwkarUohGcsUMLsGpYeGXKw1Va0KB9TGVZYCs8dcP4TdLJUN9Q==} + engines: {node: '>=14.0'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.13.0: + resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + + unionfs@4.5.4: + resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.93.0: + resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xmlbuilder@13.0.2: + resolution: {integrity: sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==} + engines: {node: '>=6.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + +snapshots: + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@deepgram/captions@1.2.0': + dependencies: + dayjs: 1.11.12 + + '@deepgram/sdk@3.5.0(bufferutil@4.0.8)': + dependencies: + '@deepgram/captions': 1.2.0 + cross-fetch: 3.1.8 + deepmerge: 4.3.1 + events: 3.3.0 + ws: 8.18.0(bufferutil@4.0.8) + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@grpc/grpc-js@1.11.1': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.3.2 + yargs: 17.7.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': + dependencies: + tslib: 2.6.3 + + '@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) + '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.6.3) + tslib: 2.6.3 + + '@jsonjoy.com/util@1.3.0(tslib@2.6.3)': + dependencies: + tslib: 2.6.3 + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@restackio/restack-sdk-ts@0.0.23': + dependencies: + '@temporalio/activity': 1.10.3 + '@temporalio/client': 1.10.3 + '@temporalio/worker': 1.10.3 + '@temporalio/workflow': 1.10.3 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@swc/core-darwin-arm64@1.7.5': + optional: true + + '@swc/core-darwin-x64@1.7.5': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.5': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.5': + optional: true + + '@swc/core-linux-arm64-musl@1.7.5': + optional: true + + '@swc/core-linux-x64-gnu@1.7.5': + optional: true + + '@swc/core-linux-x64-musl@1.7.5': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.5': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.5': + optional: true + + '@swc/core-win32-x64-msvc@1.7.5': + optional: true + + '@swc/core@1.7.5': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.5 + '@swc/core-darwin-x64': 1.7.5 + '@swc/core-linux-arm-gnueabihf': 1.7.5 + '@swc/core-linux-arm64-gnu': 1.7.5 + '@swc/core-linux-arm64-musl': 1.7.5 + '@swc/core-linux-x64-gnu': 1.7.5 + '@swc/core-linux-x64-musl': 1.7.5 + '@swc/core-win32-arm64-msvc': 1.7.5 + '@swc/core-win32-ia32-msvc': 1.7.5 + '@swc/core-win32-x64-msvc': 1.7.5 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.12': + dependencies: + '@swc/counter': 0.1.3 + + '@temporalio/activity@1.10.3': + dependencies: + '@temporalio/common': 1.10.3 + abort-controller: 3.0.0 + + '@temporalio/client@1.10.3': + dependencies: + '@grpc/grpc-js': 1.11.1 + '@temporalio/common': 1.10.3 + '@temporalio/proto': 1.10.3 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/common@1.10.3': + dependencies: + '@temporalio/proto': 1.10.3 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.10.3': + dependencies: + '@temporalio/common': 1.10.3 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/proto@1.10.3': + dependencies: + long: 5.2.3 + protobufjs: 7.3.2 + + '@temporalio/worker@1.10.3': + dependencies: + '@swc/core': 1.7.5 + '@temporalio/activity': 1.10.3 + '@temporalio/client': 1.10.3 + '@temporalio/common': 1.10.3 + '@temporalio/core-bridge': 1.10.3 + '@temporalio/proto': 1.10.3 + '@temporalio/workflow': 1.10.3 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.11.1 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.5)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)) + unionfs: 4.5.4 + webpack: 5.93.0(@swc/core@1.7.5) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/workflow@1.10.3': + dependencies: + '@temporalio/common': 1.10.3 + '@temporalio/proto': 1.10.3 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.1.0 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.1.0 + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.0 + '@types/estree': 1.0.5 + + '@types/eslint@9.6.0': + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.5': {} + + '@types/express-serve-static-core@4.19.5': + dependencies: + '@types/node': 22.1.0 + '@types/qs': 6.9.15 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@4.17.21': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.5 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 + + '@types/http-errors@2.0.4': {} + + '@types/json-schema@7.0.15': {} + + '@types/mime@1.3.5': {} + + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 22.1.0 + form-data: 4.0.0 + + '@types/node@18.19.43': + dependencies: + undici-types: 5.26.5 + + '@types/node@22.1.0': + dependencies: + undici-types: 6.13.0 + + '@types/qs@6.9.15': {} + + '@types/range-parser@1.2.7': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.1.0 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 22.1.0 + '@types/send': 0.17.4 + + '@types/strip-bom@3.0.0': {} + + '@types/strip-json-comments@0.0.30': {} + + '@types/uuid@10.0.0': {} + + '@types/ws@8.5.12': + dependencies: + '@types/node': 22.1.0 + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.6(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + arg@5.0.2: {} + + array-flatten@1.1.1: {} + + asynckit@0.4.0: {} + + axios@1.7.3: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + body-parser@1.20.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001646 + electron-to-chromium: 1.5.4 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + buffer-equal-constant-time@1.0.1: {} + + buffer-from@1.1.2: {} + + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.1 + optional: true + + bytes@3.1.2: {} + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + caniuse-lite@1.0.30001646: {} + + cargo-cp-artifact@0.1.9: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrome-trace-event@1.0.4: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + cookie-signature@1.0.6: {} + + cookie@0.6.0: {} + + create-require@1.1.1: {} + + cross-fetch@3.1.8: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + dayjs@1.11.12: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.3.6(supports-color@5.5.0): + dependencies: + ms: 2.1.2 + optionalDependencies: + supports-color: 5.5.0 + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + destroy@1.2.0: {} + + diff@4.0.2: {} + + dotenv@16.4.5: {} + + dynamic-dedupe@0.3.0: + dependencies: + xtend: 4.0.2 + + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.4: {} + + emoji-regex@8.0.0: {} + + encodeurl@1.0.2: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + + escalade@3.1.2: {} + + escape-html@1.0.3: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + etag@1.8.1: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + express@4.19.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.2 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.6.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.2.0: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + follow-redirects@1.15.6: {} + + form-data-encoder@1.7.2: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + + fs-monkey@1.0.6: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + heap-js@2.5.0: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.6(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + hyperdyperid@1.2.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore-by-default@1.0.1: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ipaddr.js@1.9.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.0: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isexe@3.1.1: {} + + jest-worker@27.5.1: + dependencies: + '@types/node': 22.1.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + jsonwebtoken@9.0.2: + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.6.3 + + jwa@1.4.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@3.2.2: + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + + loader-runner@4.3.0: {} + + lodash.camelcase@4.3.0: {} + + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.once@4.1.1: {} + + long@5.2.3: {} + + make-error@1.3.6: {} + + media-typer@0.3.0: {} + + memfs@4.11.1: + dependencies: + '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) + '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) + tree-dump: 1.0.2(tslib@2.6.3) + tslib: 2.6.3 + + merge-descriptors@1.0.1: {} + + merge-stream@2.0.0: {} + + methods@1.1.2: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimist@1.2.8: {} + + mkdirp@1.0.4: {} + + ms@2.0.0: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + ms@3.0.0-canary.1: {} + + negotiator@0.6.3: {} + + neo-async@2.6.2: {} + + node-domexception@1.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.1: + optional: true + + node-releases@2.0.18: {} + + nodemon@3.1.4: + dependencies: + chokidar: 3.6.0 + debug: 4.3.6(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 7.6.3 + simple-update-notifier: 2.0.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + + normalize-path@3.0.0: {} + + object-inspect@1.13.2: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + openai@4.54.0: + dependencies: + '@types/node': 18.19.43 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + parseurl@1.3.3: {} + + path-is-absolute@1.0.1: {} + + path-parse@1.0.7: {} + + path-to-regexp@0.1.7: {} + + picocolors@1.0.1: {} + + picomatch@2.3.1: {} + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.3.2 + + protobufjs@7.3.2: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.1.0 + long: 5.2.3 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-from-env@1.1.0: {} + + pstree.remy@1.1.8: {} + + punycode@2.3.1: {} + + qs@6.11.0: + dependencies: + side-channel: 1.0.6 + + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + require-directory@2.1.1: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.6.3 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + scmp@2.1.0: {} + + semver@7.6.3: {} + + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-static@1.15.0: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + setprototypeof@1.2.0: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + simple-update-notifier@2.0.0: + dependencies: + semver: 7.6.3 + + source-map-js@1.2.0: {} + + source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.5)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.0 + webpack: 5.93.0(@swc/core@1.7.5) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + statuses@2.0.1: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@3.0.0: {} + + strip-json-comments@2.0.1: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + swc-loader@0.2.6(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)): + dependencies: + '@swc/core': 1.7.5 + '@swc/counter': 0.1.3 + webpack: 5.93.0(@swc/core@1.7.5) + + tapable@2.2.1: {} + + terser-webpack-plugin@5.3.10(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.31.3 + webpack: 5.93.0(@swc/core@1.7.5) + optionalDependencies: + '@swc/core': 1.7.5 + + terser@5.31.3: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + thingies@1.21.0(tslib@2.6.3): + dependencies: + tslib: 2.6.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + touch@3.1.1: {} + + tr46@0.0.3: {} + + tree-dump@1.0.2(tslib@2.6.3): + dependencies: + tslib: 2.6.3 + + tree-kill@1.2.2: {} + + ts-node-dev@2.0.0(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4): + dependencies: + chokidar: 3.6.0 + dynamic-dedupe: 0.3.0 + minimist: 1.2.8 + mkdirp: 1.0.4 + resolve: 1.22.8 + rimraf: 2.7.1 + source-map-support: 0.5.21 + tree-kill: 1.2.2 + ts-node: 10.9.2(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4) + tsconfig: 7.0.0 + typescript: 5.5.4 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + + ts-node@10.9.2(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.1.0 + acorn: 8.12.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.5.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.5 + + tsconfig@7.0.0: + dependencies: + '@types/strip-bom': 3.0.0 + '@types/strip-json-comments': 0.0.30 + strip-bom: 3.0.0 + strip-json-comments: 2.0.1 + + tslib@2.6.3: {} + + twilio@5.2.2: + dependencies: + axios: 1.7.3 + dayjs: 1.11.12 + https-proxy-agent: 5.0.1 + jsonwebtoken: 9.0.2 + qs: 6.13.0 + scmp: 2.1.0 + xmlbuilder: 13.0.2 + transitivePeerDependencies: + - debug + - supports-color + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typescript@5.5.4: {} + + undefsafe@2.0.5: {} + + undici-types@5.26.5: {} + + undici-types@6.13.0: {} + + unionfs@4.5.4: + dependencies: + fs-monkey: 1.0.6 + + unpipe@1.0.0: {} + + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.1.2 + picocolors: 1.0.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + utils-merge@1.0.1: {} + + uuid@10.0.0: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + vary@1.1.2: {} + + watchpack@2.4.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + + webpack-sources@3.2.3: {} + + webpack@5.93.0(@swc/core@1.7.5): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.3 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + ws@8.18.0(bufferutil@4.0.8): + optionalDependencies: + bufferutil: 4.0.8 + + xmlbuilder@13.0.2: {} + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yn@3.1.1: {} diff --git a/examples/twilio/src/functions/agent/index.ts b/examples/twilio/src/functions/agent/index.ts new file mode 100644 index 0000000..5e3ffaa --- /dev/null +++ b/examples/twilio/src/functions/agent/index.ts @@ -0,0 +1 @@ +export * from "./voiceAgent"; diff --git a/examples/twilio/src/functions/agent/voiceAgent.ts b/examples/twilio/src/functions/agent/voiceAgent.ts new file mode 100644 index 0000000..e9f0176 --- /dev/null +++ b/examples/twilio/src/functions/agent/voiceAgent.ts @@ -0,0 +1,222 @@ +import { + FunctionFailure, + log, + heartbeat, +} from "@restackio/restack-sdk-ts/function"; +import { DeepgramSpeechToText } from "../deepgram/speechToText"; +import { StreamAudio } from "../websocket/streamAudio"; +import { DeepgramTextToSpeech } from "../deepgram/textToSpeech"; +import { Context } from "@temporalio/activity"; +import Restack from "@restackio/restack-sdk-ts"; +import WebSocket from "ws"; +import { WebSocketConnect } from "../websocket/connect"; +// import { DeepgramTextToSpeechToWebsocket } from "../deepgram/ttsToWebsocket"; + +export class VoiceAgent { + private ws: WebSocket; + private streamSid: string; + + constructor(streamSid: string) { + this.ws = WebSocketConnect(); + this.streamSid = streamSid; + } + + getWebSocket() { + return this.ws; + } + + async start() { + return new Promise(async (resolve, reject) => { + try { + const textToSpeech = new DeepgramTextToSpeech(); + const restack = new Restack(); + const { runId, workflowId } = Context.current().info.workflowExecution; + const handle = await restack.getHandle(workflowId, runId); + + textToSpeech.generate({ + gptReply: { + partialResponseIndex: null, + partialResponse: + "Hello! My name is Emilia from Apple. You are interested in Airpods, is that correct?", + }, + interactionCount: 0, + }); + + // TODO child workflow and update + // + // await handle.executeUpdate("script", { + // args: [ + // { + // gptReply: { + // partialResponseIndex: null, + // partialResponse: + // "Hello! My name is Asteria from Apple. You are interested in Airpods, is that correct?", + // }, + // interactionCount: 0, + // }, + // ], + // }); + + const streamAudio = new StreamAudio(this.ws); + const speechToText = new DeepgramSpeechToText(); + + streamAudio.setStreamSid(this.streamSid); + + let marks: string[] = []; + let interactionCount = 0; + + this.ws.on("open", () => { + log.debug(`WebSocket connection opened`); + }); + + this.ws.on("message", async (data) => { + const message = JSON.parse(data.toString()); + heartbeat(message); + + if (message.event === "media") { + if (message.streamSid === this.streamSid) { + // TODO child workflow and update + // + // await handle.executeUpdate("media", { + // args: [{ payload: message.media.payload }], + // }); + speechToText.send(message.media.payload); + } else { + log.info( + `Received message for different streamSid: ${message.streamSid}` + ); + } + } + + if ( + message.event === "gptreply" && + message.streamSid === this.streamSid + ) { + const { gptReply, interactionCount } = message.data; + log.info( + `Interaction ${interactionCount}: GPT -> TTS: ${gptReply.partialResponse}` + ); + // TODO child workflow and update + // + // await handle.executeUpdate("script", { + // args: [{ gptReply, interactionCount }], + // }); + textToSpeech.generate({ gptReply, interactionCount }); + } + + if ( + message.event === "sttreply" && + message.streamSid === this.streamSid + ) { + const { text } = message.data; + if (!message.data.text) { + return; + } + log.info(`Interaction ${interactionCount} – STT -> GPT: ${text}`); + await handle.executeUpdate("transcription", { + args: [{ text, interactionCount }], + }); + interactionCount += 1; + } + + if ( + message.event === "ttsreply" && + message.streamSid === this.streamSid + ) { + const { responseIndex, audio, label, interactionCount } = + message.data; + if (!message.data.audio) { + return; + } + streamAudio.buffer(responseIndex, audio); + log.info( + `Audio ${responseIndex} for Interaction ${interactionCount}: TTS -> TWILIO: ${label}` + ); + } + + if (message.event === "mark") { + const label = message.mark.name; + log.info( + `Twilio -> Audio completed mark (${message.sequenceNumber}): ${label}` + ); + marks = marks.filter((m) => m !== message.mark.name); + } + + if (message.event === "stop") { + log.info(`Twilio -> Media stream ${this.streamSid} ended.`); + this.ws.close(); + } + }); + + // TODO child workflow and update + // + + speechToText.on("utterance", async (text) => { + if (marks.length > 0 && text?.length > 5) { + log.info("Twilio -> Interruption, Clearing stream"); + this.ws.send( + JSON.stringify({ + streamSid: this.streamSid, + event: "clear", + }) + ); + } + }); + + speechToText.on("transcription", async (text) => { + if (!text) { + return; + } + log.info(`Interaction ${interactionCount} – STT -> GPT: ${text}`); + await handle.executeUpdate("transcription", { + args: [{ text, interactionCount }], + }); + interactionCount += 1; + }); + + textToSpeech.on( + "speech", + (responseIndex, audio, label, interactionCount) => { + log.info( + `Interaction ${interactionCount}: TTS -> TWILIO: ${label}` + ); + streamAudio.buffer(responseIndex, audio); + } + ); + + streamAudio.on("audiosent", (markLabel) => { + marks.push(markLabel); + }); + + this.ws.on("close", async () => { + log.info(`WebSocket closed for streamSid: ${this.streamSid}`); + await handle.executeUpdate("endSignal", { + args: [], + }); + resolve(); + }); + + this.ws.on("error", (error) => { + log.error(`WebSocket error: ${error}`); + reject(FunctionFailure.nonRetryable(`WebSocket error: ${error}`)); + }); + } catch (error) { + reject( + FunctionFailure.nonRetryable( + `Error connecting to WebSocket: ${error}` + ) + ); + } + }); + } +} + +export async function StartVoiceAgent({ streamSid }: { streamSid: string }) { + try { + const voiceAgent = new VoiceAgent(streamSid); + await voiceAgent.start(); + log.info(`VoiceAgent started for streamSid: ${streamSid}`); + } catch (error) { + throw FunctionFailure.nonRetryable(`Error starting VoiceAgent: ${error}`); + } +} diff --git a/examples/twilio/src/functions/deepgram/index.ts b/examples/twilio/src/functions/deepgram/index.ts new file mode 100644 index 0000000..954e725 --- /dev/null +++ b/examples/twilio/src/functions/deepgram/index.ts @@ -0,0 +1,2 @@ +export * from "./sttToWebsocket"; +export * from "./ttsToWebsocket"; diff --git a/examples/twilio/src/functions/deepgram/speechToText.ts b/examples/twilio/src/functions/deepgram/speechToText.ts new file mode 100644 index 0000000..d520f64 --- /dev/null +++ b/examples/twilio/src/functions/deepgram/speechToText.ts @@ -0,0 +1,103 @@ +import { + createClient, + LiveTranscriptionEvent, + LiveTranscriptionEvents, +} from "@deepgram/sdk"; +import { Buffer } from "node:buffer"; +import { EventEmitter } from "events"; +import { log } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; + +class DeepgramSpeechToText extends EventEmitter { + private dgConnection: any; + private finalResult: string; + private speechFinal: boolean; + + constructor() { + super(); + const deepgram = createClient(process.env.DEEPGRAM_API_KEY); + this.dgConnection = deepgram.listen.live({ + encoding: "mulaw", + sample_rate: 8000, + model: "nova-2", + punctuate: true, + interim_results: true, + endpointing: 50, + utterance_end_ms: 1000, + }); + + this.finalResult = ""; + this.speechFinal = false; + + this.dgConnection.on(LiveTranscriptionEvents.Open, () => { + this.dgConnection.on( + LiveTranscriptionEvents.Transcript, + (transcriptionEvent: LiveTranscriptionEvent) => { + const alternatives = transcriptionEvent.channel?.alternatives; + let text = ""; + if (alternatives) { + text = alternatives[0]?.transcript; + } + // @ts-ignore + if (transcriptionEvent.type === "UtteranceEnd") { + if (!this.speechFinal) { + log.warn( + `UtteranceEnd received before speechFinal, emit the text collected so far: ${this.finalResult}` + ); + this.emit("transcription", this.finalResult); + return; + } else { + log.warn( + "STT -> Speech was already final when UtteranceEnd received" + ); + return; + } + } + + if (transcriptionEvent.is_final === true && text.trim().length > 0) { + this.finalResult += ` ${text}`; + if (transcriptionEvent.speech_final === true) { + this.speechFinal = true; + this.emit("transcription", this.finalResult); + this.finalResult = ""; + } else { + this.speechFinal = false; + } + } else { + this.emit("utterance", text); + } + } + ); + + this.dgConnection.on(LiveTranscriptionEvents.Error, (error: unknown) => { + log.error("STT -> deepgram error", { error }); + }); + + this.dgConnection.on( + LiveTranscriptionEvents.Unhandled, + (unhandledEvent: unknown) => { + log.error("STT -> deepgram unhandled event", { unhandledEvent }); + } + ); + + this.dgConnection.on( + LiveTranscriptionEvents.Metadata, + (metadata: unknown) => { + log.error("STT -> deepgram metadata", { metadata }); + } + ); + + this.dgConnection.on(LiveTranscriptionEvents.Close, () => { + log.warn("STT -> Deepgram connection closed"); + }); + }); + } + + send(payload: string) { + if (this.dgConnection.getReadyState() === 1) { + this.dgConnection.send(Buffer.from(payload, "base64")); + } + } +} + +export { DeepgramSpeechToText }; diff --git a/examples/twilio/src/functions/deepgram/sttToWebsocket.ts b/examples/twilio/src/functions/deepgram/sttToWebsocket.ts new file mode 100644 index 0000000..15d1fe1 --- /dev/null +++ b/examples/twilio/src/functions/deepgram/sttToWebsocket.ts @@ -0,0 +1,70 @@ +import { DeepgramSpeechToText } from "./speechToText"; +import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; +import { VoiceAgent } from "../agent/voiceAgent"; + +export type DeepgramSpeechToTextInput = { + media: any; + streamSid: string; + marksLength: number; +}; + +export type DeepgramSpeechToTextOutput = { + text: string; +}; + +export async function DeepgramSpeechToTextToWebsocket({ + media, + marksLength, + streamSid, +}: DeepgramSpeechToTextInput): Promise { + try { + const voiceAgent = new VoiceAgent(streamSid); + const ws = voiceAgent.getWebSocket(); + + const speechToText = new DeepgramSpeechToText(); + + speechToText.send(media); + + return new Promise((resolve, reject) => { + speechToText.on("transcription", async (text) => { + log.info(`STT -> Transcription: ${text}`); + if (ws.readyState === ws.OPEN) { + ws.send( + JSON.stringify({ + streamSid, + event: "sttreply", + data: { text }, + }) + ); + } + resolve({ text }); + }); + + speechToText.on("utterance", async (text) => { + log.info(`STT -> Transcription: ${text}`); + if (marksLength > 0 && text?.length > 5) { + log.info("Twilio -> Interruption, Clearing stream"); + ws.send( + JSON.stringify({ + streamSid, + event: "clear", + }) + ); + } + resolve({ text }); + }); + + speechToText.on("error", (error) => { + reject( + FunctionFailure.nonRetryable( + `Error in DeepgramSpeechToText: ${error}` + ) + ); + }); + }); + } catch (error) { + throw FunctionFailure.nonRetryable( + `Error in DeepgramSpeechToText: ${error}` + ); + } +} diff --git a/examples/twilio/src/functions/deepgram/textToSpeech.ts b/examples/twilio/src/functions/deepgram/textToSpeech.ts new file mode 100644 index 0000000..6147a49 --- /dev/null +++ b/examples/twilio/src/functions/deepgram/textToSpeech.ts @@ -0,0 +1,68 @@ +import { Buffer } from "node:buffer"; +import { EventEmitter } from "events"; +import axios from "axios"; +import "dotenv/config"; +import { log } from "@restackio/restack-sdk-ts/function"; + +class DeepgramTextToSpeech extends EventEmitter { + private nextExpectedIndex: number; + private speechBuffer: { [key: number]: string }; + + constructor() { + super(); + this.nextExpectedIndex = 0; + this.speechBuffer = {}; + } + + async generate({ + gptReply, + interactionCount, + }: { + gptReply: { partialResponseIndex: number | null; partialResponse: any }; + interactionCount: number; + }) { + const { partialResponseIndex, partialResponse } = gptReply; + + if (!partialResponse) { + return; + } + + try { + const response = await axios.post( + `https://api.deepgram.com/v1/speak?model=${process.env.VOICE_MODEL}&encoding=mulaw&sample_rate=8000&container=none`, + { + text: partialResponse, + }, + { + headers: { + Authorization: `Token ${process.env.DEEPGRAM_API_KEY}`, + "Content-Type": "application/json", + }, + responseType: "arraybuffer", + } + ); + + if (response.status === 200) { + try { + const audioArrayBuffer = response.data; + const base64String = Buffer.from(audioArrayBuffer).toString("base64"); + this.emit( + "speech", + partialResponseIndex, + base64String, + partialResponse, + interactionCount + ); + } catch (err) { + log.error("Error in Deepgram TTS:", { err }); + } + } else { + log.error("Deepgram TTS error:", { response }); + } + } catch (err) { + log.error("Error occurred in TextToSpeech service", { err }); + } + } +} + +export { DeepgramTextToSpeech }; diff --git a/examples/twilio/src/functions/deepgram/ttsToWebsocket.ts b/examples/twilio/src/functions/deepgram/ttsToWebsocket.ts new file mode 100644 index 0000000..e3c61e2 --- /dev/null +++ b/examples/twilio/src/functions/deepgram/ttsToWebsocket.ts @@ -0,0 +1,63 @@ +import { DeepgramTextToSpeech } from "./textToSpeech"; +import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; +import { VoiceAgent } from "../agent/voiceAgent"; + +export type DeepgramTextToSpeechInput = { + gptReply: { + partialResponseIndex: number; + partialResponse: any; + }; + interactionCount: number; + streamSid: string; +}; + +export type DeepgramTextToSpeechOutput = { + audioLength: number; + interactionCount: number; +}; + +export async function DeepgramTextToSpeechToWebsocket({ + gptReply, + interactionCount, + streamSid, +}: DeepgramTextToSpeechInput): Promise { + try { + const voiceAgent = new VoiceAgent(streamSid); + const ws = voiceAgent.getWebSocket(); + + const textToSpeech = new DeepgramTextToSpeech(); + + return new Promise((resolve, reject) => { + textToSpeech.generate({ gptReply, interactionCount }); + + textToSpeech.on( + "speech", + (responseIndex, audio, label, interactionCount) => { + log.info(`Interaction ${interactionCount}: TTS -> TWILIO: ${label}`); + if (ws.readyState === ws.OPEN) { + ws.send( + JSON.stringify({ + streamSid, + event: "ttsreply", + data: { responseIndex, audio, label, interactionCount }, + }) + ); + } + resolve({ audioLength: audio.length, interactionCount }); + } + ); + + textToSpeech.on("error", (error) => { + reject( + FunctionFailure.nonRetryable( + `Error in DeepgramTextToSpeech: ${error}` + ) + ); + }); + }); + } catch (error) { + throw FunctionFailure.nonRetryable( + `Error in DeepgramTextToSpeech: ${error}` + ); + } +} diff --git a/examples/twilio/src/functions/index.ts b/examples/twilio/src/functions/index.ts new file mode 100644 index 0000000..5eefe8d --- /dev/null +++ b/examples/twilio/src/functions/index.ts @@ -0,0 +1,5 @@ +export * from "./websocket"; +export * from "./twilio"; +export * from "./agent"; +export * from "./openai"; +export * from "./deepgram"; diff --git a/examples/twilio/src/functions/openai/chat.ts b/examples/twilio/src/functions/openai/chat.ts new file mode 100644 index 0000000..e942c16 --- /dev/null +++ b/examples/twilio/src/functions/openai/chat.ts @@ -0,0 +1,148 @@ +import { EventEmitter } from "events"; +import OpenAI from "openai"; +import { tools } from "./tools/function-manifest"; +import { log } from "@restackio/restack-sdk-ts/function"; +import { prompt } from "./prompt"; + +const availableFunctions: { [key: string]: Function } = {}; + +tools?.forEach((tool) => { + const functionName = tool.function.name; + availableFunctions[functionName] = require(`../functions/${functionName}`); +}); + +interface GptReply { + partialResponseIndex: number | null; + partialResponse: string; +} + +class OpenaiChat extends EventEmitter { + private userContext: any[]; + private openai: any; + private partialResponseIndex: number; + + constructor() { + super(); + this.openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); + (this.userContext = prompt), (this.partialResponseIndex = 0); + } + + setCallSid(callSid: string) { + this.userContext.push({ role: "system", content: `callSid: ${callSid}` }); + } + + validateFunctionArgs(args: string) { + try { + return JSON.parse(args); + } catch (error) { + log.warn("Warning: Double function arguments returned by OpenAI:", { + args, + }); + if (args.indexOf("{") != args.lastIndexOf("{")) { + return JSON.parse( + args.substring(args.indexOf(""), args.indexOf("}") + 1) + ); + } + } + } + + updateUserContext(name: string, role: string, text: string) { + if (name !== "user") { + this.userContext.push({ role: role, name: name, content: text }); + } else { + this.userContext.push({ role: role, content: text }); + } + } + + async completion( + text: string, + interactionCount: number, + role = "user", + name = "user" + ) { + this.updateUserContext(name, role, text); + + const stream = await this.openai.chat.completions.create({ + model: "gpt-4o", + messages: this.userContext, + tools: tools, + stream: true, + }); + + let completeResponse = ""; + let partialResponse = ""; + let functionName = ""; + let functionArgs = ""; + let finishReason = ""; + + const collectToolInformation = (deltas: any) => { + let name = deltas.tool_calls[0]?.function?.name || ""; + if (name != "") { + functionName = name; + } + let args = deltas.tool_calls[0]?.function?.arguments || ""; + if (args != "") { + functionArgs += args; + } + }; + + for await (const chunk of stream) { + let content = chunk.choices[0]?.delta?.content || ""; + let deltas = chunk.choices[0].delta; + finishReason = chunk.choices[0].finish_reason; + + if (deltas.tool_calls) { + collectToolInformation(deltas); + } + + if (finishReason === "tool_calls") { + const functionToCall = availableFunctions[functionName]; + const validatedArgs = this.validateFunctionArgs(functionArgs); + + const toolData = tools.find( + (tool) => tool.function.name === functionName + ); + const say = toolData?.function.say; + + this.emit( + "gptreply", + { + partialResponseIndex: null, + partialResponse: say, + }, + interactionCount + ); + + let functionResponse = await functionToCall(validatedArgs); + + this.updateUserContext(functionName, "function", functionResponse); + + await this.completion( + functionResponse, + interactionCount, + "function", + functionName + ); + } else { + completeResponse += content; + partialResponse += content; + if (content.trim().slice(-1) === "•" || finishReason === "stop") { + const gptReply: GptReply = { + partialResponseIndex: this.partialResponseIndex, + partialResponse, + }; + + this.emit("gptreply", gptReply, interactionCount); + this.partialResponseIndex++; + partialResponse = ""; + } + } + } + this.userContext.push({ role: "assistant", content: completeResponse }); + + const contextLength = this.userContext.length; + log.info("GPT -> user context length:", { contextLength }); + } +} + +export { OpenaiChat }; diff --git a/examples/twilio/src/functions/openai/index.ts b/examples/twilio/src/functions/openai/index.ts new file mode 100644 index 0000000..cc00019 --- /dev/null +++ b/examples/twilio/src/functions/openai/index.ts @@ -0,0 +1 @@ +export * from "./toWebsocket"; diff --git a/examples/twilio/src/functions/openai/prompt.ts b/examples/twilio/src/functions/openai/prompt.ts new file mode 100644 index 0000000..fd50a6c --- /dev/null +++ b/examples/twilio/src/functions/openai/prompt.ts @@ -0,0 +1,25 @@ +export const prompt = [ + { + role: "system", + content: `You are an outbound sales representative selling Apple Airpods. + Invent a character for yourself. + You have a youthful and cheery personality. + Keep your responses as brief as possible but make every attempt to keep the caller on the phone without being rude. + Don't ask more than 1 question at a time. + Don't make assumptions about what values to plug into functions. + Ask for clarification if a user request is ambiguous. + Speak out all prices to include the currency. + Please help them decide between airpods airpods pro and airpods max by asking questions like 'Do you prefer headphones that go in your ear or over the ear?'. + If they are trying to choose between the airpods and airpods pro try asking them if they need noise canceling. + Once you know which model they would like ask them how many they would like to purchase and try to get them to place an order. + This reponse is used by text to speech, make it as natural as possible by using filler words like 'um' and 'uh'. + A comma (,) or a period (.) present in your text will be treated as a very short pause. + If you need to insert a longer pause in your audio, use the ellipsis: ... + `, + }, + { + role: "assistant", + content: + "Hello! I understand you're looking for a pair of AirPods, is that correct?", + }, +]; diff --git a/examples/twilio/src/functions/openai/toWebsocket.ts b/examples/twilio/src/functions/openai/toWebsocket.ts new file mode 100644 index 0000000..67c45c7 --- /dev/null +++ b/examples/twilio/src/functions/openai/toWebsocket.ts @@ -0,0 +1,56 @@ +import { OpenaiChat } from "./chat"; +import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; +import { VoiceAgent } from "../agent/voiceAgent"; // Import VoiceAgent + +export type OpenaiChatInput = { + text: string; + interactionCount: number; + streamSid: string; +}; + +export type OpenaiChatOutput = { + gptReply: string; + interactionCount: number; +}; + +export async function OpenaiToWebsocket({ + text, + interactionCount, + streamSid, +}: OpenaiChatInput): Promise { + try { + const voiceAgent = new VoiceAgent(streamSid); + const ws = voiceAgent.getWebSocket(); + + const openaiChat = new OpenaiChat(); + openaiChat.setCallSid(streamSid); + + return new Promise((resolve, reject) => { + openaiChat.completion(text, interactionCount); + + openaiChat.on("gptreply", async (gptReply, interactionCount) => { + log.info( + `Interaction ${interactionCount}: GPT -> TTS: ${gptReply.partialResponse}` + ); + if (ws.readyState === ws.OPEN) { + ws.send( + JSON.stringify({ + streamSid, + event: "gptreply", + data: { gptReply, interactionCount }, + }) + ); + } + resolve({ gptReply, interactionCount }); + }); + + openaiChat.on("error", (error) => { + reject( + FunctionFailure.nonRetryable(`Error in openaiChatActivity: ${error}`) + ); + }); + }); + } catch (error) { + throw FunctionFailure.nonRetryable(`Error in openaiChatActivity: ${error}`); + } +} diff --git a/examples/twilio/src/functions/openai/tools/checkInventory.ts b/examples/twilio/src/functions/openai/tools/checkInventory.ts new file mode 100644 index 0000000..f317146 --- /dev/null +++ b/examples/twilio/src/functions/openai/tools/checkInventory.ts @@ -0,0 +1,16 @@ +import { log } from "@restackio/restack-sdk-ts/function"; + +async function checkInventory(functionArgs: { model: string }) { + const model = functionArgs.model; + log.info("GPT -> called checkInventory function"); + + if (model?.toLowerCase().includes("pro")) { + return JSON.stringify({ stock: 10 }); + } else if (model?.toLowerCase().includes("max")) { + return JSON.stringify({ stock: 0 }); + } else { + return JSON.stringify({ stock: 100 }); + } +} + +export default checkInventory; diff --git a/examples/twilio/src/functions/openai/tools/checkPrice.ts b/examples/twilio/src/functions/openai/tools/checkPrice.ts new file mode 100644 index 0000000..873136a --- /dev/null +++ b/examples/twilio/src/functions/openai/tools/checkPrice.ts @@ -0,0 +1,15 @@ +import { log } from "@restackio/restack-sdk-ts/function"; + +async function checkPrice(functionArgs: { model: string }) { + const model = functionArgs.model; + log.info("GPT -> called checkPrice function"); + if (model?.toLowerCase().includes("pro")) { + return JSON.stringify({ price: 249 }); + } else if (model?.toLowerCase().includes("max")) { + return JSON.stringify({ price: 549 }); + } else { + return JSON.stringify({ price: 149 }); + } +} + +export default checkPrice; diff --git a/examples/twilio/src/functions/openai/tools/function-manifest.ts b/examples/twilio/src/functions/openai/tools/function-manifest.ts new file mode 100644 index 0000000..442402e --- /dev/null +++ b/examples/twilio/src/functions/openai/tools/function-manifest.ts @@ -0,0 +1,102 @@ +// create metadata for all the available functions to pass to completions API +export const tools = [ + { + type: "function", + function: { + name: "checkInventory", + say: "Let me check our inventory right now.", + description: + "Check the inventory of airpods, airpods pro or airpods max.", + parameters: { + type: "object", + properties: { + model: { + type: "string", + enum: ["airpods", "airpods pro", "airpods max"], + description: + "The model of airpods, either the airpods, airpods pro or airpods max", + }, + }, + required: ["model"], + }, + returns: { + type: "object", + properties: { + stock: { + type: "integer", + description: + "An integer containing how many of the model are in currently in stock.", + }, + }, + }, + }, + }, + { + type: "function", + function: { + name: "checkPrice", + say: "Let me check the price, one moment.", + description: + "Check the price of given model of airpods, airpods pro or airpods max.", + parameters: { + type: "object", + properties: { + model: { + type: "string", + enum: ["airpods", "airpods pro", "airpods max"], + description: + "The model of airpods, either the airpods, airpods pro or airpods max", + }, + }, + required: ["model"], + }, + returns: { + type: "object", + properties: { + price: { + type: "integer", + description: "the price of the model", + }, + }, + }, + }, + }, + { + type: "function", + function: { + name: "placeOrder", + say: "All right, I'm just going to ring that up in our system.", + description: "Places an order for a set of airpods.", + parameters: { + type: "object", + properties: { + model: { + type: "string", + enum: ["airpods", "airpods pro"], + description: "The model of airpods, either the regular or pro", + }, + quantity: { + type: "integer", + description: "The number of airpods they want to order", + }, + }, + required: ["type", "quantity"], + }, + returns: { + type: "object", + properties: { + price: { + type: "integer", + description: "The total price of the order including tax", + }, + orderNumber: { + type: "integer", + description: "The order number associated with the order.", + }, + }, + }, + }, + }, +]; + +module.exports = tools; diff --git a/examples/twilio/src/functions/openai/tools/placeOrder.ts b/examples/twilio/src/functions/openai/tools/placeOrder.ts new file mode 100644 index 0000000..4055c47 --- /dev/null +++ b/examples/twilio/src/functions/openai/tools/placeOrder.ts @@ -0,0 +1,28 @@ +import { log } from "@restackio/restack-sdk-ts/function"; + +async function placeOrder(functionArgs: { model: string; quantity: number }) { + const { model, quantity } = functionArgs; + log.info("GPT -> called placeOrder function"); + + const orderNum = Math.floor( + Math.random() * (9999999 - 1000000 + 1) + 1000000 + ); + + if (model?.toLowerCase().includes("pro")) { + return JSON.stringify({ + orderNumber: orderNum, + price: Math.floor(quantity * 249 * 1.079), + }); + } else if (model?.toLowerCase().includes("max")) { + return JSON.stringify({ + orderNumber: orderNum, + price: Math.floor(quantity * 549 * 1.079), + }); + } + return JSON.stringify({ + orderNumber: orderNum, + price: Math.floor(quantity * 179 * 1.079), + }); +} + +export default placeOrder; diff --git a/examples/twilio/src/functions/twilio/index.ts b/examples/twilio/src/functions/twilio/index.ts new file mode 100644 index 0000000..1850252 --- /dev/null +++ b/examples/twilio/src/functions/twilio/index.ts @@ -0,0 +1 @@ +export * from "./twilioCall"; diff --git a/examples/twilio/src/functions/twilio/twilioCall.ts b/examples/twilio/src/functions/twilio/twilioCall.ts new file mode 100644 index 0000000..8fc0e0f --- /dev/null +++ b/examples/twilio/src/functions/twilio/twilioCall.ts @@ -0,0 +1,36 @@ +import twilio from "twilio"; +import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; + +interface Output { + sid: string; +} + +export async function TwilioCall(): Promise { + const accountSid = process.env.TWILIO_ACCOUNT_SID; + const authToken = process.env.TWILIO_AUTH_TOKEN; + + const from = process.env.FROM_NUMBER; + const to = process.env.YOUR_NUMBER; + + const client = twilio(accountSid, authToken); + + if (!accountSid || !authToken) { + throw FunctionFailure.nonRetryable("Twilio credentials are missing"); + } + + try { + if (to && from) { + const { sid } = await client.calls.create({ + url: `https://${process.env.SERVER}/incoming`, + to, + from, + }); + return { sid }; + } else { + throw FunctionFailure.nonRetryable(`No number`); + } + } catch (error) { + throw FunctionFailure.nonRetryable(`Error Twilio call create: ${error}`); + } +} diff --git a/examples/twilio/src/functions/websocket/connect.ts b/examples/twilio/src/functions/websocket/connect.ts new file mode 100644 index 0000000..e51fc28 --- /dev/null +++ b/examples/twilio/src/functions/websocket/connect.ts @@ -0,0 +1,17 @@ +import WebSocket from "ws"; +import dotenv from "dotenv"; +import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; + +dotenv.config(); + +export function WebSocketConnect(): WebSocket { + try { + const websocketAddress = `wss://${process.env.SERVER}/connection`; + const ws = new WebSocket(websocketAddress); + return ws; + } catch (error) { + throw FunctionFailure.nonRetryable( + `Error connecting to WebSocket: ${error}` + ); + } +} diff --git a/examples/twilio/src/functions/websocket/emit.ts b/examples/twilio/src/functions/websocket/emit.ts new file mode 100644 index 0000000..874ce75 --- /dev/null +++ b/examples/twilio/src/functions/websocket/emit.ts @@ -0,0 +1,22 @@ +import { OpenaiChatOutput } from "../openai/toWebsocket"; +import { WebSocketConnect } from "./connect"; +import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; + +export async function emitToWebSocket({ + event, + streamSid, + data, +}: { + event: string; + streamSid: string; + data: OpenaiChatOutput; +}) { + try { + const ws = WebSocketConnect(); + + ws.send(JSON.stringify({ streamSid, event, data })); + log.info(`Emitting to WebSocket: ${event}`, { streamSid, data }); + } catch (error) { + throw FunctionFailure.nonRetryable(`Error emitting to WebSocket: ${error}`); + } +} diff --git a/examples/twilio/src/functions/websocket/index.ts b/examples/twilio/src/functions/websocket/index.ts new file mode 100644 index 0000000..2e22528 --- /dev/null +++ b/examples/twilio/src/functions/websocket/index.ts @@ -0,0 +1 @@ +export * from "./connect"; diff --git a/examples/twilio/src/functions/websocket/streamAudio.ts b/examples/twilio/src/functions/websocket/streamAudio.ts new file mode 100644 index 0000000..0819abc --- /dev/null +++ b/examples/twilio/src/functions/websocket/streamAudio.ts @@ -0,0 +1,68 @@ +import { EventEmitter } from "events"; +import { v4 as uuidv4 } from "uuid"; + +class StreamAudio extends EventEmitter { + private ws: any; + private expectedAudioIndex: number; + private audioBuffer: { [key: number]: string }; + private streamSid: string; + + constructor(websocket: any) { + super(); + this.ws = websocket; + this.expectedAudioIndex = 0; + this.audioBuffer = {}; + this.streamSid = ""; + } + + setStreamSid(streamSid: string) { + this.streamSid = streamSid; + } + + buffer(index: number | null, audio: string) { + if (index === null) { + this.sendAudio(audio); + } else if (index === this.expectedAudioIndex) { + this.sendAudio(audio); + this.expectedAudioIndex++; + + while ( + Object.prototype.hasOwnProperty.call( + this.audioBuffer, + this.expectedAudioIndex + ) + ) { + const bufferedAudio = this.audioBuffer[this.expectedAudioIndex]; + this.sendAudio(bufferedAudio); + this.expectedAudioIndex++; + } + } else { + this.audioBuffer[index] = audio; + } + } + + sendAudio(audio: string) { + this.ws.send( + JSON.stringify({ + streamSid: this.streamSid, + event: "media", + media: { + payload: audio, + }, + }) + ); + const markLabel = uuidv4(); + this.ws.send( + JSON.stringify({ + streamSid: this.streamSid, + event: "mark", + mark: { + name: markLabel, + }, + }) + ); + this.emit("audiosent", markLabel); + } +} + +export { StreamAudio }; diff --git a/examples/twilio/src/server.ts b/examples/twilio/src/server.ts new file mode 100644 index 0000000..e6b4020 --- /dev/null +++ b/examples/twilio/src/server.ts @@ -0,0 +1,112 @@ +import "dotenv/config"; +import express from "express"; +import { createServer } from "http"; +import WebSocket, { WebSocketServer } from "ws"; +import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; +import Restack from "@restackio/restack-sdk-ts"; +import { twilioAgentWorkflow } from "./workflows"; + +const app = express(); +const server = createServer(app); +const wss = new WebSocketServer({ server }); +const PORT = process.env.PORT || 3000; +export const websocketAddress = `wss://${process.env.SERVER}/connection`; + +app.post("/incoming", async (req, res) => { + try { + const workflowId = `${Date.now()}-${twilioAgentWorkflow.name}`; + const restack = new Restack(); + const runId = await restack.schedule({ + workflowName: twilioAgentWorkflow.name, + workflowId, + }); + + console.log(`Started workflow with runId: ${runId}`); + + if (runId) { + const response = new VoiceResponse(); + const connect = response.connect(); + const stream = connect.stream({ url: `${websocketAddress}` }); + + stream.parameter({ name: "runId", value: runId }); + stream.parameter({ name: "workflowId", value: workflowId }); + res.type("text/xml"); + res.end(response.toString()); + } else { + throw new Error("Failed to get runId from workflow handle"); + } + } catch (err) { + console.log(err); + } +}); + +wss.on("connection", (ws) => { + const restack = new Restack(); + + let workflowId: string; + let runId: string; + + ws.on("error", console.error); + + ws.on("message", async function message(data, isBinary) { + // allows broadcast to all clients except this one (otherwwise echo) + + wss.clients.forEach(function each(client) { + if (client !== ws && client.readyState === WebSocket.OPEN) { + client.send(data, { binary: isBinary }); + } + }); + + const message = JSON.parse(data.toString()); + const streamSid = message.streamSid; + + if (message.event === "start") { + console.log(`Twilio -> Starting Media Stream for ${streamSid}`); + runId = message.start.customParameters.runId; + workflowId = message.start.customParameters.workflowId; + if (runId) { + try { + const handle = await restack.getHandle(workflowId, runId); + // const handle = client.workflow.getHandle(workflowId, runId); + + if (streamSid) { + await handle.executeUpdate("streamSid", { + args: [streamSid], + }); + console.log( + `Signaled workflow ${workflowId} runId ${runId} with Twilio streamId: ${streamSid}` + ); + } + } catch (error) { + console.log("Error signaling workflow", error); + } + } + } + + if (message.event === "stop") { + console.log(`Twilio -> Media stream ${streamSid} ended.`); + if (runId) { + const handle = await restack.getHandle(workflowId, runId); + handle.executeUpdate("endSignal", { + args: [], + }); + } + } + }); +}); + +function shutdown() { + wss.close(() => { + server.close(() => { + process.exit(0); + }); + }); +} + +// Listen for termination signals +process.on("SIGTERM", shutdown); +process.on("SIGINT", shutdown); + +server.listen(PORT, () => { + console.log(`Server running on port ${PORT}`); +}); diff --git a/examples/twilio/src/worker.ts b/examples/twilio/src/worker.ts new file mode 100644 index 0000000..a43bba6 --- /dev/null +++ b/examples/twilio/src/worker.ts @@ -0,0 +1,50 @@ +import Restack from "@restackio/restack-sdk-ts"; +import { + StartVoiceAgent, + TwilioCall, + OpenaiToWebsocket, + DeepgramTextToSpeechToWebsocket, + DeepgramSpeechToTextToWebsocket, +} from "./functions"; + +async function main() { + const workflowsPath = require.resolve("./workflows"); + + try { + const restack = new Restack(); + + await Promise.all([ + restack.pod({ + name: "restack", + workflowsPath, + functions: { StartVoiceAgent }, + }), + restack.pod({ + name: "twilio", + workflowsPath, + functions: { TwilioCall }, + }), + restack.pod({ + name: "openai", + workflowsPath, + functions: { OpenaiToWebsocket }, + }), + restack.pod({ + name: "deepgram", + workflowsPath, + functions: { + DeepgramTextToSpeechToWebsocket, + DeepgramSpeechToTextToWebsocket, + }, + }), + ]); + + console.log("Pods running successfully."); + } catch (e) { + console.error("Failed to run pod", e); + } +} + +main().catch((err) => { + console.error("Error in main:", err); +}); diff --git a/examples/twilio/src/workflows/index.ts b/examples/twilio/src/workflows/index.ts new file mode 100644 index 0000000..a49509a --- /dev/null +++ b/examples/twilio/src/workflows/index.ts @@ -0,0 +1,2 @@ +export * from "./twilioAgent"; +export * from "./twilioCall"; diff --git a/examples/twilio/src/workflows/twilioAgent.ts b/examples/twilio/src/workflows/twilioAgent.ts new file mode 100644 index 0000000..a637271 --- /dev/null +++ b/examples/twilio/src/workflows/twilioAgent.ts @@ -0,0 +1,107 @@ +import { + sleep, + step, + log, + workflowInfo, + defineUpdate, + setHandler, +} from "@restackio/restack-sdk-ts/workflow"; +import * as functions from "../functions"; + +type Transcription = { + text: string; + interactionCount: number; +}; + +type Media = { + media: any; + marksLength: number; +}; + +type Script = { + gptReply: any; + interactionCount: number; +}; + +const streamSid = defineUpdate("streamSid"); + +const transcription = defineUpdate( + "transcription" +); +// const media = defineUpdate("media"); +const script = defineUpdate("script"); + +const endSignal = defineUpdate("endSignal"); + +export async function twilioAgentWorkflow() { + let twilioStreamSid: string; + const runId = workflowInfo().runId; + log.info(`Workflow started with runId: ${runId}`); + + setHandler(streamSid, async (streamSid: string) => { + log.info(`Workflow update with streamSid: ${streamSid}`); + const ws = step({ + podName: `restack`, + scheduleToCloseTimeout: "30 minutes", + }).StartVoiceAgent({ streamSid }); + log.info(`ws: ${ws}`); + twilioStreamSid = streamSid; + return streamSid; + }); + + setHandler( + transcription, + async ({ text, interactionCount }: Transcription) => { + log.info(`Received transcription: ${text}`); + await step({ + podName: `openai`, + scheduleToCloseTimeout: "1 minute", + }).OpenaiToWebsocket({ + text, + interactionCount, + streamSid: twilioStreamSid, + }); + return { text, interactionCount }; + } + ); + + // setHandler(media, async ({ media, marksLength }: Media) => { + // log.info(`Received media: ${media} at ${marksLength}`); + // await step({ + // podName: `deepgram`, + // scheduleToCloseTimeout: "1 minute", + // }).DeepgramSpeechToTextToWebsocket({ + // media, + // marksLength, + // streamSid: twilioStreamSid, + // }); + // return { media, marksLength }; + // }); + + setHandler(script, async ({ gptReply, interactionCount }: Script) => { + log.info(`Received script: ${gptReply} at ${interactionCount}`); + await step({ + podName: `deepgram`, + scheduleToCloseTimeout: "1 minute", + }).DeepgramTextToSpeechToWebsocket({ + gptReply, + interactionCount, + streamSid: twilioStreamSid, + }); + return { gptReply, interactionCount }; + }); + + // Handle end signal + let ended = false; + setHandler(endSignal, async () => { + log.info(`endSignal received`); + ended = true; + }); + + // Keep the workflow running until it receives the end signal + while (!ended) { + await sleep(600000); // Sleep for 10 minutes + } + + console.log(`Workflow ending with runId: ${runId}`); +} diff --git a/examples/twilio/src/workflows/twilioCall.ts b/examples/twilio/src/workflows/twilioCall.ts new file mode 100644 index 0000000..1aa6beb --- /dev/null +++ b/examples/twilio/src/workflows/twilioCall.ts @@ -0,0 +1,23 @@ +import { log, step } from "@restackio/restack-sdk-ts/workflow"; +import * as functions from "../functions"; + +interface Output { + sid: string; +} + +export async function twilioCallWorkflow(): Promise { + const { sid } = await step({ + podName: `twilio`, + scheduleToCloseTimeout: "1 minute", + }).TwilioCall(); + + if (!sid) { + throw new Error("Not able to create Twilio call"); + } + + log.info("sid", { sid }); + + return { + sid, + }; +} diff --git a/examples/twilio/tsconfig.json b/examples/twilio/tsconfig.json new file mode 100644 index 0000000..a544b3a --- /dev/null +++ b/examples/twilio/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "Node16", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "resolveJsonModule": true + }, + "include": ["src/**/*.ts", "src/server"], + "exclude": ["node_modules"] +} \ No newline at end of file From 0719b521c410bef2fa64623c795b1cdc98a8b4af Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 6 Aug 2024 23:53:12 +0200 Subject: [PATCH 013/122] streams Former-commit-id: 29a7717e3b5e5bafc9d9ab1366751320a6476b0b Former-commit-id: b6c2b5a6d90f4f3eaf3760e2ff96e7b8c8598a70 --- examples/twilio/package.json | 7 +- examples/twilio/pnpm-lock.yaml | 175 ++++++++------ examples/twilio/src/functions/agent/index.ts | 1 - .../twilio/src/functions/agent/voiceAgent.ts | 222 ------------------ .../twilio/src/functions/deepgram/index.ts | 2 - .../src/functions/deepgram/speechToText.ts | 4 +- .../src/functions/deepgram/sttToWebsocket.ts | 70 ------ .../src/functions/deepgram/textToSpeech.ts | 10 +- .../src/functions/deepgram/ttsToWebsocket.ts | 63 ----- examples/twilio/src/functions/index.ts | 4 - examples/twilio/src/functions/openai/chat.ts | 72 ++++-- examples/twilio/src/functions/openai/index.ts | 1 - .../twilio/src/functions/openai/prompt.ts | 20 +- .../src/functions/openai/toWebsocket.ts | 56 ----- .../twilio/src/functions/twilio/twilioCall.ts | 2 +- .../twilio/src/functions/websocket/connect.ts | 17 -- .../twilio/src/functions/websocket/emit.ts | 22 -- .../twilio/src/functions/websocket/index.ts | 1 - .../src/functions/websocket/streamAudio.ts | 68 ------ examples/twilio/src/server.ts | 56 +++-- examples/twilio/src/streams/answer.ts | 56 +++++ examples/twilio/src/streams/audioToText.ts | 83 +++++++ examples/twilio/src/streams/connect.ts | 28 +++ examples/twilio/src/streams/index.ts | 4 + examples/twilio/src/streams/question.ts | 48 ++++ examples/twilio/src/streams/textToAudio.ts | 101 ++++++++ examples/twilio/src/worker.ts | 21 +- examples/twilio/src/workflows/index.ts | 2 +- examples/twilio/src/workflows/twilioAgent.ts | 107 --------- examples/twilio/src/workflows/twilioCall.ts | 2 +- examples/twilio/src/workflows/twilioStream.ts | 76 ++++++ 31 files changed, 632 insertions(+), 769 deletions(-) delete mode 100644 examples/twilio/src/functions/agent/index.ts delete mode 100644 examples/twilio/src/functions/agent/voiceAgent.ts delete mode 100644 examples/twilio/src/functions/deepgram/index.ts delete mode 100644 examples/twilio/src/functions/deepgram/sttToWebsocket.ts delete mode 100644 examples/twilio/src/functions/deepgram/ttsToWebsocket.ts delete mode 100644 examples/twilio/src/functions/openai/index.ts delete mode 100644 examples/twilio/src/functions/openai/toWebsocket.ts delete mode 100644 examples/twilio/src/functions/websocket/connect.ts delete mode 100644 examples/twilio/src/functions/websocket/emit.ts delete mode 100644 examples/twilio/src/functions/websocket/index.ts delete mode 100644 examples/twilio/src/functions/websocket/streamAudio.ts create mode 100644 examples/twilio/src/streams/answer.ts create mode 100644 examples/twilio/src/streams/audioToText.ts create mode 100644 examples/twilio/src/streams/connect.ts create mode 100644 examples/twilio/src/streams/index.ts create mode 100644 examples/twilio/src/streams/question.ts create mode 100644 examples/twilio/src/streams/textToAudio.ts delete mode 100644 examples/twilio/src/workflows/twilioAgent.ts create mode 100644 examples/twilio/src/workflows/twilioStream.ts diff --git a/examples/twilio/package.json b/examples/twilio/package.json index 5b84bcb..8f2d502 100644 --- a/examples/twilio/package.json +++ b/examples/twilio/package.json @@ -7,17 +7,17 @@ "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", "dev-worker": "ts-node-dev --respawn --transpile-only src/worker.ts", "call": "ts-node ./callWorkflow.ts", - "ngrok": "ngrok http 3000" + "ngrok": "ngrok http 4000" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "@deepgram/sdk": "^3.5.0", - "@restackio/restack-sdk-ts": "^0.0.23", - "@temporalio/activity": "^1.10.3", + "@restackio/restack-sdk-ts": "^0.0.33", "@temporalio/workflow": "^1.10.3", "axios": "^1.7.3", + "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.19.2", "openai": "^4.54.0", @@ -27,6 +27,7 @@ "ws": "^8.18.0" }, "devDependencies": { + "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/node": "^22.1.0", "@types/uuid": "^10.0.0", diff --git a/examples/twilio/pnpm-lock.yaml b/examples/twilio/pnpm-lock.yaml index 4c1e4c1..1161b74 100644 --- a/examples/twilio/pnpm-lock.yaml +++ b/examples/twilio/pnpm-lock.yaml @@ -12,17 +12,17 @@ importers: specifier: ^3.5.0 version: 3.5.0(bufferutil@4.0.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.23 - version: 0.0.23 - '@temporalio/activity': - specifier: ^1.10.3 - version: 1.10.3 + specifier: ^0.0.33 + version: 0.0.33 '@temporalio/workflow': specifier: ^1.10.3 version: 1.10.3 axios: specifier: ^1.7.3 version: 1.7.3 + cors: + specifier: ^2.8.5 + version: 2.8.5 dotenv: specifier: ^16.4.5 version: 16.4.5 @@ -49,6 +49,9 @@ importers: specifier: ^4.0.8 version: 4.0.8 devDependencies: + '@types/cors': + specifier: ^2.8.17 + version: 2.8.17 '@types/express': specifier: ^4.17.21 version: 4.17.21 @@ -66,10 +69,10 @@ importers: version: 3.1.4 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4) ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4) + version: 2.0.0(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4) packages: @@ -169,72 +172,72 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.23': - resolution: {integrity: sha512-7blKzeavHhaeA+3orG42XfhkwOV72dShqJMqaYsZPz4B51OVcoUParRy+HUceWw9CdHBib3sLSoQtwDKK32OkQ==} + '@restackio/restack-sdk-ts@0.0.33': + resolution: {integrity: sha512-buqR0wQL10fZcpDaKjgG7b8gGHq6ocImqLhBl5KzOOejsrnTTJv60ZsZbZXJsBus3WUj6y3DJKJqGMjMBiQZ/Q==} engines: {node: '>=20'} - '@swc/core-darwin-arm64@1.7.5': - resolution: {integrity: sha512-Y+bvW9C4/u26DskMbtQKT4FU6QQenaDYkKDi028vDIKAa7v1NZqYG9wmhD/Ih7n5EUy2uJ5I5EWD7WaoLzT6PA==} + '@swc/core-darwin-arm64@1.7.6': + resolution: {integrity: sha512-6lYHey84ZzsdtC7UuPheM4Rm0Inzxm6Sb8U6dmKc4eCx8JL0LfWG4LC5RsdsrTxnjTsbriWlnhZBffh8ijUHIQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.5': - resolution: {integrity: sha512-AuIbDlcaAhYS6mtF4UqvXgrLeAfXZbVf4pgtgShPbutF80VbCQiIB55zOFz5aZdCpsBVuCWcBq0zLneK+VQKkQ==} + '@swc/core-darwin-x64@1.7.6': + resolution: {integrity: sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.5': - resolution: {integrity: sha512-99uBPHITRqgGwCXAjHY94VaV3Z40+D2NQNgR1t6xQpO8ZnevI6YSzX6GVZfBnV7+7oisiGkrVEwfIRRa+1s8FA==} + '@swc/core-linux-arm-gnueabihf@1.7.6': + resolution: {integrity: sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.5': - resolution: {integrity: sha512-xHL3Erlz+OGGCG4h6K2HWiR56H5UYMuBWWPbbUufi2bJpfhuKQy/X3vWffwL8ZVfJmCUwr4/G91GHcm32uYzRg==} + '@swc/core-linux-arm64-gnu@1.7.6': + resolution: {integrity: sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.5': - resolution: {integrity: sha512-5ArGdqvFMszNHdi4a67vopeYq8d1K+FuTWDrblHrAvZFhAyv+GQz2PnKqYOgl0sWmQxsNPfNwBFtxACpUO3Jzg==} + '@swc/core-linux-arm64-musl@1.7.6': + resolution: {integrity: sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.5': - resolution: {integrity: sha512-mSVVV/PFzCGtI1nVQQyx34NwCMgSurF6ZX/me8pUAX054vsE/pSFL66xN+kQOe/1Z/LOd4UmXFkZ/EzOSnYcSg==} + '@swc/core-linux-x64-gnu@1.7.6': + resolution: {integrity: sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.5': - resolution: {integrity: sha512-09hY3ZKMUORXVunESKS9yuP78+gQbr759GKHo8wyCdtAx8lCZdEjfI5NtC7/1VqwfeE32/U6u+5MBTVhZTt0AA==} + '@swc/core-linux-x64-musl@1.7.6': + resolution: {integrity: sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.5': - resolution: {integrity: sha512-B/UDtPI3RlYRFW42xQxOpl6kI/9LtkD7No+XeRIKQTPe15EP2o+rUlv7CmKljVBXgJ8KmaQbZlaEh1YP+QZEEQ==} + '@swc/core-win32-arm64-msvc@1.7.6': + resolution: {integrity: sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.5': - resolution: {integrity: sha512-BgLesVGmIY6Nub/sURqtSRvWYcbCE/ACfuZB3bZHVKD6nsZJJuOpdB8oC41fZPyc8yZUzL3XTBIifkT2RP+w9w==} + '@swc/core-win32-ia32-msvc@1.7.6': + resolution: {integrity: sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.5': - resolution: {integrity: sha512-CnF557tidLfQRPczcqDJ8x+LBQYsFa0Ra6w2+YU1iFUboaI2jJVuqt3vEChu80y6JiRIBAaaV2L/GawDJh1dIQ==} + '@swc/core-win32-x64-msvc@1.7.6': + resolution: {integrity: sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.5': - resolution: {integrity: sha512-qKK0/Ta4qvxs/ok3XyYVPT7OBenwRn1sSINf1cKQTBHPqr7U/uB4k2GTl6JgEs8H4PiJrMTNWfMLTucIoVSfAg==} + '@swc/core@1.7.6': + resolution: {integrity: sha512-FZxyao9eQks1MRmUshgsZTmlg/HB2oXK5fghkoWJm/1CU2q2kaJlVDll2as5j+rmWiwkp0Gidlq8wlXcEEAO+g==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -288,6 +291,9 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/cors@2.8.17': + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -502,8 +508,8 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001646: - resolution: {integrity: sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==} + caniuse-lite@1.0.30001647: + resolution: {integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -553,6 +559,10 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -998,6 +1008,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + object-inspect@1.13.2: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} @@ -1520,7 +1534,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.23': + '@restackio/restack-sdk-ts@0.0.33': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 @@ -1532,51 +1546,51 @@ snapshots: - uglify-js - webpack-cli - '@swc/core-darwin-arm64@1.7.5': + '@swc/core-darwin-arm64@1.7.6': optional: true - '@swc/core-darwin-x64@1.7.5': + '@swc/core-darwin-x64@1.7.6': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.5': + '@swc/core-linux-arm-gnueabihf@1.7.6': optional: true - '@swc/core-linux-arm64-gnu@1.7.5': + '@swc/core-linux-arm64-gnu@1.7.6': optional: true - '@swc/core-linux-arm64-musl@1.7.5': + '@swc/core-linux-arm64-musl@1.7.6': optional: true - '@swc/core-linux-x64-gnu@1.7.5': + '@swc/core-linux-x64-gnu@1.7.6': optional: true - '@swc/core-linux-x64-musl@1.7.5': + '@swc/core-linux-x64-musl@1.7.6': optional: true - '@swc/core-win32-arm64-msvc@1.7.5': + '@swc/core-win32-arm64-msvc@1.7.6': optional: true - '@swc/core-win32-ia32-msvc@1.7.5': + '@swc/core-win32-ia32-msvc@1.7.6': optional: true - '@swc/core-win32-x64-msvc@1.7.5': + '@swc/core-win32-x64-msvc@1.7.6': optional: true - '@swc/core@1.7.5': + '@swc/core@1.7.6': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.5 - '@swc/core-darwin-x64': 1.7.5 - '@swc/core-linux-arm-gnueabihf': 1.7.5 - '@swc/core-linux-arm64-gnu': 1.7.5 - '@swc/core-linux-arm64-musl': 1.7.5 - '@swc/core-linux-x64-gnu': 1.7.5 - '@swc/core-linux-x64-musl': 1.7.5 - '@swc/core-win32-arm64-msvc': 1.7.5 - '@swc/core-win32-ia32-msvc': 1.7.5 - '@swc/core-win32-x64-msvc': 1.7.5 + '@swc/core-darwin-arm64': 1.7.6 + '@swc/core-darwin-x64': 1.7.6 + '@swc/core-linux-arm-gnueabihf': 1.7.6 + '@swc/core-linux-arm64-gnu': 1.7.6 + '@swc/core-linux-arm64-musl': 1.7.6 + '@swc/core-linux-x64-gnu': 1.7.6 + '@swc/core-linux-x64-musl': 1.7.6 + '@swc/core-win32-arm64-msvc': 1.7.6 + '@swc/core-win32-ia32-msvc': 1.7.6 + '@swc/core-win32-x64-msvc': 1.7.6 '@swc/counter@0.1.3': {} @@ -1619,7 +1633,7 @@ snapshots: '@temporalio/worker@1.10.3': dependencies: - '@swc/core': 1.7.5 + '@swc/core': 1.7.6 '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 '@temporalio/common': 1.10.3 @@ -1631,11 +1645,11 @@ snapshots: memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.5)) + source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.6)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)) + swc-loader: 0.2.6(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)) unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.5) + webpack: 5.93.0(@swc/core@1.7.6) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1664,6 +1678,10 @@ snapshots: dependencies: '@types/node': 22.1.0 + '@types/cors@2.8.17': + dependencies: + '@types/node': 22.1.0 + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.0 @@ -1913,7 +1931,7 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001646 + caniuse-lite: 1.0.30001647 electron-to-chromium: 1.5.4 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -1937,7 +1955,7 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - caniuse-lite@1.0.30001646: {} + caniuse-lite@1.0.30001647: {} cargo-cp-artifact@0.1.9: {} @@ -1985,6 +2003,11 @@ snapshots: cookie@0.6.0: {} + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + create-require@1.1.1: {} cross-fetch@3.1.8: @@ -2393,6 +2416,8 @@ snapshots: normalize-path@3.0.0: {} + object-assign@4.1.1: {} + object-inspect@1.13.2: {} on-finished@2.4.1: @@ -2567,11 +2592,11 @@ snapshots: source-map-js@1.2.0: {} - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.5)): + source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.6)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.5) + webpack: 5.93.0(@swc/core@1.7.6) source-map-support@0.5.21: dependencies: @@ -2608,24 +2633,24 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)): + swc-loader@0.2.6(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)): dependencies: - '@swc/core': 1.7.5 + '@swc/core': 1.7.6 '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.5) + webpack: 5.93.0(@swc/core@1.7.6) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.3 - webpack: 5.93.0(@swc/core@1.7.5) + webpack: 5.93.0(@swc/core@1.7.6) optionalDependencies: - '@swc/core': 1.7.5 + '@swc/core': 1.7.6 terser@5.31.3: dependencies: @@ -2654,7 +2679,7 @@ snapshots: tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4): + ts-node-dev@2.0.0(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -2664,7 +2689,7 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4) tsconfig: 7.0.0 typescript: 5.5.4 transitivePeerDependencies: @@ -2672,7 +2697,7 @@ snapshots: - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.7.5)(@types/node@22.1.0)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -2690,7 +2715,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.5 + '@swc/core': 1.7.6 tsconfig@7.0.0: dependencies: @@ -2764,7 +2789,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.93.0(@swc/core@1.7.5): + webpack@5.93.0(@swc/core@1.7.6): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -2787,7 +2812,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.5)(webpack@5.93.0(@swc/core@1.7.5)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/examples/twilio/src/functions/agent/index.ts b/examples/twilio/src/functions/agent/index.ts deleted file mode 100644 index 5e3ffaa..0000000 --- a/examples/twilio/src/functions/agent/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./voiceAgent"; diff --git a/examples/twilio/src/functions/agent/voiceAgent.ts b/examples/twilio/src/functions/agent/voiceAgent.ts deleted file mode 100644 index e9f0176..0000000 --- a/examples/twilio/src/functions/agent/voiceAgent.ts +++ /dev/null @@ -1,222 +0,0 @@ -import { - FunctionFailure, - log, - heartbeat, -} from "@restackio/restack-sdk-ts/function"; -import { DeepgramSpeechToText } from "../deepgram/speechToText"; -import { StreamAudio } from "../websocket/streamAudio"; -import { DeepgramTextToSpeech } from "../deepgram/textToSpeech"; -import { Context } from "@temporalio/activity"; -import Restack from "@restackio/restack-sdk-ts"; -import WebSocket from "ws"; -import { WebSocketConnect } from "../websocket/connect"; -// import { DeepgramTextToSpeechToWebsocket } from "../deepgram/ttsToWebsocket"; - -export class VoiceAgent { - private ws: WebSocket; - private streamSid: string; - - constructor(streamSid: string) { - this.ws = WebSocketConnect(); - this.streamSid = streamSid; - } - - getWebSocket() { - return this.ws; - } - - async start() { - return new Promise(async (resolve, reject) => { - try { - const textToSpeech = new DeepgramTextToSpeech(); - const restack = new Restack(); - const { runId, workflowId } = Context.current().info.workflowExecution; - const handle = await restack.getHandle(workflowId, runId); - - textToSpeech.generate({ - gptReply: { - partialResponseIndex: null, - partialResponse: - "Hello! My name is Emilia from Apple. You are interested in Airpods, is that correct?", - }, - interactionCount: 0, - }); - - // TODO child workflow and update - // - // await handle.executeUpdate("script", { - // args: [ - // { - // gptReply: { - // partialResponseIndex: null, - // partialResponse: - // "Hello! My name is Asteria from Apple. You are interested in Airpods, is that correct?", - // }, - // interactionCount: 0, - // }, - // ], - // }); - - const streamAudio = new StreamAudio(this.ws); - const speechToText = new DeepgramSpeechToText(); - - streamAudio.setStreamSid(this.streamSid); - - let marks: string[] = []; - let interactionCount = 0; - - this.ws.on("open", () => { - log.debug(`WebSocket connection opened`); - }); - - this.ws.on("message", async (data) => { - const message = JSON.parse(data.toString()); - heartbeat(message); - - if (message.event === "media") { - if (message.streamSid === this.streamSid) { - // TODO child workflow and update - // - // await handle.executeUpdate("media", { - // args: [{ payload: message.media.payload }], - // }); - speechToText.send(message.media.payload); - } else { - log.info( - `Received message for different streamSid: ${message.streamSid}` - ); - } - } - - if ( - message.event === "gptreply" && - message.streamSid === this.streamSid - ) { - const { gptReply, interactionCount } = message.data; - log.info( - `Interaction ${interactionCount}: GPT -> TTS: ${gptReply.partialResponse}` - ); - // TODO child workflow and update - // - // await handle.executeUpdate("script", { - // args: [{ gptReply, interactionCount }], - // }); - textToSpeech.generate({ gptReply, interactionCount }); - } - - if ( - message.event === "sttreply" && - message.streamSid === this.streamSid - ) { - const { text } = message.data; - if (!message.data.text) { - return; - } - log.info(`Interaction ${interactionCount} – STT -> GPT: ${text}`); - await handle.executeUpdate("transcription", { - args: [{ text, interactionCount }], - }); - interactionCount += 1; - } - - if ( - message.event === "ttsreply" && - message.streamSid === this.streamSid - ) { - const { responseIndex, audio, label, interactionCount } = - message.data; - if (!message.data.audio) { - return; - } - streamAudio.buffer(responseIndex, audio); - log.info( - `Audio ${responseIndex} for Interaction ${interactionCount}: TTS -> TWILIO: ${label}` - ); - } - - if (message.event === "mark") { - const label = message.mark.name; - log.info( - `Twilio -> Audio completed mark (${message.sequenceNumber}): ${label}` - ); - marks = marks.filter((m) => m !== message.mark.name); - } - - if (message.event === "stop") { - log.info(`Twilio -> Media stream ${this.streamSid} ended.`); - this.ws.close(); - } - }); - - // TODO child workflow and update - // - - speechToText.on("utterance", async (text) => { - if (marks.length > 0 && text?.length > 5) { - log.info("Twilio -> Interruption, Clearing stream"); - this.ws.send( - JSON.stringify({ - streamSid: this.streamSid, - event: "clear", - }) - ); - } - }); - - speechToText.on("transcription", async (text) => { - if (!text) { - return; - } - log.info(`Interaction ${interactionCount} – STT -> GPT: ${text}`); - await handle.executeUpdate("transcription", { - args: [{ text, interactionCount }], - }); - interactionCount += 1; - }); - - textToSpeech.on( - "speech", - (responseIndex, audio, label, interactionCount) => { - log.info( - `Interaction ${interactionCount}: TTS -> TWILIO: ${label}` - ); - streamAudio.buffer(responseIndex, audio); - } - ); - - streamAudio.on("audiosent", (markLabel) => { - marks.push(markLabel); - }); - - this.ws.on("close", async () => { - log.info(`WebSocket closed for streamSid: ${this.streamSid}`); - await handle.executeUpdate("endSignal", { - args: [], - }); - resolve(); - }); - - this.ws.on("error", (error) => { - log.error(`WebSocket error: ${error}`); - reject(FunctionFailure.nonRetryable(`WebSocket error: ${error}`)); - }); - } catch (error) { - reject( - FunctionFailure.nonRetryable( - `Error connecting to WebSocket: ${error}` - ) - ); - } - }); - } -} - -export async function StartVoiceAgent({ streamSid }: { streamSid: string }) { - try { - const voiceAgent = new VoiceAgent(streamSid); - await voiceAgent.start(); - log.info(`VoiceAgent started for streamSid: ${streamSid}`); - } catch (error) { - throw FunctionFailure.nonRetryable(`Error starting VoiceAgent: ${error}`); - } -} diff --git a/examples/twilio/src/functions/deepgram/index.ts b/examples/twilio/src/functions/deepgram/index.ts deleted file mode 100644 index 954e725..0000000 --- a/examples/twilio/src/functions/deepgram/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./sttToWebsocket"; -export * from "./ttsToWebsocket"; diff --git a/examples/twilio/src/functions/deepgram/speechToText.ts b/examples/twilio/src/functions/deepgram/speechToText.ts index d520f64..db45919 100644 --- a/examples/twilio/src/functions/deepgram/speechToText.ts +++ b/examples/twilio/src/functions/deepgram/speechToText.ts @@ -22,8 +22,8 @@ class DeepgramSpeechToText extends EventEmitter { model: "nova-2", punctuate: true, interim_results: true, - endpointing: 50, - utterance_end_ms: 1000, + endpointing: 500, + utterance_end_ms: 2000, }); this.finalResult = ""; diff --git a/examples/twilio/src/functions/deepgram/sttToWebsocket.ts b/examples/twilio/src/functions/deepgram/sttToWebsocket.ts deleted file mode 100644 index 15d1fe1..0000000 --- a/examples/twilio/src/functions/deepgram/sttToWebsocket.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { DeepgramSpeechToText } from "./speechToText"; -import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; -import { VoiceAgent } from "../agent/voiceAgent"; - -export type DeepgramSpeechToTextInput = { - media: any; - streamSid: string; - marksLength: number; -}; - -export type DeepgramSpeechToTextOutput = { - text: string; -}; - -export async function DeepgramSpeechToTextToWebsocket({ - media, - marksLength, - streamSid, -}: DeepgramSpeechToTextInput): Promise { - try { - const voiceAgent = new VoiceAgent(streamSid); - const ws = voiceAgent.getWebSocket(); - - const speechToText = new DeepgramSpeechToText(); - - speechToText.send(media); - - return new Promise((resolve, reject) => { - speechToText.on("transcription", async (text) => { - log.info(`STT -> Transcription: ${text}`); - if (ws.readyState === ws.OPEN) { - ws.send( - JSON.stringify({ - streamSid, - event: "sttreply", - data: { text }, - }) - ); - } - resolve({ text }); - }); - - speechToText.on("utterance", async (text) => { - log.info(`STT -> Transcription: ${text}`); - if (marksLength > 0 && text?.length > 5) { - log.info("Twilio -> Interruption, Clearing stream"); - ws.send( - JSON.stringify({ - streamSid, - event: "clear", - }) - ); - } - resolve({ text }); - }); - - speechToText.on("error", (error) => { - reject( - FunctionFailure.nonRetryable( - `Error in DeepgramSpeechToText: ${error}` - ) - ); - }); - }); - } catch (error) { - throw FunctionFailure.nonRetryable( - `Error in DeepgramSpeechToText: ${error}` - ); - } -} diff --git a/examples/twilio/src/functions/deepgram/textToSpeech.ts b/examples/twilio/src/functions/deepgram/textToSpeech.ts index 6147a49..33c3feb 100644 --- a/examples/twilio/src/functions/deepgram/textToSpeech.ts +++ b/examples/twilio/src/functions/deepgram/textToSpeech.ts @@ -3,6 +3,7 @@ import { EventEmitter } from "events"; import axios from "axios"; import "dotenv/config"; import { log } from "@restackio/restack-sdk-ts/function"; +import { TrackName } from "../../workflows"; class DeepgramTextToSpeech extends EventEmitter { private nextExpectedIndex: number; @@ -17,9 +18,11 @@ class DeepgramTextToSpeech extends EventEmitter { async generate({ gptReply, interactionCount, + trackName, }: { gptReply: { partialResponseIndex: number | null; partialResponse: any }; interactionCount: number; + trackName: TrackName; }) { const { partialResponseIndex, partialResponse } = gptReply; @@ -27,9 +30,14 @@ class DeepgramTextToSpeech extends EventEmitter { return; } + // Deepgram voice model, see options here: https://developers.deepgram.com/docs/tts-models + + const deepgramModel = + trackName === "agent" ? "aura-asteria-en" : "aura-arcas-en"; + try { const response = await axios.post( - `https://api.deepgram.com/v1/speak?model=${process.env.VOICE_MODEL}&encoding=mulaw&sample_rate=8000&container=none`, + `https://api.deepgram.com/v1/speak?model=${deepgramModel}&encoding=mulaw&sample_rate=8000&container=none`, { text: partialResponse, }, diff --git a/examples/twilio/src/functions/deepgram/ttsToWebsocket.ts b/examples/twilio/src/functions/deepgram/ttsToWebsocket.ts deleted file mode 100644 index e3c61e2..0000000 --- a/examples/twilio/src/functions/deepgram/ttsToWebsocket.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { DeepgramTextToSpeech } from "./textToSpeech"; -import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; -import { VoiceAgent } from "../agent/voiceAgent"; - -export type DeepgramTextToSpeechInput = { - gptReply: { - partialResponseIndex: number; - partialResponse: any; - }; - interactionCount: number; - streamSid: string; -}; - -export type DeepgramTextToSpeechOutput = { - audioLength: number; - interactionCount: number; -}; - -export async function DeepgramTextToSpeechToWebsocket({ - gptReply, - interactionCount, - streamSid, -}: DeepgramTextToSpeechInput): Promise { - try { - const voiceAgent = new VoiceAgent(streamSid); - const ws = voiceAgent.getWebSocket(); - - const textToSpeech = new DeepgramTextToSpeech(); - - return new Promise((resolve, reject) => { - textToSpeech.generate({ gptReply, interactionCount }); - - textToSpeech.on( - "speech", - (responseIndex, audio, label, interactionCount) => { - log.info(`Interaction ${interactionCount}: TTS -> TWILIO: ${label}`); - if (ws.readyState === ws.OPEN) { - ws.send( - JSON.stringify({ - streamSid, - event: "ttsreply", - data: { responseIndex, audio, label, interactionCount }, - }) - ); - } - resolve({ audioLength: audio.length, interactionCount }); - } - ); - - textToSpeech.on("error", (error) => { - reject( - FunctionFailure.nonRetryable( - `Error in DeepgramTextToSpeech: ${error}` - ) - ); - }); - }); - } catch (error) { - throw FunctionFailure.nonRetryable( - `Error in DeepgramTextToSpeech: ${error}` - ); - } -} diff --git a/examples/twilio/src/functions/index.ts b/examples/twilio/src/functions/index.ts index 5eefe8d..66c6cca 100644 --- a/examples/twilio/src/functions/index.ts +++ b/examples/twilio/src/functions/index.ts @@ -1,5 +1 @@ -export * from "./websocket"; export * from "./twilio"; -export * from "./agent"; -export * from "./openai"; -export * from "./deepgram"; diff --git a/examples/twilio/src/functions/openai/chat.ts b/examples/twilio/src/functions/openai/chat.ts index e942c16..6501145 100644 --- a/examples/twilio/src/functions/openai/chat.ts +++ b/examples/twilio/src/functions/openai/chat.ts @@ -2,16 +2,16 @@ import { EventEmitter } from "events"; import OpenAI from "openai"; import { tools } from "./tools/function-manifest"; import { log } from "@restackio/restack-sdk-ts/function"; -import { prompt } from "./prompt"; +import { agentPrompt } from "./prompt"; const availableFunctions: { [key: string]: Function } = {}; tools?.forEach((tool) => { const functionName = tool.function.name; - availableFunctions[functionName] = require(`../functions/${functionName}`); + availableFunctions[functionName] = require(`./tools/${functionName}`); }); -interface GptReply { +export interface GptReply { partialResponseIndex: number | null; partialResponse: string; } @@ -24,14 +24,14 @@ class OpenaiChat extends EventEmitter { constructor() { super(); this.openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); - (this.userContext = prompt), (this.partialResponseIndex = 0); + (this.userContext = agentPrompt), (this.partialResponseIndex = 0); } - setCallSid(callSid: string) { + setCallSid({ callSid }: { callSid: string }) { this.userContext.push({ role: "system", content: `callSid: ${callSid}` }); } - validateFunctionArgs(args: string) { + validateFunctionArgs({ args }: { args: string }) { try { return JSON.parse(args); } catch (error) { @@ -46,7 +46,15 @@ class OpenaiChat extends EventEmitter { } } - updateUserContext(name: string, role: string, text: string) { + updateUserContext({ + name, + role, + text, + }: { + name: string; + role: string; + text: string; + }) { if (name !== "user") { this.userContext.push({ role: role, name: name, content: text }); } else { @@ -54,16 +62,20 @@ class OpenaiChat extends EventEmitter { } } - async completion( - text: string, - interactionCount: number, + async completion({ + text, + interactionCount, role = "user", - name = "user" - ) { - this.updateUserContext(name, role, text); - + name = "user", + }: { + text: string; + interactionCount: number; + role?: string; + name?: string; + }) { + this.updateUserContext({ name, role, text }); const stream = await this.openai.chat.completions.create({ - model: "gpt-4o", + model: "gpt-4o-mini", messages: this.userContext, tools: tools, stream: true, @@ -74,11 +86,15 @@ class OpenaiChat extends EventEmitter { let functionName = ""; let functionArgs = ""; let finishReason = ""; + const toolsCalled: string[] = []; const collectToolInformation = (deltas: any) => { let name = deltas.tool_calls[0]?.function?.name || ""; if (name != "") { functionName = name; + if (!toolsCalled.includes(name)) { + toolsCalled.push(name); + } } let args = deltas.tool_calls[0]?.function?.arguments || ""; if (args != "") { @@ -97,7 +113,7 @@ class OpenaiChat extends EventEmitter { if (finishReason === "tool_calls") { const functionToCall = availableFunctions[functionName]; - const validatedArgs = this.validateFunctionArgs(functionArgs); + const validatedArgs = this.validateFunctionArgs({ args: functionArgs }); const toolData = tools.find( (tool) => tool.function.name === functionName @@ -115,28 +131,38 @@ class OpenaiChat extends EventEmitter { let functionResponse = await functionToCall(validatedArgs); - this.updateUserContext(functionName, "function", functionResponse); + this.updateUserContext({ + name: functionName, + role: "function", + text: functionResponse, + }); - await this.completion( - functionResponse, + await this.completion({ + text: functionResponse, interactionCount, - "function", - functionName - ); + role: "function", + name: functionName, + }); } else { completeResponse += content; partialResponse += content; + if (content.trim().slice(-1) === "•" || finishReason === "stop") { const gptReply: GptReply = { partialResponseIndex: this.partialResponseIndex, partialResponse, }; - this.emit("gptreply", gptReply, interactionCount); this.partialResponseIndex++; partialResponse = ""; } } + + // Check if the stream is over + if (finishReason === "stop") { + this.emit("end", { completeResponse, interactionCount, toolsCalled }); + break; + } } this.userContext.push({ role: "assistant", content: completeResponse }); diff --git a/examples/twilio/src/functions/openai/index.ts b/examples/twilio/src/functions/openai/index.ts deleted file mode 100644 index cc00019..0000000 --- a/examples/twilio/src/functions/openai/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./toWebsocket"; diff --git a/examples/twilio/src/functions/openai/prompt.ts b/examples/twilio/src/functions/openai/prompt.ts index fd50a6c..b14e1f6 100644 --- a/examples/twilio/src/functions/openai/prompt.ts +++ b/examples/twilio/src/functions/openai/prompt.ts @@ -1,8 +1,7 @@ -export const prompt = [ +export const agentPrompt = [ { role: "system", content: `You are an outbound sales representative selling Apple Airpods. - Invent a character for yourself. You have a youthful and cheery personality. Keep your responses as brief as possible but make every attempt to keep the caller on the phone without being rude. Don't ask more than 1 question at a time. @@ -15,6 +14,7 @@ export const prompt = [ This reponse is used by text to speech, make it as natural as possible by using filler words like 'um' and 'uh'. A comma (,) or a period (.) present in your text will be treated as a very short pause. If you need to insert a longer pause in your audio, use the ellipsis: ... + You must add a '•' symbol every 5 to 10 words at natural pauses where your response can be split for text to speech. `, }, { @@ -23,3 +23,19 @@ export const prompt = [ "Hello! I understand you're looking for a pair of AirPods, is that correct?", }, ]; + +export const testUserPrompt = [ + { + role: "system", + content: `An outbound sales representative selling Apple Airpods is calling you. + Pick a random personality. + Keep your responses as brief as possible but make every attempt to confuse the sales representative. + Don't ask more than 1 question at a time. + Ask for clarification if the sales rep request is ambiguous. + This reponse is used by text to speech, make it as natural as possible by using filler words like 'um' and 'uh'. + A comma (,) or a period (.) present in your text will be treated as a very short pause. + If you need to insert a longer pause in your audio, use the ellipsis: ... + You must add a '•' symbol every 5 to 10 words at natural pauses where your response can be split for text to speech. + `, + }, +]; diff --git a/examples/twilio/src/functions/openai/toWebsocket.ts b/examples/twilio/src/functions/openai/toWebsocket.ts deleted file mode 100644 index 67c45c7..0000000 --- a/examples/twilio/src/functions/openai/toWebsocket.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { OpenaiChat } from "./chat"; -import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; -import { VoiceAgent } from "../agent/voiceAgent"; // Import VoiceAgent - -export type OpenaiChatInput = { - text: string; - interactionCount: number; - streamSid: string; -}; - -export type OpenaiChatOutput = { - gptReply: string; - interactionCount: number; -}; - -export async function OpenaiToWebsocket({ - text, - interactionCount, - streamSid, -}: OpenaiChatInput): Promise { - try { - const voiceAgent = new VoiceAgent(streamSid); - const ws = voiceAgent.getWebSocket(); - - const openaiChat = new OpenaiChat(); - openaiChat.setCallSid(streamSid); - - return new Promise((resolve, reject) => { - openaiChat.completion(text, interactionCount); - - openaiChat.on("gptreply", async (gptReply, interactionCount) => { - log.info( - `Interaction ${interactionCount}: GPT -> TTS: ${gptReply.partialResponse}` - ); - if (ws.readyState === ws.OPEN) { - ws.send( - JSON.stringify({ - streamSid, - event: "gptreply", - data: { gptReply, interactionCount }, - }) - ); - } - resolve({ gptReply, interactionCount }); - }); - - openaiChat.on("error", (error) => { - reject( - FunctionFailure.nonRetryable(`Error in openaiChatActivity: ${error}`) - ); - }); - }); - } catch (error) { - throw FunctionFailure.nonRetryable(`Error in openaiChatActivity: ${error}`); - } -} diff --git a/examples/twilio/src/functions/twilio/twilioCall.ts b/examples/twilio/src/functions/twilio/twilioCall.ts index 8fc0e0f..976534d 100644 --- a/examples/twilio/src/functions/twilio/twilioCall.ts +++ b/examples/twilio/src/functions/twilio/twilioCall.ts @@ -6,7 +6,7 @@ interface Output { sid: string; } -export async function TwilioCall(): Promise { +export async function twilioCall(): Promise { const accountSid = process.env.TWILIO_ACCOUNT_SID; const authToken = process.env.TWILIO_AUTH_TOKEN; diff --git a/examples/twilio/src/functions/websocket/connect.ts b/examples/twilio/src/functions/websocket/connect.ts deleted file mode 100644 index e51fc28..0000000 --- a/examples/twilio/src/functions/websocket/connect.ts +++ /dev/null @@ -1,17 +0,0 @@ -import WebSocket from "ws"; -import dotenv from "dotenv"; -import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; - -dotenv.config(); - -export function WebSocketConnect(): WebSocket { - try { - const websocketAddress = `wss://${process.env.SERVER}/connection`; - const ws = new WebSocket(websocketAddress); - return ws; - } catch (error) { - throw FunctionFailure.nonRetryable( - `Error connecting to WebSocket: ${error}` - ); - } -} diff --git a/examples/twilio/src/functions/websocket/emit.ts b/examples/twilio/src/functions/websocket/emit.ts deleted file mode 100644 index 874ce75..0000000 --- a/examples/twilio/src/functions/websocket/emit.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { OpenaiChatOutput } from "../openai/toWebsocket"; -import { WebSocketConnect } from "./connect"; -import { log, FunctionFailure } from "@restackio/restack-sdk-ts/function"; - -export async function emitToWebSocket({ - event, - streamSid, - data, -}: { - event: string; - streamSid: string; - data: OpenaiChatOutput; -}) { - try { - const ws = WebSocketConnect(); - - ws.send(JSON.stringify({ streamSid, event, data })); - log.info(`Emitting to WebSocket: ${event}`, { streamSid, data }); - } catch (error) { - throw FunctionFailure.nonRetryable(`Error emitting to WebSocket: ${error}`); - } -} diff --git a/examples/twilio/src/functions/websocket/index.ts b/examples/twilio/src/functions/websocket/index.ts deleted file mode 100644 index 2e22528..0000000 --- a/examples/twilio/src/functions/websocket/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./connect"; diff --git a/examples/twilio/src/functions/websocket/streamAudio.ts b/examples/twilio/src/functions/websocket/streamAudio.ts deleted file mode 100644 index 0819abc..0000000 --- a/examples/twilio/src/functions/websocket/streamAudio.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { EventEmitter } from "events"; -import { v4 as uuidv4 } from "uuid"; - -class StreamAudio extends EventEmitter { - private ws: any; - private expectedAudioIndex: number; - private audioBuffer: { [key: number]: string }; - private streamSid: string; - - constructor(websocket: any) { - super(); - this.ws = websocket; - this.expectedAudioIndex = 0; - this.audioBuffer = {}; - this.streamSid = ""; - } - - setStreamSid(streamSid: string) { - this.streamSid = streamSid; - } - - buffer(index: number | null, audio: string) { - if (index === null) { - this.sendAudio(audio); - } else if (index === this.expectedAudioIndex) { - this.sendAudio(audio); - this.expectedAudioIndex++; - - while ( - Object.prototype.hasOwnProperty.call( - this.audioBuffer, - this.expectedAudioIndex - ) - ) { - const bufferedAudio = this.audioBuffer[this.expectedAudioIndex]; - this.sendAudio(bufferedAudio); - this.expectedAudioIndex++; - } - } else { - this.audioBuffer[index] = audio; - } - } - - sendAudio(audio: string) { - this.ws.send( - JSON.stringify({ - streamSid: this.streamSid, - event: "media", - media: { - payload: audio, - }, - }) - ); - const markLabel = uuidv4(); - this.ws.send( - JSON.stringify({ - streamSid: this.streamSid, - event: "mark", - mark: { - name: markLabel, - }, - }) - ); - this.emit("audiosent", markLabel); - } -} - -export { StreamAudio }; diff --git a/examples/twilio/src/server.ts b/examples/twilio/src/server.ts index e6b4020..3feb8db 100644 --- a/examples/twilio/src/server.ts +++ b/examples/twilio/src/server.ts @@ -4,21 +4,49 @@ import { createServer } from "http"; import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; import Restack from "@restackio/restack-sdk-ts"; -import { twilioAgentWorkflow } from "./workflows"; +import { twilioStreamWorkflow } from "./workflows/twilioStream"; +// import cors from "cors"; const app = express(); const server = createServer(app); const wss = new WebSocketServer({ server }); -const PORT = process.env.PORT || 3000; +const PORT = process.env.PORT || 4000; export const websocketAddress = `wss://${process.env.SERVER}/connection`; +// app.use(cors()); +app.use(express.json()); + +app.post("/start", async (req, res) => { + const { streamSid } = req.body; + + if (!streamSid) { + return res.status(400).send({ error: "streamSid is required" }); + } + + try { + const restack = new Restack(); + + const workflowRunId = await restack.schedule({ + workflowName: "twilioAgentWorkflow", + workflowId: `${Date.now()}-twilioAgentWorkflow`, + input: { streamSid }, + }); + + res.status(200).send({ workflowRunId, websocketAddress }); + } catch (error) { + console.error("Error scheduling workflow:", error); + res.status(500).send({ error: "Failed to schedule workflow" }); + } +}); + app.post("/incoming", async (req, res) => { try { - const workflowId = `${Date.now()}-${twilioAgentWorkflow.name}`; + const workflowId = `${Date.now()}-${twilioStreamWorkflow.name}`; const restack = new Restack(); const runId = await restack.schedule({ - workflowName: twilioAgentWorkflow.name, + workflowName: twilioStreamWorkflow.name, workflowId, + input: {}, }); console.log(`Started workflow with runId: ${runId}`); @@ -49,7 +77,7 @@ wss.on("connection", (ws) => { ws.on("error", console.error); ws.on("message", async function message(data, isBinary) { - // allows broadcast to all clients except this one (otherwwise echo) + // allows broadcast to all clients except this one (otherwise echo) wss.clients.forEach(function each(client) { if (client !== ws && client.readyState === WebSocket.OPEN) { @@ -66,15 +94,15 @@ wss.on("connection", (ws) => { workflowId = message.start.customParameters.workflowId; if (runId) { try { - const handle = await restack.getHandle(workflowId, runId); - // const handle = client.workflow.getHandle(workflowId, runId); - if (streamSid) { - await handle.executeUpdate("streamSid", { - args: [streamSid], + await restack.update({ + workflowId, + runId, + updateName: "streamInfo", + input: { streamSid }, }); console.log( - `Signaled workflow ${workflowId} runId ${runId} with Twilio streamId: ${streamSid}` + `Signaled workflow ${workflowId} runId ${runId} with Twilio streamSid: ${streamSid}` ); } } catch (error) { @@ -86,10 +114,7 @@ wss.on("connection", (ws) => { if (message.event === "stop") { console.log(`Twilio -> Media stream ${streamSid} ended.`); if (runId) { - const handle = await restack.getHandle(workflowId, runId); - handle.executeUpdate("endSignal", { - args: [], - }); + restack.update({ workflowId, runId, updateName: "streamEnd" }); } } }); @@ -109,4 +134,5 @@ process.on("SIGINT", shutdown); server.listen(PORT, () => { console.log(`Server running on port ${PORT}`); + console.log(`WebSocket address: ${websocketAddress}`); }); diff --git a/examples/twilio/src/streams/answer.ts b/examples/twilio/src/streams/answer.ts new file mode 100644 index 0000000..e32efe2 --- /dev/null +++ b/examples/twilio/src/streams/answer.ts @@ -0,0 +1,56 @@ +import { log } from "@restackio/restack-sdk-ts/function"; +import { webSocketConnect } from "./connect"; +import { OpenaiChat } from "../functions/openai/chat"; +import { Question } from "../workflows/twilioStream"; + +type AnswerOutput = { + streamSid: string; + completeResponse: string; + interactionCount: number; + toolsCalled: string[]; +}; + +export async function questionAnswer({ + streamSid, + text, + interactionCount, +}: Question): Promise { + const ws = await webSocketConnect(); + + return new Promise((resolve) => { + const openaiChat = new OpenaiChat(); + + openaiChat.setCallSid({ callSid: streamSid }); + + openaiChat.completion({ + text, + interactionCount, + }); + + openaiChat.on("gptreply", async (gptReply, interactionCount) => { + const event = { + streamSid, + event: "answer", + data: { + gptReply, + interactionCount, + trackName: "agent", + }, + }; + ws.send(JSON.stringify(event)); + log.info(`Interaction ${interactionCount}: OpenAI:`, event); + }); + + openaiChat.on( + "end", + async ({ completeResponse, interactionCount, toolsCalled }) => { + resolve({ + streamSid, + completeResponse, + interactionCount, + toolsCalled, + }); + } + ); + }); +} diff --git a/examples/twilio/src/streams/audioToText.ts b/examples/twilio/src/streams/audioToText.ts new file mode 100644 index 0000000..f728877 --- /dev/null +++ b/examples/twilio/src/streams/audioToText.ts @@ -0,0 +1,83 @@ +import { + log, + FunctionFailure, + heartbeat, +} from "@restackio/restack-sdk-ts/function"; +import { webSocketConnect } from "./connect"; +import { DeepgramSpeechToText } from "../functions/deepgram/speechToText"; +import { TrackName } from "../workflows/twilioStream"; + +export type StreamInput = { + streamSid: string; + trackName?: TrackName; +}; + +export async function streamAudioToText({ streamSid, trackName }: StreamInput) { + return new Promise(async (resolve, reject) => { + const ws = await webSocketConnect(); + + const speechToText = new DeepgramSpeechToText(); + let marks: string[] = []; + let interactionCount = 0; + + ws.on("message", (data) => { + const message = JSON.parse(data.toString()); + if (message.event === "media") { + if (message.streamSid === streamSid) { + if (message.media.track === "inbound") { + speechToText.send(message.media.payload); + } + } + } + if (message.event === "mark") { + const label = message.mark.name; + marks = marks.filter((m) => m !== message.mark.name); + log.info("Twilio -> Audio completed mark:", { + label, + sequenceNumber: message.sequenceNumber, + }); + } + + if (message.event === "stop") { + resolve(); + } + if (message.streamSid === streamSid) heartbeat(message.streamSid); + }); + + speechToText.on("transcription", async (text) => { + if (!text) { + return; + } + const event = { + streamSid, + event: "question", + data: { text, interactionCount, trackName }, + }; + ws.send(JSON.stringify(event)); + log.info(`Audio -> Transcription: ${event}`); + interactionCount += 1; + }); + + speechToText.on("utterance", async (text) => { + // This is a bit of a hack to filter out empty utterances + if (marks.length > 0 && text?.length > 5) { + const event = { + streamSid, + event: "clear", + }; + ws.send(JSON.stringify(event)); + log.info("Twilio -> Interruption, Clearing stream", event); + } + }); + + speechToText.on("error", (error) => { + reject( + FunctionFailure.nonRetryable(`Error in DeepgramSpeechToText: ${error}`) + ); + }); + + ws.on("close", () => { + resolve(); + }); + }); +} diff --git a/examples/twilio/src/streams/connect.ts b/examples/twilio/src/streams/connect.ts new file mode 100644 index 0000000..8db7d78 --- /dev/null +++ b/examples/twilio/src/streams/connect.ts @@ -0,0 +1,28 @@ +import WebSocket from "ws"; +import "dotenv/config"; +import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; + +export function webSocketConnect(): Promise { + return new Promise((resolve, reject) => { + try { + const websocketAddress = `wss://${process.env.SERVER}/connection`; + const ws = new WebSocket(websocketAddress); + + ws.on("open", () => { + resolve(ws); + }); + + ws.on("error", (error) => { + reject( + FunctionFailure.nonRetryable( + `Error connecting to WebSocket: ${error}` + ) + ); + }); + } catch (error) { + reject( + FunctionFailure.nonRetryable(`Error connecting to WebSocket: ${error}`) + ); + } + }); +} diff --git a/examples/twilio/src/streams/index.ts b/examples/twilio/src/streams/index.ts new file mode 100644 index 0000000..71e4297 --- /dev/null +++ b/examples/twilio/src/streams/index.ts @@ -0,0 +1,4 @@ +export * from "./audioToText"; +export * from "./question"; +export * from "./textToAudio"; +export * from "./answer"; diff --git a/examples/twilio/src/streams/question.ts b/examples/twilio/src/streams/question.ts new file mode 100644 index 0000000..2a5092c --- /dev/null +++ b/examples/twilio/src/streams/question.ts @@ -0,0 +1,48 @@ +import { + log, + heartbeat, + currentWorkflow, +} from "@restackio/restack-sdk-ts/function"; +import { webSocketConnect } from "./connect"; +import { OpenaiChat } from "../functions/openai/chat"; +import { StreamInput } from "./audioToText"; +import Restack from "@restackio/restack-sdk-ts"; + +export async function streamQuestion({ streamSid }: StreamInput) { + return new Promise(async (resolve, reject) => { + const ws = await webSocketConnect(); + + const openaiChat = new OpenaiChat(); + openaiChat.setCallSid({ callSid: streamSid }); + + ws.on("message", (data) => { + const message = JSON.parse(data.toString()); + if (message.event === "question") { + if (message.streamSid === streamSid) { + const { text, interactionCount, trackName } = message.data; + log.info("question", { text, interactionCount, trackName }); + const restack = new Restack(); + const { workflowId, runId } = currentWorkflow().workflowExecution; + restack.update({ + workflowId, + runId, + updateName: "question", + input: { + streamSid, + text, + interactionCount, + }, + }); + } + } + if (message.event === "stop") { + resolve(); + } + if (message.streamSid === streamSid) heartbeat(message.streamSid); + }); + + ws.on("close", () => { + resolve(); + }); + }); +} diff --git a/examples/twilio/src/streams/textToAudio.ts b/examples/twilio/src/streams/textToAudio.ts new file mode 100644 index 0000000..654069f --- /dev/null +++ b/examples/twilio/src/streams/textToAudio.ts @@ -0,0 +1,101 @@ +import { heartbeat, log } from "@restackio/restack-sdk-ts/function"; +import { webSocketConnect } from "./connect"; +import { DeepgramTextToSpeech } from "../functions/deepgram/textToSpeech"; +import { v4 as uuidv4 } from "uuid"; +import { StreamInput } from "./audioToText"; + +export async function streamTextToAudio({ streamSid, trackName }: StreamInput) { + return new Promise(async (resolve, reject) => { + const ws = await webSocketConnect(); + + const textToSpeech = new DeepgramTextToSpeech(); + + textToSpeech.generate({ + gptReply: { + partialResponseIndex: null, + partialResponse: + "Hello! My name is Emilia from Apple. You are interested in Airpods, is that correct?", + }, + interactionCount: 0, + trackName: "agent", + }); + + ws.on("message", (data) => { + const message = JSON.parse(data.toString()); + if (message.event === "answer") { + if (message.streamSid === streamSid) { + const { gptReply, interactionCount, trackName } = message.data; + log.info("TextToAudio -> gptReply:", gptReply); + textToSpeech.generate({ + gptReply, + interactionCount, + trackName, + }); + } + } + if (message.event === "stop") { + resolve(); + } + if (message.streamSid === streamSid) heartbeat(message.streamSid); + }); + + ws.on("close", () => { + resolve(); + }); + + textToSpeech.on("speech", (partialResponseIndex, base64String) => { + log.info("TextToAudio -> speech", { + partialResponseIndex, + audioLength: base64String.length, + }); + bufferAudio(partialResponseIndex, base64String); + }); + + function bufferAudio(index: number, audio: string) { + let expectedAudioIndex = 0; + + const audioBuffer: { [key: number]: string } = {}; + + // Escape hatch for intro message, which doesn't have an index + if (index === null) { + sendAudio(audio); + } else if (index === expectedAudioIndex) { + sendAudio(audio); + expectedAudioIndex++; + + while ( + Object.prototype.hasOwnProperty.call(audioBuffer, expectedAudioIndex) + ) { + const bufferedAudio = audioBuffer[expectedAudioIndex]; + sendAudio(bufferedAudio); + expectedAudioIndex++; + } + } else { + audioBuffer[index] = audio; + } + } + + function sendAudio(audio: string) { + const audioEvent = { + streamSid: streamSid, + event: "media", + media: { + payload: audio, + }, + }; + ws.send(JSON.stringify(audioEvent)); + // When the media completes you will receive a `mark` message with the label + const markLabel = uuidv4(); + ws.send( + JSON.stringify({ + streamSid: streamSid, + event: "mark", + mark: { + name: markLabel, + }, + }) + ); + ws.emit("audiosent", markLabel); + } + }); +} diff --git a/examples/twilio/src/worker.ts b/examples/twilio/src/worker.ts index a43bba6..42629eb 100644 --- a/examples/twilio/src/worker.ts +++ b/examples/twilio/src/worker.ts @@ -1,11 +1,11 @@ import Restack from "@restackio/restack-sdk-ts"; +import { twilioCall } from "./functions"; import { - StartVoiceAgent, - TwilioCall, - OpenaiToWebsocket, - DeepgramTextToSpeechToWebsocket, - DeepgramSpeechToTextToWebsocket, -} from "./functions"; + streamAudioToText, + streamTextToAudio, + streamQuestion, + questionAnswer, +} from "./streams"; async function main() { const workflowsPath = require.resolve("./workflows"); @@ -17,24 +17,23 @@ async function main() { restack.pod({ name: "restack", workflowsPath, - functions: { StartVoiceAgent }, }), restack.pod({ name: "twilio", workflowsPath, - functions: { TwilioCall }, + functions: { twilioCall }, }), restack.pod({ name: "openai", workflowsPath, - functions: { OpenaiToWebsocket }, + functions: { streamQuestion, questionAnswer }, }), restack.pod({ name: "deepgram", workflowsPath, functions: { - DeepgramTextToSpeechToWebsocket, - DeepgramSpeechToTextToWebsocket, + streamAudioToText, + streamTextToAudio, }, }), ]); diff --git a/examples/twilio/src/workflows/index.ts b/examples/twilio/src/workflows/index.ts index a49509a..4a9842d 100644 --- a/examples/twilio/src/workflows/index.ts +++ b/examples/twilio/src/workflows/index.ts @@ -1,2 +1,2 @@ -export * from "./twilioAgent"; export * from "./twilioCall"; +export * from "./twilioStream"; diff --git a/examples/twilio/src/workflows/twilioAgent.ts b/examples/twilio/src/workflows/twilioAgent.ts deleted file mode 100644 index a637271..0000000 --- a/examples/twilio/src/workflows/twilioAgent.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { - sleep, - step, - log, - workflowInfo, - defineUpdate, - setHandler, -} from "@restackio/restack-sdk-ts/workflow"; -import * as functions from "../functions"; - -type Transcription = { - text: string; - interactionCount: number; -}; - -type Media = { - media: any; - marksLength: number; -}; - -type Script = { - gptReply: any; - interactionCount: number; -}; - -const streamSid = defineUpdate("streamSid"); - -const transcription = defineUpdate( - "transcription" -); -// const media = defineUpdate("media"); -const script = defineUpdate("script"); - -const endSignal = defineUpdate("endSignal"); - -export async function twilioAgentWorkflow() { - let twilioStreamSid: string; - const runId = workflowInfo().runId; - log.info(`Workflow started with runId: ${runId}`); - - setHandler(streamSid, async (streamSid: string) => { - log.info(`Workflow update with streamSid: ${streamSid}`); - const ws = step({ - podName: `restack`, - scheduleToCloseTimeout: "30 minutes", - }).StartVoiceAgent({ streamSid }); - log.info(`ws: ${ws}`); - twilioStreamSid = streamSid; - return streamSid; - }); - - setHandler( - transcription, - async ({ text, interactionCount }: Transcription) => { - log.info(`Received transcription: ${text}`); - await step({ - podName: `openai`, - scheduleToCloseTimeout: "1 minute", - }).OpenaiToWebsocket({ - text, - interactionCount, - streamSid: twilioStreamSid, - }); - return { text, interactionCount }; - } - ); - - // setHandler(media, async ({ media, marksLength }: Media) => { - // log.info(`Received media: ${media} at ${marksLength}`); - // await step({ - // podName: `deepgram`, - // scheduleToCloseTimeout: "1 minute", - // }).DeepgramSpeechToTextToWebsocket({ - // media, - // marksLength, - // streamSid: twilioStreamSid, - // }); - // return { media, marksLength }; - // }); - - setHandler(script, async ({ gptReply, interactionCount }: Script) => { - log.info(`Received script: ${gptReply} at ${interactionCount}`); - await step({ - podName: `deepgram`, - scheduleToCloseTimeout: "1 minute", - }).DeepgramTextToSpeechToWebsocket({ - gptReply, - interactionCount, - streamSid: twilioStreamSid, - }); - return { gptReply, interactionCount }; - }); - - // Handle end signal - let ended = false; - setHandler(endSignal, async () => { - log.info(`endSignal received`); - ended = true; - }); - - // Keep the workflow running until it receives the end signal - while (!ended) { - await sleep(600000); // Sleep for 10 minutes - } - - console.log(`Workflow ending with runId: ${runId}`); -} diff --git a/examples/twilio/src/workflows/twilioCall.ts b/examples/twilio/src/workflows/twilioCall.ts index 1aa6beb..aaf66cf 100644 --- a/examples/twilio/src/workflows/twilioCall.ts +++ b/examples/twilio/src/workflows/twilioCall.ts @@ -9,7 +9,7 @@ export async function twilioCallWorkflow(): Promise { const { sid } = await step({ podName: `twilio`, scheduleToCloseTimeout: "1 minute", - }).TwilioCall(); + }).twilioCall(); if (!sid) { throw new Error("Not able to create Twilio call"); diff --git a/examples/twilio/src/workflows/twilioStream.ts b/examples/twilio/src/workflows/twilioStream.ts new file mode 100644 index 0000000..2d8c67e --- /dev/null +++ b/examples/twilio/src/workflows/twilioStream.ts @@ -0,0 +1,76 @@ +import { + sleep, + step, + log, + workflowInfo, + defineUpdate, + onUpdate, +} from "@restackio/restack-sdk-ts/workflow"; +import * as streams from "../streams"; + +export type TrackName = "user" | "agent" | "testUser"; + +type StreamInfo = { + streamSid: string; +}; + +export type Question = { + streamSid: string; + text: string; + interactionCount: number; +}; + +const streamInfo = defineUpdate("streamInfo"); +const question = defineUpdate("question"); +const streamEnd = defineUpdate("streamEnd"); + +export async function twilioStreamWorkflow() { + let currentstreamSid: string; + const runId = workflowInfo().runId; + log.info(`Workflow started with runId: ${runId}`); + + onUpdate(streamInfo, async ({ streamSid }: StreamInfo) => { + log.info(`Workflow update with streamSid: ${streamSid}`); + step({ + podName: `deepgram`, + scheduleToCloseTimeout: "30 minutes", + }).streamAudioToText({ streamSid, trackName: "user" }); + step({ + podName: `openai`, + scheduleToCloseTimeout: "30 minutes", + }).streamQuestion({ streamSid }); + step({ + podName: `deepgram`, + scheduleToCloseTimeout: "30 minutes", + }).streamTextToAudio({ streamSid, trackName: "agent" }); + currentstreamSid = streamSid; + return { streamSid }; + }); + + onUpdate( + question, + async ({ streamSid, text, interactionCount }: Question) => { + log.info(`Workflow update with question: ${streamSid}`); + await step({ + podName: `openai`, + scheduleToCloseTimeout: "2 minutes", + }).questionAnswer({ streamSid, text, interactionCount }); + return { streamSid, text, interactionCount }; + } + ); + + let ended = false; + onUpdate(streamEnd, async () => { + log.info(`streamEnd received`); + ended = true; + }); + + // Keep the workflow running until it receives streamEnd + while (!ended) { + await sleep(600000); // Sleep for 10 minutes + } + + console.log(`Workflow ending with runId: ${runId}`); + + return; +} From 310a4ac36e29f8469aebc0caddc928c24ba76ee6 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 7 Aug 2024 02:03:40 +0200 Subject: [PATCH 014/122] tools Former-commit-id: 00e8812e33525be44cadbcd8f4c67a11ea44eeb9 Former-commit-id: 2ee0ef6b5d7cc9ced5dc0f7232decaf2dc3e5ee7 --- examples/twilio/src/functions/openai/chat.ts | 126 +++++++++--------- .../twilio/src/functions/openai/prompt.ts | 3 +- ...unction-manifest.ts => toolDefinitions.ts} | 41 +----- examples/twilio/src/streams/audioToText.ts | 2 +- examples/twilio/src/streams/question.ts | 3 +- examples/twilio/src/streams/textToAudio.ts | 2 +- examples/twilio/src/workflows/twilioStream.ts | 9 +- 7 files changed, 77 insertions(+), 109 deletions(-) rename examples/twilio/src/functions/openai/tools/{function-manifest.ts => toolDefinitions.ts} (62%) diff --git a/examples/twilio/src/functions/openai/chat.ts b/examples/twilio/src/functions/openai/chat.ts index 6501145..f31c07b 100644 --- a/examples/twilio/src/functions/openai/chat.ts +++ b/examples/twilio/src/functions/openai/chat.ts @@ -1,15 +1,17 @@ import { EventEmitter } from "events"; import OpenAI from "openai"; -import { tools } from "./tools/function-manifest"; +import { toolDefinitions } from "./tools/toolDefinitions"; import { log } from "@restackio/restack-sdk-ts/function"; import { agentPrompt } from "./prompt"; +import checkInventory from "./tools/checkInventory"; +import checkPrice from "./tools/checkPrice"; +import placeOrder from "./tools/placeOrder"; -const availableFunctions: { [key: string]: Function } = {}; - -tools?.forEach((tool) => { - const functionName = tool.function.name; - availableFunctions[functionName] = require(`./tools/${functionName}`); -}); +const availableFunctions: { [key: string]: Function } = { + checkInventory, + checkPrice, + placeOrder, +}; export interface GptReply { partialResponseIndex: number | null; @@ -18,13 +20,17 @@ export interface GptReply { class OpenaiChat extends EventEmitter { private userContext: any[]; - private openai: any; + private openai: OpenAI; private partialResponseIndex: number; + private functionName: string; + private functionArgs: string; constructor() { super(); this.openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); (this.userContext = agentPrompt), (this.partialResponseIndex = 0); + this.functionName = ""; + this.functionArgs = ""; } setCallSid({ callSid }: { callSid: string }) { @@ -74,75 +80,75 @@ class OpenaiChat extends EventEmitter { name?: string; }) { this.updateUserContext({ name, role, text }); + const stream = await this.openai.chat.completions.create({ model: "gpt-4o-mini", messages: this.userContext, - tools: tools, + tools: toolDefinitions, stream: true, }); let completeResponse = ""; let partialResponse = ""; - let functionName = ""; - let functionArgs = ""; let finishReason = ""; - const toolsCalled: string[] = []; - - const collectToolInformation = (deltas: any) => { - let name = deltas.tool_calls[0]?.function?.name || ""; - if (name != "") { - functionName = name; - if (!toolsCalled.includes(name)) { - toolsCalled.push(name); - } - } - let args = deltas.tool_calls[0]?.function?.arguments || ""; - if (args != "") { - functionArgs += args; - } - }; + let toolsCalled: string[] = []; for await (const chunk of stream) { let content = chunk.choices[0]?.delta?.content || ""; - let deltas = chunk.choices[0].delta; - finishReason = chunk.choices[0].finish_reason; + let deltas = chunk.choices[0]?.delta; + finishReason = chunk.choices[0].finish_reason || ""; + // Accumulate function name and arguments if function_call if (deltas.tool_calls) { - collectToolInformation(deltas); + const functionCall = deltas.tool_calls[0]; + this.functionName += functionCall.function?.name || ""; + this.functionArgs += functionCall.function?.arguments || ""; } if (finishReason === "tool_calls") { - const functionToCall = availableFunctions[functionName]; - const validatedArgs = this.validateFunctionArgs({ args: functionArgs }); - - const toolData = tools.find( - (tool) => tool.function.name === functionName - ); - const say = toolData?.function.say; - - this.emit( - "gptreply", - { - partialResponseIndex: null, - partialResponse: say, - }, - interactionCount - ); - - let functionResponse = await functionToCall(validatedArgs); - - this.updateUserContext({ - name: functionName, - role: "function", - text: functionResponse, - }); - - await this.completion({ - text: functionResponse, - interactionCount, - role: "function", - name: functionName, - }); + const functionToCall = availableFunctions[this.functionName]; + if (typeof functionToCall === "function") { + const validatedArgs = this.validateFunctionArgs({ + args: this.functionArgs, + }); + + const toolData = toolDefinitions.find( + (tool) => tool.function.name === this.functionName + ); + + this.emit( + "gptreply", + { + partialResponseIndex: null, + partialResponse: `let me ${toolData?.function.name}`, + }, + interactionCount + ); + + let functionResponse = await functionToCall(validatedArgs); + + this.updateUserContext({ + name: this.functionName, + role: "function", + text: functionResponse, + }); + + await this.completion({ + text: functionResponse, + interactionCount, + role: "function", + name: this.functionName, + }); + + toolsCalled.push(this.functionName); + + this.functionName = ""; + this.functionArgs = ""; + } else { + log.error( + `Function ${this.functionName} not found in availableFunctions.` + ); + } } else { completeResponse += content; partialResponse += content; diff --git a/examples/twilio/src/functions/openai/prompt.ts b/examples/twilio/src/functions/openai/prompt.ts index b14e1f6..0a3f424 100644 --- a/examples/twilio/src/functions/openai/prompt.ts +++ b/examples/twilio/src/functions/openai/prompt.ts @@ -5,13 +5,14 @@ export const agentPrompt = [ You have a youthful and cheery personality. Keep your responses as brief as possible but make every attempt to keep the caller on the phone without being rude. Don't ask more than 1 question at a time. + Use the supplied tools to assist the user. Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous. Speak out all prices to include the currency. Please help them decide between airpods airpods pro and airpods max by asking questions like 'Do you prefer headphones that go in your ear or over the ear?'. If they are trying to choose between the airpods and airpods pro try asking them if they need noise canceling. Once you know which model they would like ask them how many they would like to purchase and try to get them to place an order. - This reponse is used by text to speech, make it as natural as possible by using filler words like 'um' and 'uh'. + This reponse is used by text to speech, make it as natural as possible by using filler words like 'um' and 'uh' when necessary. A comma (,) or a period (.) present in your text will be treated as a very short pause. If you need to insert a longer pause in your audio, use the ellipsis: ... You must add a '•' symbol every 5 to 10 words at natural pauses where your response can be split for text to speech. diff --git a/examples/twilio/src/functions/openai/tools/function-manifest.ts b/examples/twilio/src/functions/openai/tools/toolDefinitions.ts similarity index 62% rename from examples/twilio/src/functions/openai/tools/function-manifest.ts rename to examples/twilio/src/functions/openai/tools/toolDefinitions.ts index 442402e..2431266 100644 --- a/examples/twilio/src/functions/openai/tools/function-manifest.ts +++ b/examples/twilio/src/functions/openai/tools/toolDefinitions.ts @@ -1,10 +1,11 @@ +import OpenAI from "openai"; + // create metadata for all the available functions to pass to completions API -export const tools = [ +export const toolDefinitions: OpenAI.Chat.Completions.ChatCompletionTool[] = [ { type: "function", function: { name: "checkInventory", - say: "Let me check our inventory right now.", description: "Check the inventory of airpods, airpods pro or airpods max.", parameters: { @@ -19,23 +20,12 @@ export const tools = [ }, required: ["model"], }, - returns: { - type: "object", - properties: { - stock: { - type: "integer", - description: - "An integer containing how many of the model are in currently in stock.", - }, - }, - }, }, }, { type: "function", function: { name: "checkPrice", - say: "Let me check the price, one moment.", description: "Check the price of given model of airpods, airpods pro or airpods max.", parameters: { @@ -50,22 +40,12 @@ export const tools = [ }, required: ["model"], }, - returns: { - type: "object", - properties: { - price: { - type: "integer", - description: "the price of the model", - }, - }, - }, }, }, { type: "function", function: { name: "placeOrder", - say: "All right, I'm just going to ring that up in our system.", description: "Places an order for a set of airpods.", parameters: { type: "object", @@ -82,21 +62,6 @@ export const tools = [ }, required: ["type", "quantity"], }, - returns: { - type: "object", - properties: { - price: { - type: "integer", - description: "The total price of the order including tax", - }, - orderNumber: { - type: "integer", - description: "The order number associated with the order.", - }, - }, - }, }, }, ]; - -module.exports = tools; diff --git a/examples/twilio/src/streams/audioToText.ts b/examples/twilio/src/streams/audioToText.ts index f728877..7e6058a 100644 --- a/examples/twilio/src/streams/audioToText.ts +++ b/examples/twilio/src/streams/audioToText.ts @@ -38,10 +38,10 @@ export async function streamAudioToText({ streamSid, trackName }: StreamInput) { }); } + if (message.streamSid === streamSid) heartbeat(message.streamSid); if (message.event === "stop") { resolve(); } - if (message.streamSid === streamSid) heartbeat(message.streamSid); }); speechToText.on("transcription", async (text) => { diff --git a/examples/twilio/src/streams/question.ts b/examples/twilio/src/streams/question.ts index 2a5092c..d0f8ace 100644 --- a/examples/twilio/src/streams/question.ts +++ b/examples/twilio/src/streams/question.ts @@ -35,10 +35,11 @@ export async function streamQuestion({ streamSid }: StreamInput) { }); } } + + if (message.streamSid === streamSid) heartbeat(message.streamSid); if (message.event === "stop") { resolve(); } - if (message.streamSid === streamSid) heartbeat(message.streamSid); }); ws.on("close", () => { diff --git a/examples/twilio/src/streams/textToAudio.ts b/examples/twilio/src/streams/textToAudio.ts index 654069f..e205b34 100644 --- a/examples/twilio/src/streams/textToAudio.ts +++ b/examples/twilio/src/streams/textToAudio.ts @@ -33,10 +33,10 @@ export async function streamTextToAudio({ streamSid, trackName }: StreamInput) { }); } } + if (message.streamSid === streamSid) heartbeat(message.streamSid); if (message.event === "stop") { resolve(); } - if (message.streamSid === streamSid) heartbeat(message.streamSid); }); ws.on("close", () => { diff --git a/examples/twilio/src/workflows/twilioStream.ts b/examples/twilio/src/workflows/twilioStream.ts index 2d8c67e..69aa80f 100644 --- a/examples/twilio/src/workflows/twilioStream.ts +++ b/examples/twilio/src/workflows/twilioStream.ts @@ -1,10 +1,10 @@ import { - sleep, step, log, workflowInfo, defineUpdate, onUpdate, + condition, } from "@restackio/restack-sdk-ts/workflow"; import * as streams from "../streams"; @@ -65,12 +65,7 @@ export async function twilioStreamWorkflow() { ended = true; }); - // Keep the workflow running until it receives streamEnd - while (!ended) { - await sleep(600000); // Sleep for 10 minutes - } - - console.log(`Workflow ending with runId: ${runId}`); + await condition(() => ended); return; } From 80c8a3964a62025768af79fd6291a63ebd4db68b Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 7 Aug 2024 15:12:54 +0200 Subject: [PATCH 015/122] buffering audio should respect interactionCount and partialResponseIndex Former-commit-id: 2e97d98ff752ae4bd060ab89be77488dfc383f43 Former-commit-id: d3d2048832b91118165370331c0e8ead937e79d5 --- examples/twilio/src/streams/textToAudio.ts | 62 +++++++++++++++++----- 1 file changed, 48 insertions(+), 14 deletions(-) diff --git a/examples/twilio/src/streams/textToAudio.ts b/examples/twilio/src/streams/textToAudio.ts index e205b34..2a4d3dd 100644 --- a/examples/twilio/src/streams/textToAudio.ts +++ b/examples/twilio/src/streams/textToAudio.ts @@ -43,35 +43,69 @@ export async function streamTextToAudio({ streamSid, trackName }: StreamInput) { resolve(); }); - textToSpeech.on("speech", (partialResponseIndex, base64String) => { - log.info("TextToAudio -> speech", { + textToSpeech.on( + "speech", + ( partialResponseIndex, - audioLength: base64String.length, - }); - bufferAudio(partialResponseIndex, base64String); - }); + base64String, + partialResponse, + interactionCount + ) => { + log.info("TextToAudio -> speech", { + partialResponseIndex, + audioLength: base64String.length, + interactionCount, + }); + bufferAudio(interactionCount, partialResponseIndex, base64String); + } + ); - function bufferAudio(index: number, audio: string) { - let expectedAudioIndex = 0; + const audioBuffers: { + [interactionCount: number]: { [index: number]: string }; + } = {}; + const expectedAudioIndices: { [interactionCount: number]: number } = {}; - const audioBuffer: { [key: number]: string } = {}; + function bufferAudio( + interactionCount: number, + index: number, + audio: string + ) { + if (!audioBuffers[interactionCount]) { + audioBuffers[interactionCount] = {}; + expectedAudioIndices[interactionCount] = 0; + } + + const expectedAudioIndex = expectedAudioIndices[interactionCount]; + log.info("Buffering audio", { + interactionCount, + index, + expectedAudioIndex, + }); // Escape hatch for intro message, which doesn't have an index if (index === null) { sendAudio(audio); } else if (index === expectedAudioIndex) { sendAudio(audio); - expectedAudioIndex++; + expectedAudioIndices[interactionCount]++; while ( - Object.prototype.hasOwnProperty.call(audioBuffer, expectedAudioIndex) + audioBuffers[interactionCount].hasOwnProperty( + expectedAudioIndices[interactionCount] + ) ) { - const bufferedAudio = audioBuffer[expectedAudioIndex]; + const bufferedAudio = + audioBuffers[interactionCount][ + expectedAudioIndices[interactionCount] + ]; sendAudio(bufferedAudio); - expectedAudioIndex++; + delete audioBuffers[interactionCount][ + expectedAudioIndices[interactionCount] + ]; + expectedAudioIndices[interactionCount]++; } } else { - audioBuffer[index] = audio; + audioBuffers[interactionCount][index] = audio; } } From 3b3e5b5a8509e92b2139446079b24b0abeeef537 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 7 Aug 2024 15:18:06 +0200 Subject: [PATCH 016/122] pods Former-commit-id: a0facf9e9d51daf81d9c03d9ba6fbeb88c66553c Former-commit-id: 157b8564b72007a8c709659657a10717937cf675 --- examples/twilio/package.json | 2 +- examples/twilio/src/{worker.ts => pods.ts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename examples/twilio/src/{worker.ts => pods.ts} (100%) diff --git a/examples/twilio/package.json b/examples/twilio/package.json index 8f2d502..94e0659 100644 --- a/examples/twilio/package.json +++ b/examples/twilio/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", - "dev-worker": "ts-node-dev --respawn --transpile-only src/worker.ts", + "dev-pods": "ts-node-dev --respawn --transpile-only src/pods.ts", "call": "ts-node ./callWorkflow.ts", "ngrok": "ngrok http 4000" }, diff --git a/examples/twilio/src/worker.ts b/examples/twilio/src/pods.ts similarity index 100% rename from examples/twilio/src/worker.ts rename to examples/twilio/src/pods.ts From e042db2b70b0c98eff7db15899a357c4fa0bd36e Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 7 Aug 2024 15:25:07 +0200 Subject: [PATCH 017/122] add rate limits Former-commit-id: f1ee68d11fe8a14c3719fc09ba7eba2fd72138ea Former-commit-id: f04cae9a79b5a30da18b56b73a71105484958add --- examples/twilio/src/pods.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/twilio/src/pods.ts b/examples/twilio/src/pods.ts index 42629eb..c1e31aa 100644 --- a/examples/twilio/src/pods.ts +++ b/examples/twilio/src/pods.ts @@ -22,11 +22,13 @@ async function main() { name: "twilio", workflowsPath, functions: { twilioCall }, + rateLimit: 200, }), restack.pod({ name: "openai", workflowsPath, functions: { streamQuestion, questionAnswer }, + rateLimit: 10000, }), restack.pod({ name: "deepgram", @@ -35,6 +37,7 @@ async function main() { streamAudioToText, streamTextToAudio, }, + rateLimit: 1000, }), ]); From 58ca0c3c89e2498ead2731bf75b7f049e6abced6 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 7 Aug 2024 19:50:23 +0200 Subject: [PATCH 018/122] reduce tool usage Former-commit-id: 7c9f9ea533a7c27863e9a17f44aaac234926160f Former-commit-id: b49d9995e1e36b7db94b3ace80c9f28c50cad74b --- examples/twilio/src/functions/openai/prompt.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/twilio/src/functions/openai/prompt.ts b/examples/twilio/src/functions/openai/prompt.ts index 0a3f424..2d0c080 100644 --- a/examples/twilio/src/functions/openai/prompt.ts +++ b/examples/twilio/src/functions/openai/prompt.ts @@ -5,7 +5,6 @@ export const agentPrompt = [ You have a youthful and cheery personality. Keep your responses as brief as possible but make every attempt to keep the caller on the phone without being rude. Don't ask more than 1 question at a time. - Use the supplied tools to assist the user. Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous. Speak out all prices to include the currency. From 467e89d0fe2ea1f668c6bf6f02fcbc2c206b3467 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 7 Aug 2024 22:33:16 +0200 Subject: [PATCH 019/122] cors and start Former-commit-id: d7bcc8df174916400b1ee0b796ba09045371e97a Former-commit-id: 91c0def204de4443b848c24ef927447f77f4be49 --- examples/twilio/src/server.ts | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/examples/twilio/src/server.ts b/examples/twilio/src/server.ts index 3feb8db..982a677 100644 --- a/examples/twilio/src/server.ts +++ b/examples/twilio/src/server.ts @@ -5,7 +5,7 @@ import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; import Restack from "@restackio/restack-sdk-ts"; import { twilioStreamWorkflow } from "./workflows/twilioStream"; -// import cors from "cors"; +import cors from "cors"; const app = express(); const server = createServer(app); @@ -13,26 +13,30 @@ const wss = new WebSocketServer({ server }); const PORT = process.env.PORT || 4000; export const websocketAddress = `wss://${process.env.SERVER}/connection`; -// app.use(cors()); +app.use(cors()); app.use(express.json()); app.post("/start", async (req, res) => { - const { streamSid } = req.body; - - if (!streamSid) { - return res.status(400).send({ error: "streamSid is required" }); - } - try { const restack = new Restack(); + const workflowId = `${Date.now()}-${twilioStreamWorkflow.name}`; + const workflowRunId = await restack.schedule({ - workflowName: "twilioAgentWorkflow", - workflowId: `${Date.now()}-twilioAgentWorkflow`, - input: { streamSid }, + workflowName: twilioStreamWorkflow.name, + workflowId, }); - res.status(200).send({ workflowRunId, websocketAddress }); + if (workflowRunId) { + await restack.update({ + workflowId, + runId: workflowRunId, + updateName: "streamInfo", + input: { streamSid: workflowRunId }, + }); + + res.status(200).send({ streamSid: workflowRunId, websocketAddress }); + } } catch (error) { console.error("Error scheduling workflow:", error); res.status(500).send({ error: "Failed to schedule workflow" }); From 63f24f3a2cacd8b3d95d47ca9c202cdc1af53fbe Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 9 Aug 2024 00:47:10 +0200 Subject: [PATCH 020/122] add agent welcome message Former-commit-id: 6eeb8fdeed309c7f0b90ae606318a4e2a8586004 Former-commit-id: 5d6223f3c076fac8200f4c47ee83d206175db7f9 --- examples/twilio/src/streams/textToAudio.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/examples/twilio/src/streams/textToAudio.ts b/examples/twilio/src/streams/textToAudio.ts index 2a4d3dd..cb17fc3 100644 --- a/examples/twilio/src/streams/textToAudio.ts +++ b/examples/twilio/src/streams/textToAudio.ts @@ -3,6 +3,7 @@ import { webSocketConnect } from "./connect"; import { DeepgramTextToSpeech } from "../functions/deepgram/textToSpeech"; import { v4 as uuidv4 } from "uuid"; import { StreamInput } from "./audioToText"; +import { TrackName } from "../workflows"; export async function streamTextToAudio({ streamSid, trackName }: StreamInput) { return new Promise(async (resolve, reject) => { @@ -10,15 +11,24 @@ export async function streamTextToAudio({ streamSid, trackName }: StreamInput) { const textToSpeech = new DeepgramTextToSpeech(); - textToSpeech.generate({ + const welcomeMessage = { gptReply: { partialResponseIndex: null, partialResponse: "Hello! My name is Emilia from Apple. You are interested in Airpods, is that correct?", }, interactionCount: 0, - trackName: "agent", - }); + trackName: "agent" as TrackName, + }; + + textToSpeech.generate(welcomeMessage); + + const event = { + streamSid, + event: "answer", + data: welcomeMessage, + }; + ws.send(JSON.stringify(event)); ws.on("message", (data) => { const message = JSON.parse(data.toString()); From e33d0de418e65f02feba3a055b3742e990ec5acc Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 9 Aug 2024 09:04:22 +0200 Subject: [PATCH 021/122] refactor temporal events Former-commit-id: f1a0a2d444d69a6ccf82e1e2132b4d1068859d51 Former-commit-id: e5ec0392f638bc1699d6d1c778e154fee12c4c77 --- .../twilio/src/functions/deepgram/index.ts | 2 + .../src/functions/deepgram/speechToText.ts | 103 ------------- .../src/functions/deepgram/textToAudio.ts | 112 ++++++++++++++ .../src/functions/deepgram/transcribe.ts | 134 ++++++++++++++++ examples/twilio/src/functions/index.ts | 2 + .../{streams => functions/openai}/answer.ts | 25 +-- examples/twilio/src/functions/openai/index.ts | 1 + examples/twilio/src/pods.ts | 19 ++- examples/twilio/src/streams/audioToText.ts | 83 ---------- examples/twilio/src/streams/index.ts | 7 +- examples/twilio/src/streams/question.ts | 12 +- examples/twilio/src/streams/sendAudio.ts | 25 +++ examples/twilio/src/streams/textToAudio.ts | 145 ------------------ examples/twilio/src/streams/websocket.ts | 53 +++++++ examples/twilio/src/workflows/twilioStream.ts | 97 ++++++++++-- 15 files changed, 446 insertions(+), 374 deletions(-) create mode 100644 examples/twilio/src/functions/deepgram/index.ts delete mode 100644 examples/twilio/src/functions/deepgram/speechToText.ts create mode 100644 examples/twilio/src/functions/deepgram/textToAudio.ts create mode 100644 examples/twilio/src/functions/deepgram/transcribe.ts rename examples/twilio/src/{streams => functions/openai}/answer.ts (62%) create mode 100644 examples/twilio/src/functions/openai/index.ts delete mode 100644 examples/twilio/src/streams/audioToText.ts create mode 100644 examples/twilio/src/streams/sendAudio.ts delete mode 100644 examples/twilio/src/streams/textToAudio.ts create mode 100644 examples/twilio/src/streams/websocket.ts diff --git a/examples/twilio/src/functions/deepgram/index.ts b/examples/twilio/src/functions/deepgram/index.ts new file mode 100644 index 0000000..ed7e8bb --- /dev/null +++ b/examples/twilio/src/functions/deepgram/index.ts @@ -0,0 +1,2 @@ +export * from "./transcribe"; +export * from "./textToAudio"; diff --git a/examples/twilio/src/functions/deepgram/speechToText.ts b/examples/twilio/src/functions/deepgram/speechToText.ts deleted file mode 100644 index db45919..0000000 --- a/examples/twilio/src/functions/deepgram/speechToText.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { - createClient, - LiveTranscriptionEvent, - LiveTranscriptionEvents, -} from "@deepgram/sdk"; -import { Buffer } from "node:buffer"; -import { EventEmitter } from "events"; -import { log } from "@restackio/restack-sdk-ts/function"; -import "dotenv/config"; - -class DeepgramSpeechToText extends EventEmitter { - private dgConnection: any; - private finalResult: string; - private speechFinal: boolean; - - constructor() { - super(); - const deepgram = createClient(process.env.DEEPGRAM_API_KEY); - this.dgConnection = deepgram.listen.live({ - encoding: "mulaw", - sample_rate: 8000, - model: "nova-2", - punctuate: true, - interim_results: true, - endpointing: 500, - utterance_end_ms: 2000, - }); - - this.finalResult = ""; - this.speechFinal = false; - - this.dgConnection.on(LiveTranscriptionEvents.Open, () => { - this.dgConnection.on( - LiveTranscriptionEvents.Transcript, - (transcriptionEvent: LiveTranscriptionEvent) => { - const alternatives = transcriptionEvent.channel?.alternatives; - let text = ""; - if (alternatives) { - text = alternatives[0]?.transcript; - } - // @ts-ignore - if (transcriptionEvent.type === "UtteranceEnd") { - if (!this.speechFinal) { - log.warn( - `UtteranceEnd received before speechFinal, emit the text collected so far: ${this.finalResult}` - ); - this.emit("transcription", this.finalResult); - return; - } else { - log.warn( - "STT -> Speech was already final when UtteranceEnd received" - ); - return; - } - } - - if (transcriptionEvent.is_final === true && text.trim().length > 0) { - this.finalResult += ` ${text}`; - if (transcriptionEvent.speech_final === true) { - this.speechFinal = true; - this.emit("transcription", this.finalResult); - this.finalResult = ""; - } else { - this.speechFinal = false; - } - } else { - this.emit("utterance", text); - } - } - ); - - this.dgConnection.on(LiveTranscriptionEvents.Error, (error: unknown) => { - log.error("STT -> deepgram error", { error }); - }); - - this.dgConnection.on( - LiveTranscriptionEvents.Unhandled, - (unhandledEvent: unknown) => { - log.error("STT -> deepgram unhandled event", { unhandledEvent }); - } - ); - - this.dgConnection.on( - LiveTranscriptionEvents.Metadata, - (metadata: unknown) => { - log.error("STT -> deepgram metadata", { metadata }); - } - ); - - this.dgConnection.on(LiveTranscriptionEvents.Close, () => { - log.warn("STT -> Deepgram connection closed"); - }); - }); - } - - send(payload: string) { - if (this.dgConnection.getReadyState() === 1) { - this.dgConnection.send(Buffer.from(payload, "base64")); - } - } -} - -export { DeepgramSpeechToText }; diff --git a/examples/twilio/src/functions/deepgram/textToAudio.ts b/examples/twilio/src/functions/deepgram/textToAudio.ts new file mode 100644 index 0000000..9f58e53 --- /dev/null +++ b/examples/twilio/src/functions/deepgram/textToAudio.ts @@ -0,0 +1,112 @@ +import { log } from "@restackio/restack-sdk-ts/function"; +import { Answer } from "../../workflows"; +import { Buffer } from "node:buffer"; +import axios from "axios"; + +export async function textToAudio({ + streamSid, + trackName, + gptReply, + interactionCount, +}: Answer) { + const { partialResponseIndex, partialResponse } = gptReply; + if (!partialResponse) throw new Error("No partial response provided"); + + const deepgramModel = + trackName === "agent" ? "aura-asteria-en" : "aura-arcas-en"; + + const audioBuffers: { + [interactionCount: number]: { [index: number]: string }; + } = {}; + const expectedAudioIndices: { [interactionCount: number]: number } = {}; + + async function generateTTS({ + gptReply, + trackName, + }: { + gptReply: { partialResponseIndex: number | null; partialResponse: any }; + trackName: string; + }): Promise { + try { + const response = await axios.post( + `https://api.deepgram.com/v1/speak?model=${deepgramModel}&encoding=mulaw&sample_rate=8000&container=none`, + { text: partialResponse }, + { + headers: { + Authorization: `Token ${process.env.DEEPGRAM_API_KEY}`, + "Content-Type": "application/json", + }, + responseType: "arraybuffer", + } + ); + + if (response.status === 200) { + const base64String = Buffer.from(response.data).toString("base64"); + log.info("TextToAudio -> speech", { + partialResponseIndex, + audioLength: base64String.length, + interactionCount, + }); + return base64String; + } else { + log.error("Deepgram TTS error:", { response }); + throw new Error("Deepgram TTS error"); + } + } catch (err) { + log.error("Error occurred in TextToSpeech service", { err }); + throw err; + } + } + + function bufferAudio( + interactionCount: number, + index: number | null, + audio: string + ): string { + if (!audioBuffers[interactionCount]) { + audioBuffers[interactionCount] = {}; + expectedAudioIndices[interactionCount] = 0; + } + + const expectedAudioIndex = expectedAudioIndices[interactionCount]; + log.info("Buffering audio", { + interactionCount, + index, + expectedAudioIndex, + }); + + if (index === null || index === expectedAudioIndex) { + if (index !== null) expectedAudioIndices[interactionCount]++; + while ( + audioBuffers[interactionCount][expectedAudioIndices[interactionCount]] + ) { + const bufferedAudio = + audioBuffers[interactionCount][ + expectedAudioIndices[interactionCount] + ]; + audioBuffers[interactionCount][expectedAudioIndices[interactionCount]] = + bufferedAudio; + delete audioBuffers[interactionCount][ + expectedAudioIndices[interactionCount] + ]; + expectedAudioIndices[interactionCount]++; + } + return audio; + } else { + audioBuffers[interactionCount][index] = audio; + } + } + + const audio = await generateTTS({ gptReply, trackName }); + const bufferedAudio = bufferAudio( + interactionCount, + partialResponseIndex, + audio + ); + + return { + streamSid, + trackName, + audio: bufferedAudio, + }; +} diff --git a/examples/twilio/src/functions/deepgram/transcribe.ts b/examples/twilio/src/functions/deepgram/transcribe.ts new file mode 100644 index 0000000..e3dd361 --- /dev/null +++ b/examples/twilio/src/functions/deepgram/transcribe.ts @@ -0,0 +1,134 @@ +import { + createClient, + LiveTranscriptionEvent, + LiveTranscriptionEvents, +} from "@deepgram/sdk"; +import { Buffer } from "node:buffer"; +import { log } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; + +type Output = { + streamSid: string; + trackName: string; + finalResult: string; +}; + +export async function transcribe({ + streamSid, + trackName, + payload, +}: { + streamSid: string; + trackName: string; + payload: string; +}): Promise { + return new Promise((resolve, reject) => { + const deepgram = createClient(process.env.DEEPGRAM_API_KEY); + const dgConnection = deepgram.listen.live({ + encoding: "mulaw", + sample_rate: 8000, + model: "nova-2", + punctuate: true, + interim_results: true, + endpointing: 500, + utterance_end_ms: 2000, + }); + + let finalResult = ""; + let speechFinal = false; + + dgConnection.on(LiveTranscriptionEvents.Open, () => { + log.info("Deepgram connection opened"); + + dgConnection.on( + LiveTranscriptionEvents.Transcript, + (transcriptionEvent: LiveTranscriptionEvent) => { + log.info("Received transcription event", { transcriptionEvent }); + const alternatives = transcriptionEvent.channel?.alternatives; + let text = ""; + if (alternatives) { + text = alternatives[0]?.transcript; + } + + if (transcriptionEvent.type === ("UtteranceEnd" as any)) { + log.info("Received UtteranceEnd event"); + if (!speechFinal) { + log.warn( + `UtteranceEnd received before speechFinal, emit the text collected so far: ${finalResult}` + ); + resolve({ + streamSid, + trackName, + finalResult, + }); + return; + } else { + log.warn( + "STT -> Speech was already final when UtteranceEnd received" + ); + return; + } + } + + if (transcriptionEvent.is_final === true && text.trim().length > 0) { + log.info("Received final transcription", { text }); + finalResult += ` ${text}`; + if (transcriptionEvent.speech_final === true) { + log.info("Speech is final, emitting transcription", { + finalResult, + }); + speechFinal = true; + resolve({ + streamSid, + trackName, + finalResult, + }); + finalResult = ""; + } else { + speechFinal = false; + } + } else { + log.info("Emitting interim utterance", { text }); + } + } + ); + + dgConnection.on(LiveTranscriptionEvents.Error, (error: unknown) => { + log.error("STT -> deepgram error", { error }); + reject(error); + }); + + dgConnection.on( + LiveTranscriptionEvents.Unhandled, + (unhandledEvent: unknown) => { + log.error("STT -> deepgram unhandled event", { unhandledEvent }); + } + ); + + dgConnection.on(LiveTranscriptionEvents.Metadata, (metadata: unknown) => { + log.info("STT -> deepgram metadata", { metadata }); + }); + + dgConnection.on(LiveTranscriptionEvents.Close, () => { + log.warn("STT -> Deepgram connection closed"); + }); + }); + + const sendPayload = () => { + const readyState = dgConnection.getReadyState(); + log.info("Deepgram connection readyState", { readyState }); + + if (readyState === 1) { + dgConnection.send(Buffer.from(payload, "base64")); + } else if (readyState === 0) { + log.info("Deepgram connection is connecting, retrying..."); + setTimeout(sendPayload, 100); // Retry after 1 second + } else { + log.warn("Cannot send payload, Deepgram connection is not open"); + reject(new Error("Deepgram connection is not open")); + } + }; + + sendPayload(); + }); +} diff --git a/examples/twilio/src/functions/index.ts b/examples/twilio/src/functions/index.ts index 66c6cca..e57162a 100644 --- a/examples/twilio/src/functions/index.ts +++ b/examples/twilio/src/functions/index.ts @@ -1 +1,3 @@ +export * from "./deepgram"; export * from "./twilio"; +export * from "./openai"; diff --git a/examples/twilio/src/streams/answer.ts b/examples/twilio/src/functions/openai/answer.ts similarity index 62% rename from examples/twilio/src/streams/answer.ts rename to examples/twilio/src/functions/openai/answer.ts index e32efe2..3fe7586 100644 --- a/examples/twilio/src/streams/answer.ts +++ b/examples/twilio/src/functions/openai/answer.ts @@ -1,7 +1,8 @@ -import { log } from "@restackio/restack-sdk-ts/function"; -import { webSocketConnect } from "./connect"; -import { OpenaiChat } from "../functions/openai/chat"; -import { Question } from "../workflows/twilioStream"; +import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; +import { webSocketConnect } from "../../streams/connect"; +import { OpenaiChat } from "./chat"; +import { answerEvent, Question } from "../../workflows/twilioStream"; +import Restack from "@restackio/restack-sdk-ts"; type AnswerOutput = { streamSid: string; @@ -15,7 +16,7 @@ export async function questionAnswer({ text, interactionCount, }: Question): Promise { - const ws = await webSocketConnect(); + // const ws = await webSocketConnect(); return new Promise((resolve) => { const openaiChat = new OpenaiChat(); @@ -28,16 +29,18 @@ export async function questionAnswer({ }); openaiChat.on("gptreply", async (gptReply, interactionCount) => { - const event = { - streamSid, - event: "answer", - data: { + const restack = new Restack(); + const { workflowId, runId } = currentWorkflow().workflowExecution; + restack.update({ + workflowId, + runId, + updateName: answerEvent.name, + input: { gptReply, interactionCount, trackName: "agent", }, - }; - ws.send(JSON.stringify(event)); + }); log.info(`Interaction ${interactionCount}: OpenAI:`, event); }); diff --git a/examples/twilio/src/functions/openai/index.ts b/examples/twilio/src/functions/openai/index.ts new file mode 100644 index 0000000..c0933f3 --- /dev/null +++ b/examples/twilio/src/functions/openai/index.ts @@ -0,0 +1 @@ +export * from "./answer"; diff --git a/examples/twilio/src/pods.ts b/examples/twilio/src/pods.ts index c1e31aa..0fc1eb6 100644 --- a/examples/twilio/src/pods.ts +++ b/examples/twilio/src/pods.ts @@ -1,11 +1,11 @@ import Restack from "@restackio/restack-sdk-ts"; -import { twilioCall } from "./functions"; import { - streamAudioToText, - streamTextToAudio, - streamQuestion, + twilioCall, questionAnswer, -} from "./streams"; + transcribe, + textToAudio, +} from "./functions"; +import { websocket, streamQuestion, sendAudio } from "./streams"; async function main() { const workflowsPath = require.resolve("./workflows"); @@ -24,6 +24,11 @@ async function main() { functions: { twilioCall }, rateLimit: 200, }), + restack.pod({ + name: "websocket", + workflowsPath, + functions: { websocket, sendAudio }, + }), restack.pod({ name: "openai", workflowsPath, @@ -34,8 +39,8 @@ async function main() { name: "deepgram", workflowsPath, functions: { - streamAudioToText, - streamTextToAudio, + transcribe, + textToAudio, }, rateLimit: 1000, }), diff --git a/examples/twilio/src/streams/audioToText.ts b/examples/twilio/src/streams/audioToText.ts deleted file mode 100644 index 7e6058a..0000000 --- a/examples/twilio/src/streams/audioToText.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { - log, - FunctionFailure, - heartbeat, -} from "@restackio/restack-sdk-ts/function"; -import { webSocketConnect } from "./connect"; -import { DeepgramSpeechToText } from "../functions/deepgram/speechToText"; -import { TrackName } from "../workflows/twilioStream"; - -export type StreamInput = { - streamSid: string; - trackName?: TrackName; -}; - -export async function streamAudioToText({ streamSid, trackName }: StreamInput) { - return new Promise(async (resolve, reject) => { - const ws = await webSocketConnect(); - - const speechToText = new DeepgramSpeechToText(); - let marks: string[] = []; - let interactionCount = 0; - - ws.on("message", (data) => { - const message = JSON.parse(data.toString()); - if (message.event === "media") { - if (message.streamSid === streamSid) { - if (message.media.track === "inbound") { - speechToText.send(message.media.payload); - } - } - } - if (message.event === "mark") { - const label = message.mark.name; - marks = marks.filter((m) => m !== message.mark.name); - log.info("Twilio -> Audio completed mark:", { - label, - sequenceNumber: message.sequenceNumber, - }); - } - - if (message.streamSid === streamSid) heartbeat(message.streamSid); - if (message.event === "stop") { - resolve(); - } - }); - - speechToText.on("transcription", async (text) => { - if (!text) { - return; - } - const event = { - streamSid, - event: "question", - data: { text, interactionCount, trackName }, - }; - ws.send(JSON.stringify(event)); - log.info(`Audio -> Transcription: ${event}`); - interactionCount += 1; - }); - - speechToText.on("utterance", async (text) => { - // This is a bit of a hack to filter out empty utterances - if (marks.length > 0 && text?.length > 5) { - const event = { - streamSid, - event: "clear", - }; - ws.send(JSON.stringify(event)); - log.info("Twilio -> Interruption, Clearing stream", event); - } - }); - - speechToText.on("error", (error) => { - reject( - FunctionFailure.nonRetryable(`Error in DeepgramSpeechToText: ${error}`) - ); - }); - - ws.on("close", () => { - resolve(); - }); - }); -} diff --git a/examples/twilio/src/streams/index.ts b/examples/twilio/src/streams/index.ts index 71e4297..dbe004d 100644 --- a/examples/twilio/src/streams/index.ts +++ b/examples/twilio/src/streams/index.ts @@ -1,4 +1,5 @@ -export * from "./audioToText"; export * from "./question"; -export * from "./textToAudio"; -export * from "./answer"; +export * from "../functions/deepgram/textToAudio"; +export * from "../functions/openai/answer"; +export * from "./websocket"; +export * from "./sendAudio"; diff --git a/examples/twilio/src/streams/question.ts b/examples/twilio/src/streams/question.ts index d0f8ace..0ed2196 100644 --- a/examples/twilio/src/streams/question.ts +++ b/examples/twilio/src/streams/question.ts @@ -4,17 +4,19 @@ import { currentWorkflow, } from "@restackio/restack-sdk-ts/function"; import { webSocketConnect } from "./connect"; -import { OpenaiChat } from "../functions/openai/chat"; -import { StreamInput } from "./audioToText"; + import Restack from "@restackio/restack-sdk-ts"; +import { TrackName } from "../workflows/twilioStream"; + +type StreamInput = { + streamSid: string; + trackName?: TrackName; +}; export async function streamQuestion({ streamSid }: StreamInput) { return new Promise(async (resolve, reject) => { const ws = await webSocketConnect(); - const openaiChat = new OpenaiChat(); - openaiChat.setCallSid({ callSid: streamSid }); - ws.on("message", (data) => { const message = JSON.parse(data.toString()); if (message.event === "question") { diff --git a/examples/twilio/src/streams/sendAudio.ts b/examples/twilio/src/streams/sendAudio.ts new file mode 100644 index 0000000..5e5c6d1 --- /dev/null +++ b/examples/twilio/src/streams/sendAudio.ts @@ -0,0 +1,25 @@ +import { TrackName } from "../workflows/twilioStream"; +import { webSocketConnect } from "./connect"; + +export async function sendAudio({ + streamSid, + trackName, + audio, +}: { + streamSid: string; + trackName: TrackName; + audio: string; +}) { + const ws = await webSocketConnect(); + + const audioEvent = { + streamSid: streamSid, + event: "media", + media: { + trackName, + payload: audio, + }, + }; + ws.send(JSON.stringify(audioEvent)); + ws.close(); +} diff --git a/examples/twilio/src/streams/textToAudio.ts b/examples/twilio/src/streams/textToAudio.ts deleted file mode 100644 index cb17fc3..0000000 --- a/examples/twilio/src/streams/textToAudio.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { heartbeat, log } from "@restackio/restack-sdk-ts/function"; -import { webSocketConnect } from "./connect"; -import { DeepgramTextToSpeech } from "../functions/deepgram/textToSpeech"; -import { v4 as uuidv4 } from "uuid"; -import { StreamInput } from "./audioToText"; -import { TrackName } from "../workflows"; - -export async function streamTextToAudio({ streamSid, trackName }: StreamInput) { - return new Promise(async (resolve, reject) => { - const ws = await webSocketConnect(); - - const textToSpeech = new DeepgramTextToSpeech(); - - const welcomeMessage = { - gptReply: { - partialResponseIndex: null, - partialResponse: - "Hello! My name is Emilia from Apple. You are interested in Airpods, is that correct?", - }, - interactionCount: 0, - trackName: "agent" as TrackName, - }; - - textToSpeech.generate(welcomeMessage); - - const event = { - streamSid, - event: "answer", - data: welcomeMessage, - }; - ws.send(JSON.stringify(event)); - - ws.on("message", (data) => { - const message = JSON.parse(data.toString()); - if (message.event === "answer") { - if (message.streamSid === streamSid) { - const { gptReply, interactionCount, trackName } = message.data; - log.info("TextToAudio -> gptReply:", gptReply); - textToSpeech.generate({ - gptReply, - interactionCount, - trackName, - }); - } - } - if (message.streamSid === streamSid) heartbeat(message.streamSid); - if (message.event === "stop") { - resolve(); - } - }); - - ws.on("close", () => { - resolve(); - }); - - textToSpeech.on( - "speech", - ( - partialResponseIndex, - base64String, - partialResponse, - interactionCount - ) => { - log.info("TextToAudio -> speech", { - partialResponseIndex, - audioLength: base64String.length, - interactionCount, - }); - bufferAudio(interactionCount, partialResponseIndex, base64String); - } - ); - - const audioBuffers: { - [interactionCount: number]: { [index: number]: string }; - } = {}; - const expectedAudioIndices: { [interactionCount: number]: number } = {}; - - function bufferAudio( - interactionCount: number, - index: number, - audio: string - ) { - if (!audioBuffers[interactionCount]) { - audioBuffers[interactionCount] = {}; - expectedAudioIndices[interactionCount] = 0; - } - - const expectedAudioIndex = expectedAudioIndices[interactionCount]; - log.info("Buffering audio", { - interactionCount, - index, - expectedAudioIndex, - }); - - // Escape hatch for intro message, which doesn't have an index - if (index === null) { - sendAudio(audio); - } else if (index === expectedAudioIndex) { - sendAudio(audio); - expectedAudioIndices[interactionCount]++; - - while ( - audioBuffers[interactionCount].hasOwnProperty( - expectedAudioIndices[interactionCount] - ) - ) { - const bufferedAudio = - audioBuffers[interactionCount][ - expectedAudioIndices[interactionCount] - ]; - sendAudio(bufferedAudio); - delete audioBuffers[interactionCount][ - expectedAudioIndices[interactionCount] - ]; - expectedAudioIndices[interactionCount]++; - } - } else { - audioBuffers[interactionCount][index] = audio; - } - } - - function sendAudio(audio: string) { - const audioEvent = { - streamSid: streamSid, - event: "media", - media: { - payload: audio, - }, - }; - ws.send(JSON.stringify(audioEvent)); - // When the media completes you will receive a `mark` message with the label - const markLabel = uuidv4(); - ws.send( - JSON.stringify({ - streamSid: streamSid, - event: "mark", - mark: { - name: markLabel, - }, - }) - ); - ws.emit("audiosent", markLabel); - } - }); -} diff --git a/examples/twilio/src/streams/websocket.ts b/examples/twilio/src/streams/websocket.ts new file mode 100644 index 0000000..c26ab91 --- /dev/null +++ b/examples/twilio/src/streams/websocket.ts @@ -0,0 +1,53 @@ +import { + heartbeat, + currentWorkflow, + log, +} from "@restackio/restack-sdk-ts/function"; +import { webSocketConnect } from "./connect"; +import { audioInEvent, TrackName } from "../workflows/twilioStream"; +import Restack from "@restackio/restack-sdk-ts"; + +type StreamInput = { + streamSid: string; + trackName?: TrackName; +}; + +export async function websocket({ streamSid }: StreamInput) { + return new Promise(async (resolve, reject) => { + const ws = await webSocketConnect(); + + ws.on("message", (data) => { + const message = JSON.parse(data.toString()); + if (message.event === "media") { + if (message.streamSid === streamSid) { + if (message.media.track === "inbound") { + const restack = new Restack(); + const { workflowId, runId } = currentWorkflow().workflowExecution; + log.info("send payload", { + streamSid, + payload: message.media.payload.length, + }); + restack.update({ + workflowId, + runId, + updateName: audioInEvent.name, + input: { + streamSid, + payload: message.media.payload, + trackName: "user", + }, + }); + } + } + } + if (message.streamSid === streamSid) heartbeat(message.streamSid); + if (message.event === "stop") { + resolve(); + } + }); + + ws.on("close", () => { + resolve(); + }); + }); +} diff --git a/examples/twilio/src/workflows/twilioStream.ts b/examples/twilio/src/workflows/twilioStream.ts index 69aa80f..5d39551 100644 --- a/examples/twilio/src/workflows/twilioStream.ts +++ b/examples/twilio/src/workflows/twilioStream.ts @@ -7,6 +7,8 @@ import { condition, } from "@restackio/restack-sdk-ts/workflow"; import * as streams from "../streams"; +import * as functions from "../functions"; +import { GptReply } from "../functions/openai/chat"; export type TrackName = "user" | "agent" | "testUser"; @@ -14,48 +16,109 @@ type StreamInfo = { streamSid: string; }; +export type AudioIn = { + streamSid: string; + trackName: TrackName; + payload: string; +}; + export type Question = { streamSid: string; text: string; interactionCount: number; }; +export type Answer = { + streamSid: string; + trackName: TrackName; + gptReply: GptReply; + interactionCount: number; +}; + const streamInfo = defineUpdate("streamInfo"); -const question = defineUpdate("question"); + +export const audioInEvent = defineUpdate("audioIn"); + +export const questionEvent = defineUpdate("question"); + +export const answerEvent = defineUpdate("answer"); + const streamEnd = defineUpdate("streamEnd"); export async function twilioStreamWorkflow() { let currentstreamSid: string; + let interactionCount = 0; const runId = workflowInfo().runId; log.info(`Workflow started with runId: ${runId}`); onUpdate(streamInfo, async ({ streamSid }: StreamInfo) => { log.info(`Workflow update with streamSid: ${streamSid}`); step({ - podName: `deepgram`, - scheduleToCloseTimeout: "30 minutes", - }).streamAudioToText({ streamSid, trackName: "user" }); - step({ - podName: `openai`, + podName: `websocket`, scheduleToCloseTimeout: "30 minutes", - }).streamQuestion({ streamSid }); - step({ + }).websocket({ streamSid, trackName: "user" }); + + const welcomeMessage = { + partialResponseIndex: null, + partialResponse: + "Hello! My name is Emilia from Apple. You are interested in Airpods, is that correct?", + }; + + const { audio } = await step({ podName: `deepgram`, - scheduleToCloseTimeout: "30 minutes", - }).streamTextToAudio({ streamSid, trackName: "agent" }); + scheduleToCloseTimeout: "2 minutes", + }).textToAudio({ + streamSid, + trackName: "agent", + gptReply: welcomeMessage, + interactionCount: 0, + }); + + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "2 minutes", + }).sendAudio({ streamSid, trackName: "agent", audio }); + currentstreamSid = streamSid; return { streamSid }; }); + onUpdate(audioInEvent, async ({ streamSid, trackName, payload }: AudioIn) => { + log.info(`Workflow update with streamSid: ${streamSid}`); + const { finalResult } = await step({ + podName: `deepgram`, + scheduleToCloseTimeout: "2 minutes", + }).transcribe({ streamSid, trackName, payload }); + + interactionCount += 1; + + await step({ + podName: `openai`, + scheduleToCloseTimeout: "2 minutes", + }).questionAnswer({ streamSid, text: finalResult, interactionCount }); + + return { streamSid }; + }); + onUpdate( - question, - async ({ streamSid, text, interactionCount }: Question) => { - log.info(`Workflow update with question: ${streamSid}`); - await step({ - podName: `openai`, + answerEvent, + async ({ streamSid, trackName, gptReply, interactionCount }: Answer) => { + log.info(`answerEvent: ${gptReply}`); + const { audio } = await step({ + podName: `deepgram`, scheduleToCloseTimeout: "2 minutes", - }).questionAnswer({ streamSid, text, interactionCount }); - return { streamSid, text, interactionCount }; + }).textToAudio({ streamSid, trackName, gptReply, interactionCount }); + + log.info("audio", { audio: audio?.length }); + + if (audio) { + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "2 minutes", + }).sendAudio({ streamSid, trackName, audio }); + } + + return { streamSid }; } ); From 7082f16f3dd08b8f6056fe622e1450b1088481ef Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sat, 10 Aug 2024 13:07:38 +0200 Subject: [PATCH 022/122] temporal functions Former-commit-id: c759b87f7eebda32ea8e9887b9dcff4081c341ec Former-commit-id: 9db1b23db97b33258667eb56dd1b79352a4e2a9b --- .../twilio/src/functions/openai/answer.ts | 3 +- examples/twilio/src/pods.ts | 4 +-- examples/twilio/src/server.ts | 16 +++++++--- examples/twilio/src/streams/index.ts | 1 + examples/twilio/src/streams/sendAudio.ts | 1 + examples/twilio/src/streams/sendEvent.ts | 23 ++++++++++++++ examples/twilio/src/streams/websocket.ts | 20 +++++------- examples/twilio/src/workflows/twilioStream.ts | 31 +++++++++++++++++-- 8 files changed, 78 insertions(+), 21 deletions(-) create mode 100644 examples/twilio/src/streams/sendEvent.ts diff --git a/examples/twilio/src/functions/openai/answer.ts b/examples/twilio/src/functions/openai/answer.ts index 3fe7586..ef67872 100644 --- a/examples/twilio/src/functions/openai/answer.ts +++ b/examples/twilio/src/functions/openai/answer.ts @@ -36,9 +36,10 @@ export async function questionAnswer({ runId, updateName: answerEvent.name, input: { + streamSid, + trackName: "agent", gptReply, interactionCount, - trackName: "agent", }, }); log.info(`Interaction ${interactionCount}: OpenAI:`, event); diff --git a/examples/twilio/src/pods.ts b/examples/twilio/src/pods.ts index 0fc1eb6..78f46d7 100644 --- a/examples/twilio/src/pods.ts +++ b/examples/twilio/src/pods.ts @@ -5,7 +5,7 @@ import { transcribe, textToAudio, } from "./functions"; -import { websocket, streamQuestion, sendAudio } from "./streams"; +import { websocket, streamQuestion, sendAudio, sendEvent } from "./streams"; async function main() { const workflowsPath = require.resolve("./workflows"); @@ -27,7 +27,7 @@ async function main() { restack.pod({ name: "websocket", workflowsPath, - functions: { websocket, sendAudio }, + functions: { websocket, sendAudio, sendEvent }, }), restack.pod({ name: "openai", diff --git a/examples/twilio/src/server.ts b/examples/twilio/src/server.ts index 982a677..15733c5 100644 --- a/examples/twilio/src/server.ts +++ b/examples/twilio/src/server.ts @@ -13,7 +13,18 @@ const wss = new WebSocketServer({ server }); const PORT = process.env.PORT || 4000; export const websocketAddress = `wss://${process.env.SERVER}/connection`; -app.use(cors()); +app.use( + cors({ + origin: "*", + methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"], + allowedHeaders: [ + "Content-Type", + "Authorization", + "X-Requested-With", + "Accept", + ], + }) +); app.use(express.json()); app.post("/start", async (req, res) => { @@ -117,9 +128,6 @@ wss.on("connection", (ws) => { if (message.event === "stop") { console.log(`Twilio -> Media stream ${streamSid} ended.`); - if (runId) { - restack.update({ workflowId, runId, updateName: "streamEnd" }); - } } }); }); diff --git a/examples/twilio/src/streams/index.ts b/examples/twilio/src/streams/index.ts index dbe004d..76f9516 100644 --- a/examples/twilio/src/streams/index.ts +++ b/examples/twilio/src/streams/index.ts @@ -3,3 +3,4 @@ export * from "../functions/deepgram/textToAudio"; export * from "../functions/openai/answer"; export * from "./websocket"; export * from "./sendAudio"; +export * from "./sendEvent"; diff --git a/examples/twilio/src/streams/sendAudio.ts b/examples/twilio/src/streams/sendAudio.ts index 5e5c6d1..9e8efc0 100644 --- a/examples/twilio/src/streams/sendAudio.ts +++ b/examples/twilio/src/streams/sendAudio.ts @@ -22,4 +22,5 @@ export async function sendAudio({ }; ws.send(JSON.stringify(audioEvent)); ws.close(); + return true; } diff --git a/examples/twilio/src/streams/sendEvent.ts b/examples/twilio/src/streams/sendEvent.ts new file mode 100644 index 0000000..4ba97f4 --- /dev/null +++ b/examples/twilio/src/streams/sendEvent.ts @@ -0,0 +1,23 @@ +import { webSocketConnect } from "./connect"; + +export async function sendEvent({ + streamSid, + eventName, + data, +}: { + streamSid: string; + eventName: string; + data: { text?: string }; +}) { + const ws = await webSocketConnect(); + + const audioEvent = { + streamSid: streamSid, + event: eventName, + data: data, + }; + + ws.send(JSON.stringify(audioEvent)); + ws.close(); + return true; +} diff --git a/examples/twilio/src/streams/websocket.ts b/examples/twilio/src/streams/websocket.ts index c26ab91..7a00a88 100644 --- a/examples/twilio/src/streams/websocket.ts +++ b/examples/twilio/src/streams/websocket.ts @@ -4,7 +4,7 @@ import { log, } from "@restackio/restack-sdk-ts/function"; import { webSocketConnect } from "./connect"; -import { audioInEvent, TrackName } from "../workflows/twilioStream"; +import { audioInEvent, streamEnd, TrackName } from "../workflows/twilioStream"; import Restack from "@restackio/restack-sdk-ts"; type StreamInput = { @@ -13,16 +13,15 @@ type StreamInput = { }; export async function websocket({ streamSid }: StreamInput) { - return new Promise(async (resolve, reject) => { + return new Promise(async (resolve) => { const ws = await webSocketConnect(); - + const restack = new Restack(); + const { workflowId, runId } = currentWorkflow().workflowExecution; ws.on("message", (data) => { const message = JSON.parse(data.toString()); - if (message.event === "media") { - if (message.streamSid === streamSid) { + if (message.streamSid === streamSid) { + if (message.event === "media") { if (message.media.track === "inbound") { - const restack = new Restack(); - const { workflowId, runId } = currentWorkflow().workflowExecution; log.info("send payload", { streamSid, payload: message.media.payload.length, @@ -40,14 +39,11 @@ export async function websocket({ streamSid }: StreamInput) { } } } - if (message.streamSid === streamSid) heartbeat(message.streamSid); + heartbeat(message.streamSid); if (message.event === "stop") { + restack.update({ workflowId, runId, updateName: streamEnd.name }); resolve(); } }); - - ws.on("close", () => { - resolve(); - }); }); } diff --git a/examples/twilio/src/workflows/twilioStream.ts b/examples/twilio/src/workflows/twilioStream.ts index 5d39551..7074a0d 100644 --- a/examples/twilio/src/workflows/twilioStream.ts +++ b/examples/twilio/src/workflows/twilioStream.ts @@ -43,7 +43,7 @@ export const questionEvent = defineUpdate("question"); export const answerEvent = defineUpdate("answer"); -const streamEnd = defineUpdate("streamEnd"); +export const streamEnd = defineUpdate("streamEnd"); export async function twilioStreamWorkflow() { let currentstreamSid: string; @@ -76,9 +76,18 @@ export async function twilioStreamWorkflow() { await step({ podName: `websocket`, - scheduleToCloseTimeout: "2 minutes", + scheduleToCloseTimeout: "1 minute", }).sendAudio({ streamSid, trackName: "agent", audio }); + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "2 minutes", + }).sendEvent({ + streamSid, + eventName: answerEvent.name, + data: { text: welcomeMessage.partialResponse }, + }); + currentstreamSid = streamSid; return { streamSid }; }); @@ -92,6 +101,15 @@ export async function twilioStreamWorkflow() { interactionCount += 1; + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "1 minute", + }).sendEvent({ + streamSid, + eventName: questionEvent.name, + data: { text: finalResult }, + }); + await step({ podName: `openai`, scheduleToCloseTimeout: "2 minutes", @@ -109,6 +127,15 @@ export async function twilioStreamWorkflow() { scheduleToCloseTimeout: "2 minutes", }).textToAudio({ streamSid, trackName, gptReply, interactionCount }); + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "1 minute", + }).sendEvent({ + streamSid, + eventName: answerEvent.name, + data: { text: gptReply.partialResponse }, + }); + log.info("audio", { audio: audio?.length }); if (audio) { From b532afc32edc0683c90f91ff960df10c51e4fe37 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sat, 10 Aug 2024 13:10:33 +0200 Subject: [PATCH 023/122] bump hello Former-commit-id: 961070b3cafdc8256fbb2ce37a677a0d002759d1 Former-commit-id: 0cce61822e293fa91f43d37b5e952ca01166c868 --- examples/hello/package.json | 4 ++-- examples/hello/pnpm-lock.yaml | 10 +++++----- examples/hello/scheduleWorkflow.ts | 9 ++++----- examples/hello/src/{run.ts => pods.ts} | 0 4 files changed, 11 insertions(+), 12 deletions(-) rename examples/hello/src/{run.ts => pods.ts} (100%) diff --git a/examples/hello/package.json b/examples/hello/package.json index ec18779..9b739a0 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start.watch": "nodemon src/run.ts", + "start.watch": "nodemon src/pods.ts", "dev": "pnpm start.watch", "workflow": "ts-node ./scheduleWorkflow.ts", "test": "echo \"Error: no test specified\" && exit 1" @@ -23,7 +23,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "0.0.23", + "@restackio/restack-sdk-ts": "^0.0.33", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" }, diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 21d2248..68af2cd 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/restack-sdk-ts': - specifier: 0.0.23 - version: 0.0.23 + specifier: ^0.0.33 + version: 0.0.33 '@temporalio/worker': specifier: ^1.10.3 version: 1.10.3 @@ -130,8 +130,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.23': - resolution: {integrity: sha512-7blKzeavHhaeA+3orG42XfhkwOV72dShqJMqaYsZPz4B51OVcoUParRy+HUceWw9CdHBib3sLSoQtwDKK32OkQ==} + '@restackio/restack-sdk-ts@0.0.33': + resolution: {integrity: sha512-buqR0wQL10fZcpDaKjgG7b8gGHq6ocImqLhBl5KzOOejsrnTTJv60ZsZbZXJsBus3WUj6y3DJKJqGMjMBiQZ/Q==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1007,7 +1007,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.23': + '@restackio/restack-sdk-ts@0.0.33': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/hello/scheduleWorkflow.ts b/examples/hello/scheduleWorkflow.ts index 2219b41..fb0c46a 100644 --- a/examples/hello/scheduleWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -4,7 +4,8 @@ async function scheduleWorkflow() { try { const restack = new Restack(); - const handle = await restack.schedule({ + const workflowId = `${Date.now()}-exampleWorkflow`; + const runId = await restack.schedule({ workflowName: "example", workflowId: `${Date.now()}-exampleWorkflow`, input: [ @@ -14,11 +15,9 @@ async function scheduleWorkflow() { ], }); - console.log("Workflow scheduled successfully:", handle.firstExecutionRunId); + const result = await restack.getResult(workflowId, runId); - handle.result().then((result) => { - console.log("Workflow result:", result); - }); + console.log("Workflow result:", result); process.exit(0); // Exit the process successfully } catch (error) { diff --git a/examples/hello/src/run.ts b/examples/hello/src/pods.ts similarity index 100% rename from examples/hello/src/run.ts rename to examples/hello/src/pods.ts From 7b2103f6cfe01e9cc7ff84b8cc5b714c9a638098 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 11 Aug 2024 23:06:02 +0200 Subject: [PATCH 024/122] refactor Former-commit-id: 1f44bdc526b79f5d92a1aea79ae5fa5d2931a0a4 Former-commit-id: 6bcb185f83140b3497275ca6a2e0d133287680e3 --- examples/twilio/package.json | 11 +- examples/twilio/pnpm-lock.yaml | 255 +++++++++------- examples/twilio/src/.DS_Store | Bin 0 -> 6148 bytes .../twilio/src/functions/deepgram/index.ts | 4 +- .../twilio/src/functions/deepgram/listen.ts | 61 ++++ .../twilio/src/functions/deepgram/speak.ts | 74 +++++ .../src/functions/deepgram/textToAudio.ts | 112 ------- .../src/functions/deepgram/textToSpeech.ts | 76 ----- .../src/functions/deepgram/transcribe.ts | 134 -------- .../{openai/tools => erp}/checkInventory.ts | 13 +- .../{openai/tools => erp}/checkPrice.ts | 12 +- examples/twilio/src/functions/erp/index.ts | 4 + .../{openai/tools => erp}/placeOrder.ts | 13 +- examples/twilio/src/functions/erp/tools.ts | 41 +++ examples/twilio/src/functions/index.ts | 3 + .../twilio/src/functions/openai/answer.ts | 22 +- examples/twilio/src/functions/openai/chat.ts | 287 ++++++++---------- examples/twilio/src/functions/openai/index.ts | 1 + .../twilio/src/functions/openai/prompt.ts | 38 +-- .../functions/openai/tools/toolDefinitions.ts | 67 ---- .../functions/openai/utils/aggregateStream.ts | 26 ++ .../functions/openai/utils/mergeToolCalls.ts | 42 +++ examples/twilio/src/functions/utils/index.ts | 1 + .../twilio/src/functions/utils/updateAgent.ts | 27 ++ .../websocket}/connect.ts | 2 +- .../twilio/src/functions/websocket/index.ts | 4 + .../websocket/listenMedia.ts} | 4 +- .../websocket/listenQuestion.ts} | 4 +- .../websocket}/sendAudio.ts | 2 +- .../websocket}/sendEvent.ts | 0 examples/twilio/src/pods.ts | 42 ++- examples/twilio/src/server.ts | 68 ++--- examples/twilio/src/streams/index.ts | 6 - examples/twilio/src/threads/agent.ts | 164 ++++++++++ examples/twilio/src/threads/index.ts | 3 + examples/twilio/src/threads/stream.ts | 199 ++++++++++++ .../src/{workflows => threads}/twilioCall.ts | 0 examples/twilio/src/workflows/index.ts | 2 - examples/twilio/src/workflows/twilioStream.ts | 161 ---------- 39 files changed, 1049 insertions(+), 936 deletions(-) create mode 100644 examples/twilio/src/.DS_Store create mode 100644 examples/twilio/src/functions/deepgram/listen.ts create mode 100644 examples/twilio/src/functions/deepgram/speak.ts delete mode 100644 examples/twilio/src/functions/deepgram/textToAudio.ts delete mode 100644 examples/twilio/src/functions/deepgram/textToSpeech.ts delete mode 100644 examples/twilio/src/functions/deepgram/transcribe.ts rename examples/twilio/src/functions/{openai/tools => erp}/checkInventory.ts (53%) rename examples/twilio/src/functions/{openai/tools => erp}/checkPrice.ts (54%) create mode 100644 examples/twilio/src/functions/erp/index.ts rename examples/twilio/src/functions/{openai/tools => erp}/placeOrder.ts (67%) create mode 100644 examples/twilio/src/functions/erp/tools.ts delete mode 100644 examples/twilio/src/functions/openai/tools/toolDefinitions.ts create mode 100644 examples/twilio/src/functions/openai/utils/aggregateStream.ts create mode 100644 examples/twilio/src/functions/openai/utils/mergeToolCalls.ts create mode 100644 examples/twilio/src/functions/utils/index.ts create mode 100644 examples/twilio/src/functions/utils/updateAgent.ts rename examples/twilio/src/{streams => functions/websocket}/connect.ts (90%) create mode 100644 examples/twilio/src/functions/websocket/index.ts rename examples/twilio/src/{streams/websocket.ts => functions/websocket/listenMedia.ts} (90%) rename examples/twilio/src/{streams/question.ts => functions/websocket/listenQuestion.ts} (91%) rename examples/twilio/src/{streams => functions/websocket}/sendAudio.ts (88%) rename examples/twilio/src/{streams => functions/websocket}/sendEvent.ts (100%) delete mode 100644 examples/twilio/src/streams/index.ts create mode 100644 examples/twilio/src/threads/agent.ts create mode 100644 examples/twilio/src/threads/index.ts create mode 100644 examples/twilio/src/threads/stream.ts rename examples/twilio/src/{workflows => threads}/twilioCall.ts (100%) delete mode 100644 examples/twilio/src/workflows/index.ts delete mode 100644 examples/twilio/src/workflows/twilioStream.ts diff --git a/examples/twilio/package.json b/examples/twilio/package.json index 94e0659..f978189 100644 --- a/examples/twilio/package.json +++ b/examples/twilio/package.json @@ -13,23 +13,24 @@ "author": "", "license": "ISC", "dependencies": { - "@deepgram/sdk": "^3.5.0", + "@deepgram/sdk": "^3.5.1", "@restackio/restack-sdk-ts": "^0.0.33", - "@temporalio/workflow": "^1.10.3", + "@temporalio/workflow": "1.10.3", "axios": "^1.7.3", "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.19.2", - "openai": "^4.54.0", + "openai": "^4.55.4", "twilio": "^5.2.2", "typescript": "^5.5.4", "uuid": "^10.0.0", - "ws": "^8.18.0" + "ws": "^8.18.0", + "zod": "^3.23.8" }, "devDependencies": { "@types/cors": "^2.8.17", "@types/express": "^4.17.21", - "@types/node": "^22.1.0", + "@types/node": "^22.2.0", "@types/uuid": "^10.0.0", "@types/ws": "^8.5.12", "nodemon": "^3.1.4", diff --git a/examples/twilio/pnpm-lock.yaml b/examples/twilio/pnpm-lock.yaml index 1161b74..94b7c27 100644 --- a/examples/twilio/pnpm-lock.yaml +++ b/examples/twilio/pnpm-lock.yaml @@ -9,13 +9,13 @@ importers: .: dependencies: '@deepgram/sdk': - specifier: ^3.5.0 - version: 3.5.0(bufferutil@4.0.8) + specifier: ^3.5.1 + version: 3.5.1(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/restack-sdk-ts': specifier: ^0.0.33 version: 0.0.33 '@temporalio/workflow': - specifier: ^1.10.3 + specifier: 1.10.3 version: 1.10.3 axios: specifier: ^1.7.3 @@ -30,8 +30,8 @@ importers: specifier: ^4.19.2 version: 4.19.2 openai: - specifier: ^4.54.0 - version: 4.54.0 + specifier: ^4.55.4 + version: 4.55.4(encoding@0.1.12)(zod@3.23.8) twilio: specifier: ^5.2.2 version: 5.2.2 @@ -44,6 +44,9 @@ importers: ws: specifier: ^8.18.0 version: 8.18.0(bufferutil@4.0.8) + zod: + specifier: ^3.23.8 + version: 3.23.8 optionalDependencies: bufferutil: specifier: ^4.0.8 @@ -56,8 +59,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^22.1.0 - version: 22.1.0 + specifier: ^22.2.0 + version: 22.2.0 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 @@ -69,10 +72,10 @@ importers: version: 3.1.4 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4) ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4) + version: 2.0.0(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4) packages: @@ -84,8 +87,8 @@ packages: resolution: {integrity: sha512-8B1C/oTxTxyHlSFubAhNRgCbQ2SQ5wwvtlByn8sDYZvdDtdn/VE2yEPZ4BvUnrKWmsbTQY6/ooLV+9Ka2qmDSQ==} engines: {node: '>=18.0.0'} - '@deepgram/sdk@3.5.0': - resolution: {integrity: sha512-RD5JKxoBTJrj12BnAnAcDx6yFEs6uRU0DhwzCJeL4Meo9Sac4lb6MbEuZ04/VvtFCvh840EzuLrevFxXxcUNuQ==} + '@deepgram/sdk@3.5.1': + resolution: {integrity: sha512-lcCyvJ1AE5+TkWAyV0iLAFjOCWpjxDf3sAijTQuqVPlbvJuzP6kttqH3kB3/uElu7DOpvQVKw5VE7J6/dn8S+A==} engines: {node: '>=18.0.0'} '@grpc/grpc-js@1.11.1': @@ -130,8 +133,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.0.4': - resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -176,68 +179,68 @@ packages: resolution: {integrity: sha512-buqR0wQL10fZcpDaKjgG7b8gGHq6ocImqLhBl5KzOOejsrnTTJv60ZsZbZXJsBus3WUj6y3DJKJqGMjMBiQZ/Q==} engines: {node: '>=20'} - '@swc/core-darwin-arm64@1.7.6': - resolution: {integrity: sha512-6lYHey84ZzsdtC7UuPheM4Rm0Inzxm6Sb8U6dmKc4eCx8JL0LfWG4LC5RsdsrTxnjTsbriWlnhZBffh8ijUHIQ==} + '@swc/core-darwin-arm64@1.7.10': + resolution: {integrity: sha512-TYp4x/9w/C/yMU1olK5hTKq/Hi7BjG71UJ4V1U1WxI1JA3uokjQ/GoktDfmH5V5pX4dgGSOJwUe2RjoN8Z/XnA==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.6': - resolution: {integrity: sha512-Fyl+8aH9O5rpx4O7r2KnsPpoi32iWoKOYKiipeTbGjQ/E95tNPxbmsz4yqE8Ovldcga60IPJ5OKQA3HWRiuzdw==} + '@swc/core-darwin-x64@1.7.10': + resolution: {integrity: sha512-P3LJjAWh5yLc6p5IUwV5LgRfA3R1oDCZDMabYyb2BVQuJTD4MfegW9DhBcUUF5dhBLwq3191KpLVzE+dLTbiXw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.6': - resolution: {integrity: sha512-2WxYTqFaOx48GKC2cbO1/IntA+w+kfCFy436Ij7qRqqtV/WAvTM9TC1OmiFbqq436rSot52qYmX8fkwdB5UcLQ==} + '@swc/core-linux-arm-gnueabihf@1.7.10': + resolution: {integrity: sha512-yGOFjE7w/akRTmqGY3FvWYrqbxO7OB2N2FHj2LO5HtzXflfoABb5RyRvdEquX+17J6mEpu4EwjYNraTD/WHIEQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.6': - resolution: {integrity: sha512-TBEGMSe0LhvPe4S7E68c7VzgT3OMu4VTmBLS7B2aHv4v8uZO92Khpp7L0WqgYU1y5eMjk+XLDLi4kokiNHv/Hg==} + '@swc/core-linux-arm64-gnu@1.7.10': + resolution: {integrity: sha512-SPWsgWHfdWKKjLrYlvhxcdBJ7Ruy6crJbPoE9NfD95eJEjMnS2yZTqj2ChFsY737WeyhWYlHzgYhYOVCp83YwQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.6': - resolution: {integrity: sha512-QI8QGL0HGT42tj7F1A+YAzhGkJjUcvvTfI1e2m704W0Enl2/UIK9v5D1zvQzYwusRyKuaQfbeBRYDh0NcLOGLg==} + '@swc/core-linux-arm64-musl@1.7.10': + resolution: {integrity: sha512-PUi50bkNqnBL3Z/Zq6jSfwgN9A/taA6u2Zou0tjDJi7oVdpjdr7SxNgCGzMJ/nNg5D/IQn1opM1jktMvpsPAuQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.6': - resolution: {integrity: sha512-61AYVzhjuNQAVIKKWOJu3H0/pFD28RYJGxnGg3YMhvRLRyuWNyY5Nyyj2WkKcz/ON+g38Arlz00NT1LDIViRLg==} + '@swc/core-linux-x64-gnu@1.7.10': + resolution: {integrity: sha512-Sc+pY55gknCAmBQBR6DhlA7jZSxHaLSDb5Sevzi6DOFMXR79NpA6zWTNKwp1GK2AnRIkbAfvYLgOxS5uWTFVpg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.6': - resolution: {integrity: sha512-hQFznpfLK8XajfAAN9Cjs0w/aVmO7iu9VZvInyrTCRcPqxV5O+rvrhRxKvC1LRMZXr5M6JRSRtepp5w+TK4kAw==} + '@swc/core-linux-x64-musl@1.7.10': + resolution: {integrity: sha512-g5NKx2LXaGd0K26hmEts1Cvb7ptIvq3MHSgr6/D1tRPcDZw1Sp0dYsmyOv0ho4F5GOJyiCooG3oE9FXdb7jIpQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.6': - resolution: {integrity: sha512-Aqsd9afykVMuekzjm4X4TDqwxmG4CrzoOSFe0hZrn9SMio72l5eAPnMtYoe5LsIqtjV8MNprLfXaNbjHjTegmA==} + '@swc/core-win32-arm64-msvc@1.7.10': + resolution: {integrity: sha512-plRIsOcfy9t9Q/ivm5DA7I0HaIvfAWPbI+bvVRrr3C/1K2CSqnqZJjEWOAmx2LiyipijNnEaFYuLBp0IkGuJpg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.6': - resolution: {integrity: sha512-9h0hYnOeRVNeQgHQTvD1Im67faNSSzBZ7Adtxyu9urNLfBTJilMllFd2QuGHlKW5+uaT6ZH7ZWDb+c/enx7Lcg==} + '@swc/core-win32-ia32-msvc@1.7.10': + resolution: {integrity: sha512-GntrVNT23viHtbfzmlK8lfBiKeajH24GzbDT7qXhnoO20suUPcyYZxyvCb4gWM2zu8ZBTPHNlqfrNsriQCZ+lQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.6': - resolution: {integrity: sha512-izeoB8glCSe6IIDQmrVm6bvR9muk9TeKgmtY7b6l1BwL4BFnTUk4dMmpbntT90bEVQn3JPCaPtUG4HfL8VuyuA==} + '@swc/core-win32-x64-msvc@1.7.10': + resolution: {integrity: sha512-uXIF8GuSappe1imm6Lf7pHGepfCBjDQlS+qTqvEGE0wZAsL1IVATK9P/cH/OCLfJXeQDTLeSYmrpwjtXNt46tQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.6': - resolution: {integrity: sha512-FZxyao9eQks1MRmUshgsZTmlg/HB2oXK5fghkoWJm/1CU2q2kaJlVDll2as5j+rmWiwkp0Gidlq8wlXcEEAO+g==} + '@swc/core@1.7.10': + resolution: {integrity: sha512-l0xrFwBQ9atizhmV94yC2nwcecTk/oftofwMNPiFMGe56dqdmi2ArHaTV3PCtMlgaUH6rGCehoRMt5OrCI1ktg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -321,11 +324,11 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@18.19.43': - resolution: {integrity: sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==} + '@types/node@18.19.44': + resolution: {integrity: sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==} - '@types/node@22.1.0': - resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==} + '@types/node@22.2.0': + resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} '@types/qs@6.9.15': resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} @@ -508,8 +511,8 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001647: - resolution: {integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==} + caniuse-lite@1.0.30001651: + resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -626,8 +629,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.4: - resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} + electron-to-chromium@1.5.6: + resolution: {integrity: sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -636,6 +639,9 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encoding@0.1.12: + resolution: {integrity: sha512-bl1LAgiQc4ZWr++pNYUdRe/alecaHFeHxIJ/pNciqGdKXghaTCOwKkbKp6ye7pKZGu/GcaSXFk8PBVhgs+dJdA==} + enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -1023,9 +1029,14 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - openai@4.54.0: - resolution: {integrity: sha512-e/12BdtTtj+tXs7iHm+Dm7H7WjEWnw7O52B2wSfCQ6lD5F6cvjzo7cANXy5TJ1Q3/qc8YRPT5wBTTFtP5sBp1g==} + openai@4.55.4: + resolution: {integrity: sha512-TEC75Y6U/OKIJp9fHao3zkTYfKLYGqXdD2TI+xN2Zd5W8KNKvv6E4/OBTOW7jg7fySfrBrhy5fYzBbyBcdHEtQ==} hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} @@ -1232,8 +1243,8 @@ packages: uglify-js: optional: true - terser@5.31.3: - resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} + terser@5.31.5: + resolution: {integrity: sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==} engines: {node: '>=10'} hasBin: true @@ -1432,6 +1443,9 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + snapshots: '@cspotcode/source-map-support@0.8.1': @@ -1442,10 +1456,10 @@ snapshots: dependencies: dayjs: 1.11.12 - '@deepgram/sdk@3.5.0(bufferutil@4.0.8)': + '@deepgram/sdk@3.5.1(bufferutil@4.0.8)(encoding@0.1.12)': dependencies: '@deepgram/captions': 1.2.0 - cross-fetch: 3.1.8 + cross-fetch: 3.1.8(encoding@0.1.12) deepmerge: 4.3.1 events: 3.3.0 ws: 8.18.0(bufferutil@4.0.8) @@ -1499,7 +1513,7 @@ snapshots: dependencies: tslib: 2.6.3 - '@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.6.3)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) @@ -1546,51 +1560,51 @@ snapshots: - uglify-js - webpack-cli - '@swc/core-darwin-arm64@1.7.6': + '@swc/core-darwin-arm64@1.7.10': optional: true - '@swc/core-darwin-x64@1.7.6': + '@swc/core-darwin-x64@1.7.10': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.6': + '@swc/core-linux-arm-gnueabihf@1.7.10': optional: true - '@swc/core-linux-arm64-gnu@1.7.6': + '@swc/core-linux-arm64-gnu@1.7.10': optional: true - '@swc/core-linux-arm64-musl@1.7.6': + '@swc/core-linux-arm64-musl@1.7.10': optional: true - '@swc/core-linux-x64-gnu@1.7.6': + '@swc/core-linux-x64-gnu@1.7.10': optional: true - '@swc/core-linux-x64-musl@1.7.6': + '@swc/core-linux-x64-musl@1.7.10': optional: true - '@swc/core-win32-arm64-msvc@1.7.6': + '@swc/core-win32-arm64-msvc@1.7.10': optional: true - '@swc/core-win32-ia32-msvc@1.7.6': + '@swc/core-win32-ia32-msvc@1.7.10': optional: true - '@swc/core-win32-x64-msvc@1.7.6': + '@swc/core-win32-x64-msvc@1.7.10': optional: true - '@swc/core@1.7.6': + '@swc/core@1.7.10': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.6 - '@swc/core-darwin-x64': 1.7.6 - '@swc/core-linux-arm-gnueabihf': 1.7.6 - '@swc/core-linux-arm64-gnu': 1.7.6 - '@swc/core-linux-arm64-musl': 1.7.6 - '@swc/core-linux-x64-gnu': 1.7.6 - '@swc/core-linux-x64-musl': 1.7.6 - '@swc/core-win32-arm64-msvc': 1.7.6 - '@swc/core-win32-ia32-msvc': 1.7.6 - '@swc/core-win32-x64-msvc': 1.7.6 + '@swc/core-darwin-arm64': 1.7.10 + '@swc/core-darwin-x64': 1.7.10 + '@swc/core-linux-arm-gnueabihf': 1.7.10 + '@swc/core-linux-arm64-gnu': 1.7.10 + '@swc/core-linux-arm64-musl': 1.7.10 + '@swc/core-linux-x64-gnu': 1.7.10 + '@swc/core-linux-x64-musl': 1.7.10 + '@swc/core-win32-arm64-msvc': 1.7.10 + '@swc/core-win32-ia32-msvc': 1.7.10 + '@swc/core-win32-x64-msvc': 1.7.10 '@swc/counter@0.1.3': {} @@ -1633,7 +1647,7 @@ snapshots: '@temporalio/worker@1.10.3': dependencies: - '@swc/core': 1.7.6 + '@swc/core': 1.7.10 '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 '@temporalio/common': 1.10.3 @@ -1645,11 +1659,11 @@ snapshots: memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.6)) + source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.10)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)) + swc-loader: 0.2.6(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)) unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.6) + webpack: 5.93.0(@swc/core@1.7.10) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1672,15 +1686,15 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.1.0 + '@types/node': 22.2.0 '@types/connect@3.4.38': dependencies: - '@types/node': 22.1.0 + '@types/node': 22.2.0 '@types/cors@2.8.17': dependencies: - '@types/node': 22.1.0 + '@types/node': 22.2.0 '@types/eslint-scope@3.7.7': dependencies: @@ -1696,7 +1710,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.1.0 + '@types/node': 22.2.0 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -1716,14 +1730,14 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.1.0 + '@types/node': 22.2.0 form-data: 4.0.0 - '@types/node@18.19.43': + '@types/node@18.19.44': dependencies: undici-types: 5.26.5 - '@types/node@22.1.0': + '@types/node@22.2.0': dependencies: undici-types: 6.13.0 @@ -1734,12 +1748,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.1.0 + '@types/node': 22.2.0 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.1.0 + '@types/node': 22.2.0 '@types/send': 0.17.4 '@types/strip-bom@3.0.0': {} @@ -1750,7 +1764,7 @@ snapshots: '@types/ws@8.5.12': dependencies: - '@types/node': 22.1.0 + '@types/node': 22.2.0 '@webassemblyjs/ast@1.12.1': dependencies: @@ -1931,8 +1945,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001647 - electron-to-chromium: 1.5.4 + caniuse-lite: 1.0.30001651 + electron-to-chromium: 1.5.6 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -1955,7 +1969,7 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - caniuse-lite@1.0.30001647: {} + caniuse-lite@1.0.30001651: {} cargo-cp-artifact@0.1.9: {} @@ -2010,9 +2024,9 @@ snapshots: create-require@1.1.1: {} - cross-fetch@3.1.8: + cross-fetch@3.1.8(encoding@0.1.12): dependencies: - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.12) transitivePeerDependencies: - encoding @@ -2056,12 +2070,17 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.4: {} + electron-to-chromium@1.5.6: {} emoji-regex@8.0.0: {} encodeurl@1.0.2: {} + encoding@0.1.12: + dependencies: + iconv-lite: 0.4.24 + optional: true + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -2293,7 +2312,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.1.0 + '@types/node': 22.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2351,7 +2370,7 @@ snapshots: memfs@4.11.1: dependencies: - '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.6.3) '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) tree-dump: 1.0.2(tslib@2.6.3) tslib: 2.6.3 @@ -2392,9 +2411,11 @@ snapshots: node-domexception@1.0.0: {} - node-fetch@2.7.0: + node-fetch@2.7.0(encoding@0.1.12): dependencies: whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.12 node-gyp-build@4.8.1: optional: true @@ -2428,15 +2449,17 @@ snapshots: dependencies: wrappy: 1.0.2 - openai@4.54.0: + openai@4.55.4(encoding@0.1.12)(zod@3.23.8): dependencies: - '@types/node': 18.19.43 + '@types/node': 18.19.44 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 - node-fetch: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.12) + optionalDependencies: + zod: 3.23.8 transitivePeerDependencies: - encoding @@ -2468,7 +2491,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.1.0 + '@types/node': 22.2.0 long: 5.2.3 proxy-addr@2.0.7: @@ -2592,11 +2615,11 @@ snapshots: source-map-js@1.2.0: {} - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.6)): + source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.10)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.6) + webpack: 5.93.0(@swc/core@1.7.10) source-map-support@0.5.21: dependencies: @@ -2633,26 +2656,26 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)): + swc-loader@0.2.6(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)): dependencies: - '@swc/core': 1.7.6 + '@swc/core': 1.7.10 '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.6) + webpack: 5.93.0(@swc/core@1.7.10) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.3 - webpack: 5.93.0(@swc/core@1.7.6) + terser: 5.31.5 + webpack: 5.93.0(@swc/core@1.7.10) optionalDependencies: - '@swc/core': 1.7.6 + '@swc/core': 1.7.10 - terser@5.31.3: + terser@5.31.5: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -2679,7 +2702,7 @@ snapshots: tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4): + ts-node-dev@2.0.0(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -2689,7 +2712,7 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4) tsconfig: 7.0.0 typescript: 5.5.4 transitivePeerDependencies: @@ -2697,14 +2720,14 @@ snapshots: - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.7.6)(@types/node@22.1.0)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.1.0 + '@types/node': 22.2.0 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 @@ -2715,7 +2738,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.6 + '@swc/core': 1.7.10 tsconfig@7.0.0: dependencies: @@ -2789,7 +2812,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.93.0(@swc/core@1.7.6): + webpack@5.93.0(@swc/core@1.7.10): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -2812,7 +2835,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.6)(webpack@5.93.0(@swc/core@1.7.6)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -2860,3 +2883,5 @@ snapshots: yargs-parser: 21.1.1 yn@3.1.1: {} + + zod@3.23.8: {} diff --git a/examples/twilio/src/.DS_Store b/examples/twilio/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..cfe41ca458ca50fbda0a03d821f24875d52659a5 GIT binary patch literal 6148 zcmeHK%Sr=55Ukc5B3^RLael!+7()Dl{D7cD0XfETHT?waZ8 znq}*-y$!%tho?JW0bovd#L>gl{M>zFSCug$op-!rhdlC5X)v#9lZiGDEYZ5|e5*Vp!6dZ&lX|$Hb(=YWT2vvekrQ@pRtbq8!!}6{Ua_ zI91>}w+rw8_w--p|5K87Qa}p)D+O$}-mF)ArRuGdm-AlR=nr(S`J}sX9TbLW$HZvI h+;}@)Mp4!^U-P^dj)_5MKIlaK47e^bDe%_{d;vd*6~F)h literal 0 HcmV?d00001 diff --git a/examples/twilio/src/functions/deepgram/index.ts b/examples/twilio/src/functions/deepgram/index.ts index ed7e8bb..89ff4ad 100644 --- a/examples/twilio/src/functions/deepgram/index.ts +++ b/examples/twilio/src/functions/deepgram/index.ts @@ -1,2 +1,2 @@ -export * from "./transcribe"; -export * from "./textToAudio"; +export * from "./speak"; +export * from "./listen"; diff --git a/examples/twilio/src/functions/deepgram/listen.ts b/examples/twilio/src/functions/deepgram/listen.ts new file mode 100644 index 0000000..46d6fef --- /dev/null +++ b/examples/twilio/src/functions/deepgram/listen.ts @@ -0,0 +1,61 @@ +import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; +import { TrackName } from "../../threads"; +import { Buffer } from "node:buffer"; +import "dotenv/config"; +import { createClient } from "@deepgram/sdk"; + +export async function deepgramListen({ + streamSid, + trackName, + payload, +}: { + streamSid: string; + trackName: TrackName; + payload: string; +}) { + if (!payload) { + throw FunctionFailure.nonRetryable("No audio file"); + } + + try { + const deepgram = createClient(process.env.DEEPGRAM_API_KEY); + const decodedBuffer = Buffer.from(payload, "base64"); + + const response = await deepgram.listen.prerecorded.transcribeFile( + decodedBuffer, + { + encoding: "mulaw", + sample_rate: 8000, + model: "nova-2", + punctuate: true, + interim_results: true, + endpointing: 500, + utterance_end_ms: 2000, + } + ); + + if (response.error) { + log.error("deepgramListen error", { error: response.error }); + } + + const results = response.result?.results; + + log.info("deepgramListen results: ", { + results: results, + }); + + const transcript = results?.channels[0].alternatives[0].transcript; + + log.info("deepgramListen transcript: ", { + transcript: transcript, + }); + + return { + streamSid, + trackName, + finalResult: transcript ?? "", + }; + } catch (error) { + throw new Error(`Deepgram TTS error ${error}`); + } +} diff --git a/examples/twilio/src/functions/deepgram/speak.ts b/examples/twilio/src/functions/deepgram/speak.ts new file mode 100644 index 0000000..4f4740c --- /dev/null +++ b/examples/twilio/src/functions/deepgram/speak.ts @@ -0,0 +1,74 @@ +import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; +import { TrackName } from "../../threads"; +import { Buffer } from "node:buffer"; +import "dotenv/config"; +import { createClient } from "@deepgram/sdk"; + +const getAudioBuffer = async (stream: ReadableStream) => { + const reader = stream.getReader(); + const chunks = []; + + while (true) { + const { done, value } = await reader.read(); + if (done) break; + + chunks.push(value); + } + + const dataArray = chunks.reduce( + (acc, chunk) => Uint8Array.from([...acc, ...chunk]), + new Uint8Array(0) + ); + + const buffer = Buffer.from(dataArray.buffer); + return buffer; +}; + +export async function deepgramSpeak({ + streamSid, + trackName, + text, +}: { + streamSid: string; + trackName: TrackName; + text: string; +}): Promise<{ streamSid: string; audio: string }> { + if (!text.length) { + throw FunctionFailure.nonRetryable("Text is empty"); + } + const deepgramModel = + trackName === "agent" ? "aura-arcas-en" : "aura-asteria-en"; + + try { + const deepgram = createClient(process.env.DEEPGRAM_API_KEY); + + const response = await deepgram.speak.request( + { text }, + { + model: deepgramModel, + encoding: "mulaw", + sample_rate: 8000, + container: "none", + } + ); + // STEP 3: Get the audio stream and headers from the response + const stream = await response.getStream(); + + if (!stream) { + throw new Error(`Deepgram speak stream error ${response}`); + } + + // STEP 4: Convert the stream to an audio buffer + const buffer = await getAudioBuffer(stream); + if (!buffer) { + throw new Error(`Deepgram audio buffer error ${stream}`); + } + const base64String = buffer.toString("base64"); + log.info("deepgramSpeak: ", { + audioLength: base64String.length, + }); + return { streamSid, audio: base64String }; + } catch (error) { + throw new Error(`Deepgram TTS error ${error}`); + } +} diff --git a/examples/twilio/src/functions/deepgram/textToAudio.ts b/examples/twilio/src/functions/deepgram/textToAudio.ts deleted file mode 100644 index 9f58e53..0000000 --- a/examples/twilio/src/functions/deepgram/textToAudio.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { log } from "@restackio/restack-sdk-ts/function"; -import { Answer } from "../../workflows"; -import { Buffer } from "node:buffer"; -import axios from "axios"; - -export async function textToAudio({ - streamSid, - trackName, - gptReply, - interactionCount, -}: Answer) { - const { partialResponseIndex, partialResponse } = gptReply; - if (!partialResponse) throw new Error("No partial response provided"); - - const deepgramModel = - trackName === "agent" ? "aura-asteria-en" : "aura-arcas-en"; - - const audioBuffers: { - [interactionCount: number]: { [index: number]: string }; - } = {}; - const expectedAudioIndices: { [interactionCount: number]: number } = {}; - - async function generateTTS({ - gptReply, - trackName, - }: { - gptReply: { partialResponseIndex: number | null; partialResponse: any }; - trackName: string; - }): Promise { - try { - const response = await axios.post( - `https://api.deepgram.com/v1/speak?model=${deepgramModel}&encoding=mulaw&sample_rate=8000&container=none`, - { text: partialResponse }, - { - headers: { - Authorization: `Token ${process.env.DEEPGRAM_API_KEY}`, - "Content-Type": "application/json", - }, - responseType: "arraybuffer", - } - ); - - if (response.status === 200) { - const base64String = Buffer.from(response.data).toString("base64"); - log.info("TextToAudio -> speech", { - partialResponseIndex, - audioLength: base64String.length, - interactionCount, - }); - return base64String; - } else { - log.error("Deepgram TTS error:", { response }); - throw new Error("Deepgram TTS error"); - } - } catch (err) { - log.error("Error occurred in TextToSpeech service", { err }); - throw err; - } - } - - function bufferAudio( - interactionCount: number, - index: number | null, - audio: string - ): string { - if (!audioBuffers[interactionCount]) { - audioBuffers[interactionCount] = {}; - expectedAudioIndices[interactionCount] = 0; - } - - const expectedAudioIndex = expectedAudioIndices[interactionCount]; - log.info("Buffering audio", { - interactionCount, - index, - expectedAudioIndex, - }); - - if (index === null || index === expectedAudioIndex) { - if (index !== null) expectedAudioIndices[interactionCount]++; - while ( - audioBuffers[interactionCount][expectedAudioIndices[interactionCount]] - ) { - const bufferedAudio = - audioBuffers[interactionCount][ - expectedAudioIndices[interactionCount] - ]; - audioBuffers[interactionCount][expectedAudioIndices[interactionCount]] = - bufferedAudio; - delete audioBuffers[interactionCount][ - expectedAudioIndices[interactionCount] - ]; - expectedAudioIndices[interactionCount]++; - } - return audio; - } else { - audioBuffers[interactionCount][index] = audio; - } - } - - const audio = await generateTTS({ gptReply, trackName }); - const bufferedAudio = bufferAudio( - interactionCount, - partialResponseIndex, - audio - ); - - return { - streamSid, - trackName, - audio: bufferedAudio, - }; -} diff --git a/examples/twilio/src/functions/deepgram/textToSpeech.ts b/examples/twilio/src/functions/deepgram/textToSpeech.ts deleted file mode 100644 index 33c3feb..0000000 --- a/examples/twilio/src/functions/deepgram/textToSpeech.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Buffer } from "node:buffer"; -import { EventEmitter } from "events"; -import axios from "axios"; -import "dotenv/config"; -import { log } from "@restackio/restack-sdk-ts/function"; -import { TrackName } from "../../workflows"; - -class DeepgramTextToSpeech extends EventEmitter { - private nextExpectedIndex: number; - private speechBuffer: { [key: number]: string }; - - constructor() { - super(); - this.nextExpectedIndex = 0; - this.speechBuffer = {}; - } - - async generate({ - gptReply, - interactionCount, - trackName, - }: { - gptReply: { partialResponseIndex: number | null; partialResponse: any }; - interactionCount: number; - trackName: TrackName; - }) { - const { partialResponseIndex, partialResponse } = gptReply; - - if (!partialResponse) { - return; - } - - // Deepgram voice model, see options here: https://developers.deepgram.com/docs/tts-models - - const deepgramModel = - trackName === "agent" ? "aura-asteria-en" : "aura-arcas-en"; - - try { - const response = await axios.post( - `https://api.deepgram.com/v1/speak?model=${deepgramModel}&encoding=mulaw&sample_rate=8000&container=none`, - { - text: partialResponse, - }, - { - headers: { - Authorization: `Token ${process.env.DEEPGRAM_API_KEY}`, - "Content-Type": "application/json", - }, - responseType: "arraybuffer", - } - ); - - if (response.status === 200) { - try { - const audioArrayBuffer = response.data; - const base64String = Buffer.from(audioArrayBuffer).toString("base64"); - this.emit( - "speech", - partialResponseIndex, - base64String, - partialResponse, - interactionCount - ); - } catch (err) { - log.error("Error in Deepgram TTS:", { err }); - } - } else { - log.error("Deepgram TTS error:", { response }); - } - } catch (err) { - log.error("Error occurred in TextToSpeech service", { err }); - } - } -} - -export { DeepgramTextToSpeech }; diff --git a/examples/twilio/src/functions/deepgram/transcribe.ts b/examples/twilio/src/functions/deepgram/transcribe.ts deleted file mode 100644 index e3dd361..0000000 --- a/examples/twilio/src/functions/deepgram/transcribe.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { - createClient, - LiveTranscriptionEvent, - LiveTranscriptionEvents, -} from "@deepgram/sdk"; -import { Buffer } from "node:buffer"; -import { log } from "@restackio/restack-sdk-ts/function"; -import "dotenv/config"; - -type Output = { - streamSid: string; - trackName: string; - finalResult: string; -}; - -export async function transcribe({ - streamSid, - trackName, - payload, -}: { - streamSid: string; - trackName: string; - payload: string; -}): Promise { - return new Promise((resolve, reject) => { - const deepgram = createClient(process.env.DEEPGRAM_API_KEY); - const dgConnection = deepgram.listen.live({ - encoding: "mulaw", - sample_rate: 8000, - model: "nova-2", - punctuate: true, - interim_results: true, - endpointing: 500, - utterance_end_ms: 2000, - }); - - let finalResult = ""; - let speechFinal = false; - - dgConnection.on(LiveTranscriptionEvents.Open, () => { - log.info("Deepgram connection opened"); - - dgConnection.on( - LiveTranscriptionEvents.Transcript, - (transcriptionEvent: LiveTranscriptionEvent) => { - log.info("Received transcription event", { transcriptionEvent }); - const alternatives = transcriptionEvent.channel?.alternatives; - let text = ""; - if (alternatives) { - text = alternatives[0]?.transcript; - } - - if (transcriptionEvent.type === ("UtteranceEnd" as any)) { - log.info("Received UtteranceEnd event"); - if (!speechFinal) { - log.warn( - `UtteranceEnd received before speechFinal, emit the text collected so far: ${finalResult}` - ); - resolve({ - streamSid, - trackName, - finalResult, - }); - return; - } else { - log.warn( - "STT -> Speech was already final when UtteranceEnd received" - ); - return; - } - } - - if (transcriptionEvent.is_final === true && text.trim().length > 0) { - log.info("Received final transcription", { text }); - finalResult += ` ${text}`; - if (transcriptionEvent.speech_final === true) { - log.info("Speech is final, emitting transcription", { - finalResult, - }); - speechFinal = true; - resolve({ - streamSid, - trackName, - finalResult, - }); - finalResult = ""; - } else { - speechFinal = false; - } - } else { - log.info("Emitting interim utterance", { text }); - } - } - ); - - dgConnection.on(LiveTranscriptionEvents.Error, (error: unknown) => { - log.error("STT -> deepgram error", { error }); - reject(error); - }); - - dgConnection.on( - LiveTranscriptionEvents.Unhandled, - (unhandledEvent: unknown) => { - log.error("STT -> deepgram unhandled event", { unhandledEvent }); - } - ); - - dgConnection.on(LiveTranscriptionEvents.Metadata, (metadata: unknown) => { - log.info("STT -> deepgram metadata", { metadata }); - }); - - dgConnection.on(LiveTranscriptionEvents.Close, () => { - log.warn("STT -> Deepgram connection closed"); - }); - }); - - const sendPayload = () => { - const readyState = dgConnection.getReadyState(); - log.info("Deepgram connection readyState", { readyState }); - - if (readyState === 1) { - dgConnection.send(Buffer.from(payload, "base64")); - } else if (readyState === 0) { - log.info("Deepgram connection is connecting, retrying..."); - setTimeout(sendPayload, 100); // Retry after 1 second - } else { - log.warn("Cannot send payload, Deepgram connection is not open"); - reject(new Error("Deepgram connection is not open")); - } - }; - - sendPayload(); - }); -} diff --git a/examples/twilio/src/functions/openai/tools/checkInventory.ts b/examples/twilio/src/functions/erp/checkInventory.ts similarity index 53% rename from examples/twilio/src/functions/openai/tools/checkInventory.ts rename to examples/twilio/src/functions/erp/checkInventory.ts index f317146..b8703d5 100644 --- a/examples/twilio/src/functions/openai/tools/checkInventory.ts +++ b/examples/twilio/src/functions/erp/checkInventory.ts @@ -1,9 +1,12 @@ -import { log } from "@restackio/restack-sdk-ts/function"; +import { log, sleep } from "@restackio/restack-sdk-ts/function"; +import { z } from "zod"; +import { toolInput } from "./tools"; -async function checkInventory(functionArgs: { model: string }) { - const model = functionArgs.model; - log.info("GPT -> called checkInventory function"); +export type InventoryInput = z.infer; +export async function checkInventory({ model }: InventoryInput) { + log.info("GPT -> called checkInventory function"); + sleep(200); if (model?.toLowerCase().includes("pro")) { return JSON.stringify({ stock: 10 }); } else if (model?.toLowerCase().includes("max")) { @@ -12,5 +15,3 @@ async function checkInventory(functionArgs: { model: string }) { return JSON.stringify({ stock: 100 }); } } - -export default checkInventory; diff --git a/examples/twilio/src/functions/openai/tools/checkPrice.ts b/examples/twilio/src/functions/erp/checkPrice.ts similarity index 54% rename from examples/twilio/src/functions/openai/tools/checkPrice.ts rename to examples/twilio/src/functions/erp/checkPrice.ts index 873136a..4d9d25b 100644 --- a/examples/twilio/src/functions/openai/tools/checkPrice.ts +++ b/examples/twilio/src/functions/erp/checkPrice.ts @@ -1,8 +1,12 @@ -import { log } from "@restackio/restack-sdk-ts/function"; +import { log, sleep } from "@restackio/restack-sdk-ts/function"; +import { z } from "zod"; +import { toolInput } from "./tools"; -async function checkPrice(functionArgs: { model: string }) { - const model = functionArgs.model; +export type PriceInput = z.infer; + +export async function checkPrice({ model }: PriceInput) { log.info("GPT -> called checkPrice function"); + sleep(500); if (model?.toLowerCase().includes("pro")) { return JSON.stringify({ price: 249 }); } else if (model?.toLowerCase().includes("max")) { @@ -11,5 +15,3 @@ async function checkPrice(functionArgs: { model: string }) { return JSON.stringify({ price: 149 }); } } - -export default checkPrice; diff --git a/examples/twilio/src/functions/erp/index.ts b/examples/twilio/src/functions/erp/index.ts new file mode 100644 index 0000000..3d25d24 --- /dev/null +++ b/examples/twilio/src/functions/erp/index.ts @@ -0,0 +1,4 @@ +export * from "./checkInventory"; +export * from "./checkPrice"; +export * from "./placeOrder"; +export * from "./tools"; diff --git a/examples/twilio/src/functions/openai/tools/placeOrder.ts b/examples/twilio/src/functions/erp/placeOrder.ts similarity index 67% rename from examples/twilio/src/functions/openai/tools/placeOrder.ts rename to examples/twilio/src/functions/erp/placeOrder.ts index 4055c47..9908359 100644 --- a/examples/twilio/src/functions/openai/tools/placeOrder.ts +++ b/examples/twilio/src/functions/erp/placeOrder.ts @@ -1,9 +1,12 @@ -import { log } from "@restackio/restack-sdk-ts/function"; +import { log, sleep } from "@restackio/restack-sdk-ts/function"; +import { z } from "zod"; +import { toolInputWithQty } from "./tools"; -async function placeOrder(functionArgs: { model: string; quantity: number }) { - const { model, quantity } = functionArgs; - log.info("GPT -> called placeOrder function"); +export type OrderInput = z.infer; +export async function placeOrder({ model, quantity = 1 }: OrderInput) { + log.info("GPT -> called placeOrder function"); + sleep(200); const orderNum = Math.floor( Math.random() * (9999999 - 1000000 + 1) + 1000000 ); @@ -24,5 +27,3 @@ async function placeOrder(functionArgs: { model: string; quantity: number }) { price: Math.floor(quantity * 179 * 1.079), }); } - -export default placeOrder; diff --git a/examples/twilio/src/functions/erp/tools.ts b/examples/twilio/src/functions/erp/tools.ts new file mode 100644 index 0000000..811e531 --- /dev/null +++ b/examples/twilio/src/functions/erp/tools.ts @@ -0,0 +1,41 @@ +import { z } from "zod"; +import { zodFunction } from "openai/helpers/zod"; + +export const toolInput = z.object({ + model: z + .enum(["airpods", "airpods pro", "airpods max"]) + .describe( + "The model of airpods, either the airpods, airpods pro or airpods max" + ), +}); + +export const toolInputWithQty = z.object({ + model: z + .enum(["airpods", "airpods pro", "airpods max"]) + .describe( + "The model of airpods, either the airpods, airpods pro or airpods max" + ), + quantity: z.number().describe("The number of airpods they want to order"), +}); + +export async function erpTools() { + return [ + zodFunction({ + name: "checkInventory", + description: + "Check the inventory of airpods, airpods pro or airpods max.", + parameters: toolInput, + }), + zodFunction({ + name: "checkPrice", + description: + "Check the price of given model of airpods, airpods pro or airpods max.", + parameters: toolInput, + }), + zodFunction({ + name: "placeOrder", + description: "Places an order for a set of airpods.", + parameters: toolInputWithQty, + }), + ]; +} diff --git a/examples/twilio/src/functions/index.ts b/examples/twilio/src/functions/index.ts index e57162a..09d3345 100644 --- a/examples/twilio/src/functions/index.ts +++ b/examples/twilio/src/functions/index.ts @@ -1,3 +1,6 @@ export * from "./deepgram"; export * from "./twilio"; export * from "./openai"; +export * from "./websocket"; +export * from "./erp"; +export * from "./utils"; diff --git a/examples/twilio/src/functions/openai/answer.ts b/examples/twilio/src/functions/openai/answer.ts index ef67872..317f050 100644 --- a/examples/twilio/src/functions/openai/answer.ts +++ b/examples/twilio/src/functions/openai/answer.ts @@ -1,7 +1,6 @@ import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; -import { webSocketConnect } from "../../streams/connect"; import { OpenaiChat } from "./chat"; -import { answerEvent, Question } from "../../workflows/twilioStream"; +import { answerEvent, Question } from "../../threads/stream"; import Restack from "@restackio/restack-sdk-ts"; type AnswerOutput = { @@ -11,13 +10,11 @@ type AnswerOutput = { toolsCalled: string[]; }; -export async function questionAnswer({ +export async function openaiAnswer({ streamSid, text, interactionCount, }: Question): Promise { - // const ws = await webSocketConnect(); - return new Promise((resolve) => { const openaiChat = new OpenaiChat(); @@ -31,18 +28,19 @@ export async function questionAnswer({ openaiChat.on("gptreply", async (gptReply, interactionCount) => { const restack = new Restack(); const { workflowId, runId } = currentWorkflow().workflowExecution; + const input = { + streamSid, + trackName: "agent", + gptReply, + interactionCount, + }; restack.update({ workflowId, runId, updateName: answerEvent.name, - input: { - streamSid, - trackName: "agent", - gptReply, - interactionCount, - }, + input, }); - log.info(`Interaction ${interactionCount}: OpenAI:`, event); + log.info(`Interaction ${interactionCount}: OpenAI:`, { input }); }); openaiChat.on( diff --git a/examples/twilio/src/functions/openai/chat.ts b/examples/twilio/src/functions/openai/chat.ts index f31c07b..8ef96e1 100644 --- a/examples/twilio/src/functions/openai/chat.ts +++ b/examples/twilio/src/functions/openai/chat.ts @@ -1,180 +1,157 @@ -import { EventEmitter } from "events"; import OpenAI from "openai"; -import { toolDefinitions } from "./tools/toolDefinitions"; -import { log } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; import { agentPrompt } from "./prompt"; -import checkInventory from "./tools/checkInventory"; -import checkPrice from "./tools/checkPrice"; -import placeOrder from "./tools/placeOrder"; - -const availableFunctions: { [key: string]: Function } = { - checkInventory, - checkPrice, - placeOrder, -}; - -export interface GptReply { - partialResponseIndex: number | null; - partialResponse: string; -} - -class OpenaiChat extends EventEmitter { - private userContext: any[]; - private openai: OpenAI; - private partialResponseIndex: number; - private functionName: string; - private functionArgs: string; - - constructor() { - super(); - this.openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); - (this.userContext = agentPrompt), (this.partialResponseIndex = 0); - this.functionName = ""; - this.functionArgs = ""; - } - - setCallSid({ callSid }: { callSid: string }) { - this.userContext.push({ role: "system", content: `callSid: ${callSid}` }); +import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; +import Restack from "@restackio/restack-sdk-ts"; +import { Answer, answerEvent, TrackName } from "../../threads/stream"; +import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; +import { toolCallEvent } from "../../threads/agent"; +import { aggregateStreamChunks } from "./utils/aggregateStream"; +import { mergeToolCalls } from "./utils/mergeToolCalls"; + +export async function openaiChat({ + streamSid, + trackName, + text, + previousMessages, + tools, + workflowToUpdate, +}: { + streamSid: string; + trackName: TrackName; + text: string; + previousMessages?: OpenAI.Chat.Completions.ChatCompletionMessageParam[]; + tools?: OpenAI.Chat.Completions.ChatCompletionTool[]; + workflowToUpdate?: { + workflowId: string; + runId: string; + }; +}) { + const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); + const restack = new Restack(); + const { workflowId, runId } = currentWorkflow().workflowExecution; + + let messages = previousMessages ?? []; + if (!previousMessages) { + messages = [...agentPrompt]; } - validateFunctionArgs({ args }: { args: string }) { - try { - return JSON.parse(args); - } catch (error) { - log.warn("Warning: Double function arguments returned by OpenAI:", { - args, - }); - if (args.indexOf("{") != args.lastIndexOf("{")) { - return JSON.parse( - args.substring(args.indexOf(""), args.indexOf("}") + 1) - ); - } - } - } + messages.push({ + role: "user", + content: text, + }); - updateUserContext({ - name, - role, - text, - }: { - name: string; - role: string; - text: string; - }) { - if (name !== "user") { - this.userContext.push({ role: role, name: name, content: text }); - } else { - this.userContext.push({ role: role, content: text }); - } - } + const stream = await openai.chat.completions.create({ + model: "gpt-4o-mini", + messages, + tools, + stream: true, + user: streamSid, + }); - async completion({ - text, - interactionCount, - role = "user", - name = "user", - }: { - text: string; - interactionCount: number; - role?: string; - name?: string; - }) { - this.updateUserContext({ name, role, text }); + let finishReason: ChatCompletionChunk.Choice["finish_reason"]; + let response: ChatCompletionChunk.Choice.Delta["content"] = ""; - const stream = await this.openai.chat.completions.create({ - model: "gpt-4o-mini", - messages: this.userContext, - tools: toolDefinitions, - stream: true, - }); + const [stream1, stream2] = stream.tee(); + const readableStream = stream1.toReadableStream(); + const aggregatedStream = await aggregateStreamChunks(readableStream); - let completeResponse = ""; - let partialResponse = ""; - let finishReason = ""; - let toolsCalled: string[] = []; + for await (const chunk of stream2) { + let content = chunk.choices[0]?.delta?.content || ""; + finishReason = chunk.choices[0].finish_reason; - for await (const chunk of stream) { - let content = chunk.choices[0]?.delta?.content || ""; - let deltas = chunk.choices[0]?.delta; - finishReason = chunk.choices[0].finish_reason || ""; + if (finishReason === "tool_calls") { + const { toolCalls } = mergeToolCalls(aggregatedStream); - // Accumulate function name and arguments if function_call - if (deltas.tool_calls) { - const functionCall = deltas.tool_calls[0]; - this.functionName += functionCall.function?.name || ""; - this.functionArgs += functionCall.function?.arguments || ""; - } + await Promise.all( + toolCalls.map((toolCall) => { + log.info("Tool Call", { toolCall }); - if (finishReason === "tool_calls") { - const functionToCall = availableFunctions[this.functionName]; - if (typeof functionToCall === "function") { - const validatedArgs = this.validateFunctionArgs({ - args: this.functionArgs, + const toolAnswer = `Sure, give me a minute to ${toolCall?.function?.name}...`; + const toolMessage: OpenAI.Chat.Completions.ChatCompletionMessageParam = + { + content: toolAnswer, + role: "assistant", + }; + messages.push(toolMessage); + const inputAnswer: Answer = { + streamSid, + response: toolAnswer, + isLast: true, + trackName: "agent", + }; + log.info("inputAnswer", { inputAnswer }); + if (workflowToUpdate) { + restack.update({ + workflowId: workflowToUpdate.workflowId, + runId: workflowToUpdate.runId, + updateName: answerEvent.name, + input: inputAnswer, + }); + } + + log.info("functionArguments", { + functionArguments: toolCall.function?.arguments, }); - - const toolData = toolDefinitions.find( - (tool) => tool.function.name === this.functionName + const functionArguments = JSON.parse( + toolCall.function?.arguments ?? "" ); - this.emit( - "gptreply", - { - partialResponseIndex: null, - partialResponse: `let me ${toolData?.function.name}`, + restack.update({ + workflowId, + runId, + updateName: toolCallEvent.name, + input: { + ...toolCall, + function: { + name: toolCall.function?.name, + arguments: functionArguments, + }, }, - interactionCount - ); - - let functionResponse = await functionToCall(validatedArgs); - - this.updateUserContext({ - name: this.functionName, - role: "function", - text: functionResponse, - }); - - await this.completion({ - text: functionResponse, - interactionCount, - role: "function", - name: this.functionName, }); - - toolsCalled.push(this.functionName); - - this.functionName = ""; - this.functionArgs = ""; - } else { - log.error( - `Function ${this.functionName} not found in availableFunctions.` - ); - } - } else { - completeResponse += content; - partialResponse += content; - - if (content.trim().slice(-1) === "•" || finishReason === "stop") { - const gptReply: GptReply = { - partialResponseIndex: this.partialResponseIndex, - partialResponse, + }) + ); + return { + streamSid, + trackName, + messages, + }; + } else { + response += content; + if (content.trim().slice(-1) === "•" || finishReason === "stop") { + if (response.length) { + const input: Answer = { + streamSid, + response: response, + isLast: finishReason === "stop", + trackName: "agent", }; - this.emit("gptreply", gptReply, interactionCount); - this.partialResponseIndex++; - partialResponse = ""; + log.info("input", { input }); + if (workflowToUpdate) { + restack.update({ + workflowId: workflowToUpdate.workflowId, + runId: workflowToUpdate.runId, + updateName: answerEvent.name, + input, + }); + } } } - // Check if the stream is over if (finishReason === "stop") { - this.emit("end", { completeResponse, interactionCount, toolsCalled }); - break; + const newMessage: OpenAI.Chat.Completions.ChatCompletionMessageParam = { + content: response, + role: "assistant", + }; + + messages.push(newMessage); + + return { + streamSid, + trackName, + messages, + }; } } - this.userContext.push({ role: "assistant", content: completeResponse }); - - const contextLength = this.userContext.length; - log.info("GPT -> user context length:", { contextLength }); } } - -export { OpenaiChat }; diff --git a/examples/twilio/src/functions/openai/index.ts b/examples/twilio/src/functions/openai/index.ts index c0933f3..e9a3401 100644 --- a/examples/twilio/src/functions/openai/index.ts +++ b/examples/twilio/src/functions/openai/index.ts @@ -1 +1,2 @@ export * from "./answer"; +export * from "./chat"; diff --git a/examples/twilio/src/functions/openai/prompt.ts b/examples/twilio/src/functions/openai/prompt.ts index 2d0c080..0974ef4 100644 --- a/examples/twilio/src/functions/openai/prompt.ts +++ b/examples/twilio/src/functions/openai/prompt.ts @@ -1,7 +1,10 @@ -export const agentPrompt = [ - { - role: "system", - content: `You are an outbound sales representative selling Apple Airpods. +import OpenAI from "openai"; + +export const agentPrompt: OpenAI.Chat.Completions.ChatCompletionMessageParam[] = + [ + { + role: "system", + content: `You are an outbound sales representative selling Apple Airpods. You have a youthful and cheery personality. Keep your responses as brief as possible but make every attempt to keep the caller on the phone without being rude. Don't ask more than 1 question at a time. @@ -16,18 +19,19 @@ export const agentPrompt = [ If you need to insert a longer pause in your audio, use the ellipsis: ... You must add a '•' symbol every 5 to 10 words at natural pauses where your response can be split for text to speech. `, - }, - { - role: "assistant", - content: - "Hello! I understand you're looking for a pair of AirPods, is that correct?", - }, -]; + }, + { + role: "assistant", + content: + "Hello! I understand you're looking for a pair of AirPods, is that correct?", + }, + ]; -export const testUserPrompt = [ - { - role: "system", - content: `An outbound sales representative selling Apple Airpods is calling you. +export const testUserPrompt: OpenAI.Chat.Completions.ChatCompletionMessageParam[] = + [ + { + role: "system", + content: `An outbound sales representative selling Apple Airpods is calling you. Pick a random personality. Keep your responses as brief as possible but make every attempt to confuse the sales representative. Don't ask more than 1 question at a time. @@ -37,5 +41,5 @@ export const testUserPrompt = [ If you need to insert a longer pause in your audio, use the ellipsis: ... You must add a '•' symbol every 5 to 10 words at natural pauses where your response can be split for text to speech. `, - }, -]; + }, + ]; diff --git a/examples/twilio/src/functions/openai/tools/toolDefinitions.ts b/examples/twilio/src/functions/openai/tools/toolDefinitions.ts deleted file mode 100644 index 2431266..0000000 --- a/examples/twilio/src/functions/openai/tools/toolDefinitions.ts +++ /dev/null @@ -1,67 +0,0 @@ -import OpenAI from "openai"; - -// create metadata for all the available functions to pass to completions API -export const toolDefinitions: OpenAI.Chat.Completions.ChatCompletionTool[] = [ - { - type: "function", - function: { - name: "checkInventory", - description: - "Check the inventory of airpods, airpods pro or airpods max.", - parameters: { - type: "object", - properties: { - model: { - type: "string", - enum: ["airpods", "airpods pro", "airpods max"], - description: - "The model of airpods, either the airpods, airpods pro or airpods max", - }, - }, - required: ["model"], - }, - }, - }, - { - type: "function", - function: { - name: "checkPrice", - description: - "Check the price of given model of airpods, airpods pro or airpods max.", - parameters: { - type: "object", - properties: { - model: { - type: "string", - enum: ["airpods", "airpods pro", "airpods max"], - description: - "The model of airpods, either the airpods, airpods pro or airpods max", - }, - }, - required: ["model"], - }, - }, - }, - { - type: "function", - function: { - name: "placeOrder", - description: "Places an order for a set of airpods.", - parameters: { - type: "object", - properties: { - model: { - type: "string", - enum: ["airpods", "airpods pro"], - description: "The model of airpods, either the regular or pro", - }, - quantity: { - type: "integer", - description: "The number of airpods they want to order", - }, - }, - required: ["type", "quantity"], - }, - }, - }, -]; diff --git a/examples/twilio/src/functions/openai/utils/aggregateStream.ts b/examples/twilio/src/functions/openai/utils/aggregateStream.ts new file mode 100644 index 0000000..18a7d74 --- /dev/null +++ b/examples/twilio/src/functions/openai/utils/aggregateStream.ts @@ -0,0 +1,26 @@ +export async function aggregateStreamChunks(stream: ReadableStream) { + const reader = stream.getReader(); + const chunks: Uint8Array[] = []; + + while (true) { + const { done, value } = await reader.read(); + if (done) break; + if (value) chunks.push(value); + } + + const aggregated = new Uint8Array( + chunks.reduce((acc, chunk) => acc + chunk.length, 0) + ); + let offset = 0; + for (const chunk of chunks) { + aggregated.set(chunk, offset); + offset += chunk.length; + } + + const textContent = new TextDecoder().decode(aggregated); + const jsonObjects = textContent + .split("\n") + .filter((line) => line.trim()) + .map((line) => JSON.parse(line)); + return jsonObjects; +} diff --git a/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts b/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts new file mode 100644 index 0000000..3923458 --- /dev/null +++ b/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts @@ -0,0 +1,42 @@ +import OpenAI from "openai"; +import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; + +export function mergeToolCalls(aggregatedStream: ChatCompletionChunk[]) { + const toolCalls: OpenAI.Chat.Completions.ChatCompletionChunk.Choice.Delta.ToolCall[] = + []; + + aggregatedStream.forEach((chunk) => { + chunk.choices.forEach((choice) => { + if (choice.delta.tool_calls) { + choice.delta.tool_calls.forEach((toolCall) => { + const lastToolCall = toolCalls[toolCalls.length - 1]; + if (toolCall.id) { + toolCalls.push({ + ...toolCall, + function: { ...toolCall.function, arguments: "" }, + }); + } else if ( + lastToolCall && + lastToolCall.function && + toolCall.function?.arguments + ) { + lastToolCall.function.arguments += toolCall.function.arguments; + } + }); + } + }); + }); + + // // Parse the arguments to ensure they are valid JSON + // toolCalls.forEach((toolCall) => { + // if (toolCall.function && toolCall.function.arguments) { + // try { + // toolCall.function.arguments = JSON.parse(toolCall.function.arguments); + // } catch (e) { + // log.error("Invalid JSON string:", toolCall.function.arguments); + // } + // } + // }); + + return { toolCalls }; +} diff --git a/examples/twilio/src/functions/utils/index.ts b/examples/twilio/src/functions/utils/index.ts new file mode 100644 index 0000000..01a8479 --- /dev/null +++ b/examples/twilio/src/functions/utils/index.ts @@ -0,0 +1 @@ +export * from "./updateAgent"; diff --git a/examples/twilio/src/functions/utils/updateAgent.ts b/examples/twilio/src/functions/utils/updateAgent.ts new file mode 100644 index 0000000..c119951 --- /dev/null +++ b/examples/twilio/src/functions/utils/updateAgent.ts @@ -0,0 +1,27 @@ +import "dotenv/config"; +import Restack from "@restackio/restack-sdk-ts"; + +interface UpdateAgentInput { + workflowId: string; + runId: string; + updateName: string; + input: { + [key: string]: any; + }; +} + +export async function updateAgent({ + workflowId, + runId, + updateName, + input, +}: UpdateAgentInput) { + const restack = new Restack(); + + return restack.update({ + workflowId, + runId, + updateName, + input, + }); +} diff --git a/examples/twilio/src/streams/connect.ts b/examples/twilio/src/functions/websocket/connect.ts similarity index 90% rename from examples/twilio/src/streams/connect.ts rename to examples/twilio/src/functions/websocket/connect.ts index 8db7d78..980c1f2 100644 --- a/examples/twilio/src/streams/connect.ts +++ b/examples/twilio/src/functions/websocket/connect.ts @@ -5,7 +5,7 @@ import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; export function webSocketConnect(): Promise { return new Promise((resolve, reject) => { try { - const websocketAddress = `wss://${process.env.SERVER}/connection`; + const websocketAddress = `ws://localhost:4000/connection`; const ws = new WebSocket(websocketAddress); ws.on("open", () => { diff --git a/examples/twilio/src/functions/websocket/index.ts b/examples/twilio/src/functions/websocket/index.ts new file mode 100644 index 0000000..445fdd5 --- /dev/null +++ b/examples/twilio/src/functions/websocket/index.ts @@ -0,0 +1,4 @@ +export * from "./listenQuestion"; +export * from "./listenMedia"; +export * from "./sendAudio"; +export * from "./sendEvent"; diff --git a/examples/twilio/src/streams/websocket.ts b/examples/twilio/src/functions/websocket/listenMedia.ts similarity index 90% rename from examples/twilio/src/streams/websocket.ts rename to examples/twilio/src/functions/websocket/listenMedia.ts index 7a00a88..fbd3515 100644 --- a/examples/twilio/src/streams/websocket.ts +++ b/examples/twilio/src/functions/websocket/listenMedia.ts @@ -4,15 +4,15 @@ import { log, } from "@restackio/restack-sdk-ts/function"; import { webSocketConnect } from "./connect"; -import { audioInEvent, streamEnd, TrackName } from "../workflows/twilioStream"; import Restack from "@restackio/restack-sdk-ts"; +import { audioInEvent, streamEnd, TrackName } from "../../threads/stream"; type StreamInput = { streamSid: string; trackName?: TrackName; }; -export async function websocket({ streamSid }: StreamInput) { +export async function listenMedia({ streamSid }: StreamInput) { return new Promise(async (resolve) => { const ws = await webSocketConnect(); const restack = new Restack(); diff --git a/examples/twilio/src/streams/question.ts b/examples/twilio/src/functions/websocket/listenQuestion.ts similarity index 91% rename from examples/twilio/src/streams/question.ts rename to examples/twilio/src/functions/websocket/listenQuestion.ts index 0ed2196..b108b05 100644 --- a/examples/twilio/src/streams/question.ts +++ b/examples/twilio/src/functions/websocket/listenQuestion.ts @@ -6,14 +6,14 @@ import { import { webSocketConnect } from "./connect"; import Restack from "@restackio/restack-sdk-ts"; -import { TrackName } from "../workflows/twilioStream"; +import { TrackName } from "../../threads/stream"; type StreamInput = { streamSid: string; trackName?: TrackName; }; -export async function streamQuestion({ streamSid }: StreamInput) { +export async function listenQuestion({ streamSid }: StreamInput) { return new Promise(async (resolve, reject) => { const ws = await webSocketConnect(); diff --git a/examples/twilio/src/streams/sendAudio.ts b/examples/twilio/src/functions/websocket/sendAudio.ts similarity index 88% rename from examples/twilio/src/streams/sendAudio.ts rename to examples/twilio/src/functions/websocket/sendAudio.ts index 9e8efc0..ab95dbb 100644 --- a/examples/twilio/src/streams/sendAudio.ts +++ b/examples/twilio/src/functions/websocket/sendAudio.ts @@ -1,4 +1,4 @@ -import { TrackName } from "../workflows/twilioStream"; +import { TrackName } from "../../threads/stream"; import { webSocketConnect } from "./connect"; export async function sendAudio({ diff --git a/examples/twilio/src/streams/sendEvent.ts b/examples/twilio/src/functions/websocket/sendEvent.ts similarity index 100% rename from examples/twilio/src/streams/sendEvent.ts rename to examples/twilio/src/functions/websocket/sendEvent.ts diff --git a/examples/twilio/src/pods.ts b/examples/twilio/src/pods.ts index 78f46d7..a152e3a 100644 --- a/examples/twilio/src/pods.ts +++ b/examples/twilio/src/pods.ts @@ -1,14 +1,23 @@ import Restack from "@restackio/restack-sdk-ts"; import { twilioCall, - questionAnswer, - transcribe, - textToAudio, + openaiAnswer, + deepgramSpeak, + listenMedia, + listenQuestion, + sendAudio, + sendEvent, + openaiChat, + checkPrice, + checkInventory, + placeOrder, + erpTools, + updateAgent, + deepgramListen, } from "./functions"; -import { websocket, streamQuestion, sendAudio, sendEvent } from "./streams"; async function main() { - const workflowsPath = require.resolve("./workflows"); + const workflowsPath = require.resolve("./threads"); try { const restack = new Restack(); @@ -17,6 +26,12 @@ async function main() { restack.pod({ name: "restack", workflowsPath, + functions: { updateAgent }, + }), + restack.pod({ + name: "websocket", + workflowsPath, + functions: { listenMedia, listenQuestion, sendAudio, sendEvent }, }), restack.pod({ name: "twilio", @@ -25,24 +40,21 @@ async function main() { rateLimit: 200, }), restack.pod({ - name: "websocket", + name: "openai", workflowsPath, - functions: { websocket, sendAudio, sendEvent }, + functions: { openaiAnswer, openaiChat }, + rateLimit: 10000, }), restack.pod({ - name: "openai", + name: "deepgram", workflowsPath, - functions: { streamQuestion, questionAnswer }, + functions: { deepgramSpeak, deepgramListen }, rateLimit: 10000, }), restack.pod({ - name: "deepgram", + name: "erp", workflowsPath, - functions: { - transcribe, - textToAudio, - }, - rateLimit: 1000, + functions: { erpTools, checkPrice, checkInventory, placeOrder }, }), ]); diff --git a/examples/twilio/src/server.ts b/examples/twilio/src/server.ts index 15733c5..6459358 100644 --- a/examples/twilio/src/server.ts +++ b/examples/twilio/src/server.ts @@ -4,7 +4,7 @@ import { createServer } from "http"; import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; import Restack from "@restackio/restack-sdk-ts"; -import { twilioStreamWorkflow } from "./workflows/twilioStream"; +import { streamInfo, streamThread } from "./threads/stream"; import cors from "cors"; const app = express(); @@ -13,40 +13,40 @@ const wss = new WebSocketServer({ server }); const PORT = process.env.PORT || 4000; export const websocketAddress = `wss://${process.env.SERVER}/connection`; -app.use( - cors({ - origin: "*", - methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"], - allowedHeaders: [ - "Content-Type", - "Authorization", - "X-Requested-With", - "Accept", - ], - }) -); +app.use(cors()); app.use(express.json()); app.post("/start", async (req, res) => { try { const restack = new Restack(); - const workflowId = `${Date.now()}-${twilioStreamWorkflow.name}`; + const workflowId = `${Date.now()}-${streamThread.name}`; const workflowRunId = await restack.schedule({ - workflowName: twilioStreamWorkflow.name, + workflowName: streamThread.name, workflowId, }); + console.log("workflowRunId", workflowRunId); + if (workflowRunId) { - await restack.update({ - workflowId, - runId: workflowRunId, - updateName: "streamInfo", - input: { streamSid: workflowRunId }, - }); + console.log("update"); + try { + console.log("update"); + restack.update({ + workflowId, + runId: workflowRunId, + updateName: streamInfo.name, + input: { streamSid: workflowRunId }, + }); + } catch (error) { + console.log("update error", error); + } res.status(200).send({ streamSid: workflowRunId, websocketAddress }); + } else { + console.log("error"); + throw new Error("Could not start session."); } } catch (error) { console.error("Error scheduling workflow:", error); @@ -56,10 +56,10 @@ app.post("/start", async (req, res) => { app.post("/incoming", async (req, res) => { try { - const workflowId = `${Date.now()}-${twilioStreamWorkflow.name}`; + const workflowId = `${Date.now()}-${streamThread.name}`; const restack = new Restack(); const runId = await restack.schedule({ - workflowName: twilioStreamWorkflow.name, + workflowName: streamThread.name, workflowId, input: {}, }); @@ -132,17 +132,17 @@ wss.on("connection", (ws) => { }); }); -function shutdown() { - wss.close(() => { - server.close(() => { - process.exit(0); - }); - }); -} - -// Listen for termination signals -process.on("SIGTERM", shutdown); -process.on("SIGINT", shutdown); +// function shutdown() { +// wss.close(() => { +// server.close(() => { +// process.exit(0); +// }); +// }); +// } + +// // Listen for termination signals +// process.on("SIGTERM", shutdown); +// process.on("SIGINT", shutdown); server.listen(PORT, () => { console.log(`Server running on port ${PORT}`); diff --git a/examples/twilio/src/streams/index.ts b/examples/twilio/src/streams/index.ts deleted file mode 100644 index 76f9516..0000000 --- a/examples/twilio/src/streams/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./question"; -export * from "../functions/deepgram/textToAudio"; -export * from "../functions/openai/answer"; -export * from "./websocket"; -export * from "./sendAudio"; -export * from "./sendEvent"; diff --git a/examples/twilio/src/threads/agent.ts b/examples/twilio/src/threads/agent.ts new file mode 100644 index 0000000..495c2fd --- /dev/null +++ b/examples/twilio/src/threads/agent.ts @@ -0,0 +1,164 @@ +import { + step, + defineUpdate, + log, + workflowInfo, + condition, + onUpdate, +} from "@restackio/restack-sdk-ts/workflow"; +import * as functions from "../functions"; +import { TrackName } from "./stream"; + +export type ToolCall = { + index: number; + function: { + name: string; + arguments: + | functions.OrderInput + | functions.InventoryInput + | functions.PriceInput; + }; + id?: string; +}; + +export type Reply = { + streamSid: string; + trackName: TrackName; + text: string; +}; + +export const toolCallEvent = defineUpdate("toolCall"); +export const replyEvent = defineUpdate("reply"); +export const agentEnd = defineUpdate("agentEnd"); + +export async function agentThread({ + streamSid, + trackName, + message, +}: { + streamSid: string; + trackName: TrackName; + message: string; +}) { + try { + const parentWorkflow = workflowInfo().parent; + + if (!parentWorkflow) { + throw "no parent Workflow"; + } + + let openaiChatMessages: any[] = []; + + const tools = await step({ + podName: `erp`, + scheduleToCloseTimeout: "2 minutes", + }).erpTools(); + + const initialMessage = await step({ + podName: `openai`, + scheduleToCloseTimeout: "2 minutes", + }).openaiChat({ + streamSid, + trackName, + text: message, + tools, + workflowToUpdate: { + workflowId: parentWorkflow.workflowId, + runId: parentWorkflow.runId, + }, + }); + + if (initialMessage?.messages) { + openaiChatMessages = initialMessage?.messages; + } + + onUpdate(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { + log.info("toolCallEvent", { toolFunction }); + let toolResult = ""; + if (toolFunction.name === "checkPrice") { + toolResult = await step({ + podName: `erp`, + scheduleToCloseTimeout: "2 minutes", + }).checkPrice({ ...toolFunction.arguments }); + } + + if (toolFunction.name === "checkInventory") { + toolResult = await step({ + podName: `erp`, + scheduleToCloseTimeout: "2 minutes", + }).checkInventory({ ...toolFunction.arguments }); + } + + if (toolFunction.name === "placeOrder") { + toolResult = await step({ + podName: `erp`, + scheduleToCloseTimeout: "2 minutes", + }).placeOrder({ ...toolFunction.arguments }); + } + + const openaiFunctionMessage = { + content: JSON.stringify(toolResult), + role: "function", + name: toolFunction.name, + }; + + openaiChatMessages.push(openaiFunctionMessage); + + const toolMessage = await step({ + podName: `openai`, + scheduleToCloseTimeout: "2 minutes", + }).openaiChat({ + streamSid, + trackName, + text: "", + previousMessages: openaiChatMessages, + workflowToUpdate: { + workflowId: parentWorkflow.workflowId, + runId: parentWorkflow.runId, + }, + }); + + if (toolMessage) { + openaiChatMessages = toolMessage?.messages; + } + + return { function: toolFunction }; + }); + + onUpdate(replyEvent, async ({ streamSid, trackName, text }: Reply) => { + const replyMessage = await step({ + podName: `openai`, + scheduleToCloseTimeout: "2 minutes", + }).openaiChat({ + streamSid, + trackName, + text, + tools, + previousMessages: openaiChatMessages, + workflowToUpdate: { + workflowId: parentWorkflow.workflowId, + runId: parentWorkflow.runId, + }, + }); + + if (replyMessage?.messages) { + openaiChatMessages = replyMessage?.messages; + } + + return { text }; + }); + + let ended = false; + onUpdate(agentEnd, async () => { + log.info(`agentEnd received`); + ended = true; + }); + + await condition(() => ended); + + return; + } catch (error) { + log.error("Error in agentThread", { error }); + throw error; + } +} diff --git a/examples/twilio/src/threads/index.ts b/examples/twilio/src/threads/index.ts new file mode 100644 index 0000000..59e1f8b --- /dev/null +++ b/examples/twilio/src/threads/index.ts @@ -0,0 +1,3 @@ +export * from "./twilioCall"; +export * from "./stream"; +export * from "./agent"; diff --git a/examples/twilio/src/threads/stream.ts b/examples/twilio/src/threads/stream.ts new file mode 100644 index 0000000..49e7b13 --- /dev/null +++ b/examples/twilio/src/threads/stream.ts @@ -0,0 +1,199 @@ +import { + step, + log, + workflowInfo, + defineUpdate, + onUpdate, + condition, + startChild, +} from "@restackio/restack-sdk-ts/workflow"; +import * as functions from "../functions"; +import { agentThread, replyEvent } from "./agent"; + +export type TrackName = "user" | "agent" | "testUser"; + +type StreamInfo = { + streamSid: string; +}; + +export type AudioIn = { + streamSid: string; + trackName: TrackName; + payload: string; +}; + +export type Question = { + streamSid: string; + text: string; + interactionCount: number; +}; + +export type Answer = { + streamSid: string; + trackName: TrackName; + response: string; + isLast?: boolean; +}; + +export const streamInfo = defineUpdate("streamInfo"); + +export const audioInEvent = defineUpdate("audioIn"); + +export const questionEvent = defineUpdate("question"); + +export const answerEvent = defineUpdate("answer"); + +export const streamEnd = defineUpdate("streamEnd"); + +export async function streamThread() { + try { + let currentstreamSid: string; + let interactionCount = 0; + let audioQueue: { + streamSid: string; + trackName: TrackName; + audio: string; + text: string; + }[] = []; + let isSendingAudio = false; + const runId = workflowInfo().runId; + let childAgentRunId = ""; + log.info(`Workflow started with runId: ${runId}`); + + onUpdate(streamInfo, async ({ streamSid }: StreamInfo) => { + log.info(`Workflow update with streamSid: ${streamSid}`); + step({ + podName: `websocket`, + scheduleToCloseTimeout: "30 minutes", + }).listenMedia({ streamSid, trackName: "user" }); + + const welcomeMessage = "Hello! My name is Pete from Apple."; + const { audio } = await step({ + podName: `deepgram`, + scheduleToCloseTimeout: "2 minutes", + }).deepgramSpeak({ + streamSid, + trackName: "agent", + text: welcomeMessage, + }); + + step({ + podName: `websocket`, + scheduleToCloseTimeout: "2 minutes", + }).sendAudio({ streamSid, trackName: "agent", audio }); + + step({ + podName: `websocket`, + scheduleToCloseTimeout: "2 minutes", + }).sendEvent({ + streamSid, + eventName: answerEvent.name, + data: { text: welcomeMessage }, + }); + + currentstreamSid = streamSid; + return { streamSid }; + }); + + onUpdate( + audioInEvent, + async ({ streamSid, trackName, payload }: AudioIn) => { + log.info(`Workflow update with streamSid: ${streamSid}`); + const { finalResult } = await step({ + podName: `deepgram`, + scheduleToCloseTimeout: "2 minutes", + }).deepgramListen({ streamSid, trackName, payload }); + + interactionCount += 1; + + step({ + podName: `websocket`, + scheduleToCloseTimeout: "1 minute", + }).sendEvent({ + streamSid, + eventName: questionEvent.name, + data: { text: finalResult }, + }); + + if (!childAgentRunId) { + const childAgent = await startChild(agentThread, { + args: [ + { + streamSid, + message: finalResult, + trackName: "agent", + }, + ], + workflowId: `${streamSid}-agentThread`, + }); + childAgentRunId = childAgent.firstExecutionRunId; + } else { + step({ + podName: `restack`, + scheduleToCloseTimeout: "1 minute", + }).updateAgent({ + workflowId: `${streamSid}-agentThread`, + runId: childAgentRunId, + updateName: replyEvent.name, + input: { streamSid, trackName, text: finalResult }, + }); + } + return { streamSid }; + } + ); + + onUpdate( + answerEvent, + async ({ streamSid, trackName, response, isLast }: Answer) => { + const { audio } = await step({ + podName: `deepgram`, + scheduleToCloseTimeout: "2 minutes", + }).deepgramSpeak({ + streamSid, + trackName, + text: response, + }); + + audioQueue.push({ streamSid, trackName, audio, text: response }); + + if (!isSendingAudio && isLast) { + isSendingAudio = true; + + while (audioQueue.length > 0) { + const { streamSid, trackName, audio, text } = audioQueue.shift()!; + + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "2 minutes", + }).sendAudio({ streamSid, trackName, audio }); + + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "1 minute", + }).sendEvent({ + streamSid, + eventName: answerEvent.name, + data: { text }, + }); + } + isSendingAudio = false; + } + + return { streamSid }; + } + ); + + let ended = false; + onUpdate(streamEnd, async () => { + log.info(`streamEnd received`); + ended = true; + }); + + await condition(() => ended); + + return; + } catch (error) { + log.error("Error in streamWorkflow", { error }); + throw error; + } +} diff --git a/examples/twilio/src/workflows/twilioCall.ts b/examples/twilio/src/threads/twilioCall.ts similarity index 100% rename from examples/twilio/src/workflows/twilioCall.ts rename to examples/twilio/src/threads/twilioCall.ts diff --git a/examples/twilio/src/workflows/index.ts b/examples/twilio/src/workflows/index.ts deleted file mode 100644 index 4a9842d..0000000 --- a/examples/twilio/src/workflows/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./twilioCall"; -export * from "./twilioStream"; diff --git a/examples/twilio/src/workflows/twilioStream.ts b/examples/twilio/src/workflows/twilioStream.ts deleted file mode 100644 index 7074a0d..0000000 --- a/examples/twilio/src/workflows/twilioStream.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { - step, - log, - workflowInfo, - defineUpdate, - onUpdate, - condition, -} from "@restackio/restack-sdk-ts/workflow"; -import * as streams from "../streams"; -import * as functions from "../functions"; -import { GptReply } from "../functions/openai/chat"; - -export type TrackName = "user" | "agent" | "testUser"; - -type StreamInfo = { - streamSid: string; -}; - -export type AudioIn = { - streamSid: string; - trackName: TrackName; - payload: string; -}; - -export type Question = { - streamSid: string; - text: string; - interactionCount: number; -}; - -export type Answer = { - streamSid: string; - trackName: TrackName; - gptReply: GptReply; - interactionCount: number; -}; - -const streamInfo = defineUpdate("streamInfo"); - -export const audioInEvent = defineUpdate("audioIn"); - -export const questionEvent = defineUpdate("question"); - -export const answerEvent = defineUpdate("answer"); - -export const streamEnd = defineUpdate("streamEnd"); - -export async function twilioStreamWorkflow() { - let currentstreamSid: string; - let interactionCount = 0; - const runId = workflowInfo().runId; - log.info(`Workflow started with runId: ${runId}`); - - onUpdate(streamInfo, async ({ streamSid }: StreamInfo) => { - log.info(`Workflow update with streamSid: ${streamSid}`); - step({ - podName: `websocket`, - scheduleToCloseTimeout: "30 minutes", - }).websocket({ streamSid, trackName: "user" }); - - const welcomeMessage = { - partialResponseIndex: null, - partialResponse: - "Hello! My name is Emilia from Apple. You are interested in Airpods, is that correct?", - }; - - const { audio } = await step({ - podName: `deepgram`, - scheduleToCloseTimeout: "2 minutes", - }).textToAudio({ - streamSid, - trackName: "agent", - gptReply: welcomeMessage, - interactionCount: 0, - }); - - await step({ - podName: `websocket`, - scheduleToCloseTimeout: "1 minute", - }).sendAudio({ streamSid, trackName: "agent", audio }); - - await step({ - podName: `websocket`, - scheduleToCloseTimeout: "2 minutes", - }).sendEvent({ - streamSid, - eventName: answerEvent.name, - data: { text: welcomeMessage.partialResponse }, - }); - - currentstreamSid = streamSid; - return { streamSid }; - }); - - onUpdate(audioInEvent, async ({ streamSid, trackName, payload }: AudioIn) => { - log.info(`Workflow update with streamSid: ${streamSid}`); - const { finalResult } = await step({ - podName: `deepgram`, - scheduleToCloseTimeout: "2 minutes", - }).transcribe({ streamSid, trackName, payload }); - - interactionCount += 1; - - await step({ - podName: `websocket`, - scheduleToCloseTimeout: "1 minute", - }).sendEvent({ - streamSid, - eventName: questionEvent.name, - data: { text: finalResult }, - }); - - await step({ - podName: `openai`, - scheduleToCloseTimeout: "2 minutes", - }).questionAnswer({ streamSid, text: finalResult, interactionCount }); - - return { streamSid }; - }); - - onUpdate( - answerEvent, - async ({ streamSid, trackName, gptReply, interactionCount }: Answer) => { - log.info(`answerEvent: ${gptReply}`); - const { audio } = await step({ - podName: `deepgram`, - scheduleToCloseTimeout: "2 minutes", - }).textToAudio({ streamSid, trackName, gptReply, interactionCount }); - - await step({ - podName: `websocket`, - scheduleToCloseTimeout: "1 minute", - }).sendEvent({ - streamSid, - eventName: answerEvent.name, - data: { text: gptReply.partialResponse }, - }); - - log.info("audio", { audio: audio?.length }); - - if (audio) { - await step({ - podName: `websocket`, - scheduleToCloseTimeout: "2 minutes", - }).sendAudio({ streamSid, trackName, audio }); - } - - return { streamSid }; - } - ); - - let ended = false; - onUpdate(streamEnd, async () => { - log.info(`streamEnd received`); - ended = true; - }); - - await condition(() => ended); - - return; -} From 8192f0081cff7e4de28ca435ec53c846d9c16b59 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 11 Aug 2024 23:11:16 +0200 Subject: [PATCH 025/122] add readme and cleanup example envs Former-commit-id: ae816a01d0b03a1a889eca3e7820386b5c6a2013 Former-commit-id: 89dd92a5bad9d362494cfb42943cdcf9cb52cdc7 --- examples/twilio/.env.example | 23 ++++++++++------------- examples/twilio/readme.md | 24 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 examples/twilio/readme.md diff --git a/examples/twilio/.env.example b/examples/twilio/.env.example index 45335f7..e1538e2 100644 --- a/examples/twilio/.env.example +++ b/examples/twilio/.env.example @@ -1,18 +1,15 @@ - -TWILIO_ACCOUNT_SID= -TWILIO_AUTH_TOKEN= -FROM_NUMBER= -APP_NUMBER= -YOUR_NUMBER= - -# Your ngrok or server URL +# Ngrok SERVER=5756-5-61-150-161.ngrok-free.app -# Service API Keys +# OpenAI OPENAI_API_KEY= + +# Deepgram DEEPGRAM_API_KEY= -# XI_API_KEY= -# XI_MODEL_ID=eleven_turbo_v2_5 -# Deepgram voice model, see more options here: https://developers.deepgram.com/docs/tts-models -VOICE_MODEL=aura-asteria-en \ No newline at end of file +# Twilio +TWILIO_ACCOUNT_SID= +TWILIO_AUTH_TOKEN= +FROM_NUMBER= +APP_NUMBER= +YOUR_NUMBER= \ No newline at end of file diff --git a/examples/twilio/readme.md b/examples/twilio/readme.md new file mode 100644 index 0000000..825a94f --- /dev/null +++ b/examples/twilio/readme.md @@ -0,0 +1,24 @@ +# Install dependencies + +pnpm i + +Add OPENAI_API_KEY and DEEPGRAM_API_KEY keys in .env + +pnpm dev-server +pnpm dev-pods + +# Use frontend with browser microphone: + +https://github.com/restackio/voice-frontend + +pnpm dev + +# Or use Twilio voice calls + +## Start ngrok funnel + +pnpm ngrok + +## Trigger Twilio call with + +pnpm call From 93ca4aba80b28840e5cc2594553b9ae5702ba1e9 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 11 Aug 2024 23:33:40 +0200 Subject: [PATCH 026/122] cleanup Former-commit-id: f46180c87f0c1b088928aac2c32e9c80a23ae2dc Former-commit-id: 1ebabfe1cc5d19a61b21cfb61d6ff2e1b53cc1f1 --- .../twilio/src/functions/deepgram/speak.ts | 2 - .../twilio/src/functions/openai/answer.ts | 58 ------------ examples/twilio/src/functions/openai/index.ts | 1 - .../functions/openai/utils/mergeToolCalls.ts | 11 --- .../twilio/src/functions/websocket/index.ts | 1 - .../src/functions/websocket/listenQuestion.ts | 51 ----------- examples/twilio/src/pods.ts | 12 ++- examples/twilio/src/threads/agent.ts | 89 ++++++++++--------- examples/twilio/src/threads/stream.ts | 19 ++-- 9 files changed, 60 insertions(+), 184 deletions(-) delete mode 100644 examples/twilio/src/functions/openai/answer.ts delete mode 100644 examples/twilio/src/functions/websocket/listenQuestion.ts diff --git a/examples/twilio/src/functions/deepgram/speak.ts b/examples/twilio/src/functions/deepgram/speak.ts index 4f4740c..b060e62 100644 --- a/examples/twilio/src/functions/deepgram/speak.ts +++ b/examples/twilio/src/functions/deepgram/speak.ts @@ -51,14 +51,12 @@ export async function deepgramSpeak({ container: "none", } ); - // STEP 3: Get the audio stream and headers from the response const stream = await response.getStream(); if (!stream) { throw new Error(`Deepgram speak stream error ${response}`); } - // STEP 4: Convert the stream to an audio buffer const buffer = await getAudioBuffer(stream); if (!buffer) { throw new Error(`Deepgram audio buffer error ${stream}`); diff --git a/examples/twilio/src/functions/openai/answer.ts b/examples/twilio/src/functions/openai/answer.ts deleted file mode 100644 index 317f050..0000000 --- a/examples/twilio/src/functions/openai/answer.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; -import { OpenaiChat } from "./chat"; -import { answerEvent, Question } from "../../threads/stream"; -import Restack from "@restackio/restack-sdk-ts"; - -type AnswerOutput = { - streamSid: string; - completeResponse: string; - interactionCount: number; - toolsCalled: string[]; -}; - -export async function openaiAnswer({ - streamSid, - text, - interactionCount, -}: Question): Promise { - return new Promise((resolve) => { - const openaiChat = new OpenaiChat(); - - openaiChat.setCallSid({ callSid: streamSid }); - - openaiChat.completion({ - text, - interactionCount, - }); - - openaiChat.on("gptreply", async (gptReply, interactionCount) => { - const restack = new Restack(); - const { workflowId, runId } = currentWorkflow().workflowExecution; - const input = { - streamSid, - trackName: "agent", - gptReply, - interactionCount, - }; - restack.update({ - workflowId, - runId, - updateName: answerEvent.name, - input, - }); - log.info(`Interaction ${interactionCount}: OpenAI:`, { input }); - }); - - openaiChat.on( - "end", - async ({ completeResponse, interactionCount, toolsCalled }) => { - resolve({ - streamSid, - completeResponse, - interactionCount, - toolsCalled, - }); - } - ); - }); -} diff --git a/examples/twilio/src/functions/openai/index.ts b/examples/twilio/src/functions/openai/index.ts index e9a3401..d27da0d 100644 --- a/examples/twilio/src/functions/openai/index.ts +++ b/examples/twilio/src/functions/openai/index.ts @@ -1,2 +1 @@ -export * from "./answer"; export * from "./chat"; diff --git a/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts b/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts index 3923458..3f51c2c 100644 --- a/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts +++ b/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts @@ -27,16 +27,5 @@ export function mergeToolCalls(aggregatedStream: ChatCompletionChunk[]) { }); }); - // // Parse the arguments to ensure they are valid JSON - // toolCalls.forEach((toolCall) => { - // if (toolCall.function && toolCall.function.arguments) { - // try { - // toolCall.function.arguments = JSON.parse(toolCall.function.arguments); - // } catch (e) { - // log.error("Invalid JSON string:", toolCall.function.arguments); - // } - // } - // }); - return { toolCalls }; } diff --git a/examples/twilio/src/functions/websocket/index.ts b/examples/twilio/src/functions/websocket/index.ts index 445fdd5..fbc6508 100644 --- a/examples/twilio/src/functions/websocket/index.ts +++ b/examples/twilio/src/functions/websocket/index.ts @@ -1,4 +1,3 @@ -export * from "./listenQuestion"; export * from "./listenMedia"; export * from "./sendAudio"; export * from "./sendEvent"; diff --git a/examples/twilio/src/functions/websocket/listenQuestion.ts b/examples/twilio/src/functions/websocket/listenQuestion.ts deleted file mode 100644 index b108b05..0000000 --- a/examples/twilio/src/functions/websocket/listenQuestion.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { - log, - heartbeat, - currentWorkflow, -} from "@restackio/restack-sdk-ts/function"; -import { webSocketConnect } from "./connect"; - -import Restack from "@restackio/restack-sdk-ts"; -import { TrackName } from "../../threads/stream"; - -type StreamInput = { - streamSid: string; - trackName?: TrackName; -}; - -export async function listenQuestion({ streamSid }: StreamInput) { - return new Promise(async (resolve, reject) => { - const ws = await webSocketConnect(); - - ws.on("message", (data) => { - const message = JSON.parse(data.toString()); - if (message.event === "question") { - if (message.streamSid === streamSid) { - const { text, interactionCount, trackName } = message.data; - log.info("question", { text, interactionCount, trackName }); - const restack = new Restack(); - const { workflowId, runId } = currentWorkflow().workflowExecution; - restack.update({ - workflowId, - runId, - updateName: "question", - input: { - streamSid, - text, - interactionCount, - }, - }); - } - } - - if (message.streamSid === streamSid) heartbeat(message.streamSid); - if (message.event === "stop") { - resolve(); - } - }); - - ws.on("close", () => { - resolve(); - }); - }); -} diff --git a/examples/twilio/src/pods.ts b/examples/twilio/src/pods.ts index a152e3a..75337f0 100644 --- a/examples/twilio/src/pods.ts +++ b/examples/twilio/src/pods.ts @@ -1,19 +1,17 @@ import Restack from "@restackio/restack-sdk-ts"; import { + updateAgent, twilioCall, - openaiAnswer, + deepgramListen, deepgramSpeak, + openaiChat, listenMedia, - listenQuestion, sendAudio, sendEvent, - openaiChat, checkPrice, checkInventory, placeOrder, erpTools, - updateAgent, - deepgramListen, } from "./functions"; async function main() { @@ -31,7 +29,7 @@ async function main() { restack.pod({ name: "websocket", workflowsPath, - functions: { listenMedia, listenQuestion, sendAudio, sendEvent }, + functions: { listenMedia, sendAudio, sendEvent }, }), restack.pod({ name: "twilio", @@ -42,7 +40,7 @@ async function main() { restack.pod({ name: "openai", workflowsPath, - functions: { openaiAnswer, openaiChat }, + functions: { openaiChat }, rateLimit: 10000, }), restack.pod({ diff --git a/examples/twilio/src/threads/agent.ts b/examples/twilio/src/threads/agent.ts index 495c2fd..bc40280 100644 --- a/examples/twilio/src/threads/agent.ts +++ b/examples/twilio/src/threads/agent.ts @@ -40,12 +40,43 @@ export async function agentThread({ trackName: TrackName; message: string; }) { - try { - const parentWorkflow = workflowInfo().parent; + async function callOpenAIChat(params: { + streamSid: string; + trackName: TrackName; + text: string; + tools?: any; + previousMessages?: any[]; + workflowToUpdate: { workflowId: string; runId: string }; + }) { + return step({ + podName: `openai`, + scheduleToCloseTimeout: "2 minutes", + }).openaiChat(params); + } - if (!parentWorkflow) { - throw "no parent Workflow"; + async function callERPFunction(toolFunction: ToolCall["function"]) { + const erpStep = step({ + podName: `erp`, + scheduleToCloseTimeout: "2 minutes", + }); + + switch (toolFunction.name) { + case "checkPrice": + return erpStep.checkPrice({ ...toolFunction.arguments }); + case "checkInventory": + return erpStep.checkInventory({ ...toolFunction.arguments }); + case "placeOrder": + return erpStep.placeOrder({ + ...(toolFunction.arguments as functions.OrderInput), + }); + default: + throw new Error(`Unknown function name: ${toolFunction.name}`); } + } + + try { + const parentWorkflow = workflowInfo().parent; + if (!parentWorkflow) throw "no parent Workflow"; let openaiChatMessages: any[] = []; @@ -54,10 +85,7 @@ export async function agentThread({ scheduleToCloseTimeout: "2 minutes", }).erpTools(); - const initialMessage = await step({ - podName: `openai`, - scheduleToCloseTimeout: "2 minutes", - }).openaiChat({ + const initialMessage = await callOpenAIChat({ streamSid, trackName, text: message, @@ -69,45 +97,21 @@ export async function agentThread({ }); if (initialMessage?.messages) { - openaiChatMessages = initialMessage?.messages; + openaiChatMessages = initialMessage.messages; } onUpdate(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { log.info("toolCallEvent", { toolFunction }); - let toolResult = ""; - if (toolFunction.name === "checkPrice") { - toolResult = await step({ - podName: `erp`, - scheduleToCloseTimeout: "2 minutes", - }).checkPrice({ ...toolFunction.arguments }); - } - if (toolFunction.name === "checkInventory") { - toolResult = await step({ - podName: `erp`, - scheduleToCloseTimeout: "2 minutes", - }).checkInventory({ ...toolFunction.arguments }); - } - - if (toolFunction.name === "placeOrder") { - toolResult = await step({ - podName: `erp`, - scheduleToCloseTimeout: "2 minutes", - }).placeOrder({ ...toolFunction.arguments }); - } + const toolResult = await callERPFunction(toolFunction); - const openaiFunctionMessage = { + openaiChatMessages.push({ content: JSON.stringify(toolResult), role: "function", name: toolFunction.name, - }; - - openaiChatMessages.push(openaiFunctionMessage); + }); - const toolMessage = await step({ - podName: `openai`, - scheduleToCloseTimeout: "2 minutes", - }).openaiChat({ + const toolMessage = await callOpenAIChat({ streamSid, trackName, text: "", @@ -118,18 +122,15 @@ export async function agentThread({ }, }); - if (toolMessage) { - openaiChatMessages = toolMessage?.messages; + if (toolMessage?.messages) { + openaiChatMessages = toolMessage.messages; } return { function: toolFunction }; }); onUpdate(replyEvent, async ({ streamSid, trackName, text }: Reply) => { - const replyMessage = await step({ - podName: `openai`, - scheduleToCloseTimeout: "2 minutes", - }).openaiChat({ + const replyMessage = await callOpenAIChat({ streamSid, trackName, text, @@ -142,7 +143,7 @@ export async function agentThread({ }); if (replyMessage?.messages) { - openaiChatMessages = replyMessage?.messages; + openaiChatMessages = replyMessage.messages; } return { text }; diff --git a/examples/twilio/src/threads/stream.ts b/examples/twilio/src/threads/stream.ts index 49e7b13..fcb048e 100644 --- a/examples/twilio/src/threads/stream.ts +++ b/examples/twilio/src/threads/stream.ts @@ -166,16 +166,17 @@ export async function streamThread() { podName: `websocket`, scheduleToCloseTimeout: "2 minutes", }).sendAudio({ streamSid, trackName, audio }); - - await step({ - podName: `websocket`, - scheduleToCloseTimeout: "1 minute", - }).sendEvent({ - streamSid, - eventName: answerEvent.name, - data: { text }, - }); } + + await step({ + podName: `websocket`, + scheduleToCloseTimeout: "1 minute", + }).sendEvent({ + streamSid, + eventName: answerEvent.name, + data: { text: response }, + }); + isSendingAudio = false; } From b5ce2f23207ff0a25f7c72aa21a993dc85b6a2c3 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 11 Aug 2024 23:42:51 +0200 Subject: [PATCH 027/122] cleanup and update hello Former-commit-id: 4505051c66d32af24194d576f0c62d68709a7032 Former-commit-id: 585b53f618f906b561a3d69dda76bed48764f62a --- .DS_Store | Bin 0 -> 6148 bytes examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 10 +- examples/hello/scheduleWorkflow.ts | 2 +- examples/hello/tsconfig.json | 14 + examples/twilio/package.json | 2 +- examples/twilio/pnpm-lock.yaml | 10 +- .../local-streaming/.env.example | 1 - .../local-streaming/.gitignore | 3 - .../local-streaming/package.json | 33 - .../local-streaming/pnpm-lock.yaml | 1777 ----------------- .../local-streaming/readme.md | 17 - .../local-streaming/scheduleWorkflow.ts | 37 - .../local-streaming/src/functions/index.ts | 1 - .../src/functions/openai/client.ts | 8 - .../local-streaming/src/functions/stream.ts | 33 - .../local-streaming/src/run.ts | 40 - .../local-streaming/src/workflows/index.ts | 1 - .../local-streaming/src/workflows/stream.ts | 14 - ...k-desktop_0.0.1_aarch64.dmg.REMOVED.git-id | 2 +- 20 files changed, 28 insertions(+), 1979 deletions(-) create mode 100644 .DS_Store create mode 100644 examples/hello/tsconfig.json delete mode 100644 examples/work-in-progress/local-streaming/.env.example delete mode 100644 examples/work-in-progress/local-streaming/.gitignore delete mode 100644 examples/work-in-progress/local-streaming/package.json delete mode 100644 examples/work-in-progress/local-streaming/pnpm-lock.yaml delete mode 100644 examples/work-in-progress/local-streaming/readme.md delete mode 100644 examples/work-in-progress/local-streaming/scheduleWorkflow.ts delete mode 100644 examples/work-in-progress/local-streaming/src/functions/index.ts delete mode 100644 examples/work-in-progress/local-streaming/src/functions/openai/client.ts delete mode 100644 examples/work-in-progress/local-streaming/src/functions/stream.ts delete mode 100644 examples/work-in-progress/local-streaming/src/run.ts delete mode 100644 examples/work-in-progress/local-streaming/src/workflows/index.ts delete mode 100644 examples/work-in-progress/local-streaming/src/workflows/stream.ts diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ec84f868e039d614a3188d4e0858a7179bff9d60 GIT binary patch literal 6148 zcmeHKOHRWu5Pd_lsKkOwY*<=i4I(#4t8ju|0NNmsXq1SSy)VTTI0k3ojmMxyWC21# z2xcVvP3(F8JSnyZfGi%H5|{y)vM7o=Bc{!xT?aY1AW9nJ8f)C+3=M8Z2KtRny7pr{ zaJ^gXu)qE-cd|o=9_MWD(Qj_c<+^Ko-A3_p^z?aV+tu}I)2+y$knyxFpXXm;H{W3Q zcl)cp;IwY8fGgk%xB~xN0p8ha(?dhAT>)3X6?j)b&xgRGSY?cc>F8jUQUIbpqm$9s zTtYb^W0f%)vWF%{B^p(7iXld4d&qHB#%O4CNKQT^&-|9WNSdAFhZGK}483**T!Eni z6Z@R${eQ_{W;DqkQvAyma0ULD0#ek=dcjTQyY<8N^sWsoS1f887uBKBA3Os1q36g+ e>a_l#KI5v4(NIUx_CzQ8Lm&y_l`HTA3cLbL;67vk literal 0 HcmV?d00001 diff --git a/examples/hello/package.json b/examples/hello/package.json index 9b739a0..85204a4 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,7 +23,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "^0.0.33", + "@restackio/restack-sdk-ts": "^0.0.34", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" }, diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 68af2cd..29bfe2f 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/restack-sdk-ts': - specifier: ^0.0.33 - version: 0.0.33 + specifier: ^0.0.34 + version: 0.0.34 '@temporalio/worker': specifier: ^1.10.3 version: 1.10.3 @@ -130,8 +130,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.33': - resolution: {integrity: sha512-buqR0wQL10fZcpDaKjgG7b8gGHq6ocImqLhBl5KzOOejsrnTTJv60ZsZbZXJsBus3WUj6y3DJKJqGMjMBiQZ/Q==} + '@restackio/restack-sdk-ts@0.0.34': + resolution: {integrity: sha512-c0XdF3KsGrtTMg/+E0FMbhKON9bMY5CgbzkuY5SHxQVsjXK+pSEEeORsyMK3AkQYQLvz6c7M8a6ucyD7H0997g==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1007,7 +1007,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.33': + '@restackio/restack-sdk-ts@0.0.34': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/hello/scheduleWorkflow.ts b/examples/hello/scheduleWorkflow.ts index fb0c46a..c07364c 100644 --- a/examples/hello/scheduleWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -15,7 +15,7 @@ async function scheduleWorkflow() { ], }); - const result = await restack.getResult(workflowId, runId); + const result = await restack.getResult({ workflowId, runId }); console.log("Workflow result:", result); diff --git a/examples/hello/tsconfig.json b/examples/hello/tsconfig.json new file mode 100644 index 0000000..a544b3a --- /dev/null +++ b/examples/hello/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "Node16", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "resolveJsonModule": true + }, + "include": ["src/**/*.ts", "src/server"], + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/examples/twilio/package.json b/examples/twilio/package.json index f978189..e8bb9b9 100644 --- a/examples/twilio/package.json +++ b/examples/twilio/package.json @@ -14,7 +14,7 @@ "license": "ISC", "dependencies": { "@deepgram/sdk": "^3.5.1", - "@restackio/restack-sdk-ts": "^0.0.33", + "@restackio/restack-sdk-ts": "^0.0.34", "@temporalio/workflow": "1.10.3", "axios": "^1.7.3", "cors": "^2.8.5", diff --git a/examples/twilio/pnpm-lock.yaml b/examples/twilio/pnpm-lock.yaml index 94b7c27..771790e 100644 --- a/examples/twilio/pnpm-lock.yaml +++ b/examples/twilio/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^3.5.1 version: 3.5.1(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/restack-sdk-ts': - specifier: ^0.0.33 - version: 0.0.33 + specifier: ^0.0.34 + version: 0.0.34 '@temporalio/workflow': specifier: 1.10.3 version: 1.10.3 @@ -175,8 +175,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.33': - resolution: {integrity: sha512-buqR0wQL10fZcpDaKjgG7b8gGHq6ocImqLhBl5KzOOejsrnTTJv60ZsZbZXJsBus3WUj6y3DJKJqGMjMBiQZ/Q==} + '@restackio/restack-sdk-ts@0.0.34': + resolution: {integrity: sha512-c0XdF3KsGrtTMg/+E0FMbhKON9bMY5CgbzkuY5SHxQVsjXK+pSEEeORsyMK3AkQYQLvz6c7M8a6ucyD7H0997g==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.10': @@ -1548,7 +1548,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.33': + '@restackio/restack-sdk-ts@0.0.34': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/work-in-progress/local-streaming/.env.example b/examples/work-in-progress/local-streaming/.env.example deleted file mode 100644 index 9847a1d..0000000 --- a/examples/work-in-progress/local-streaming/.env.example +++ /dev/null @@ -1 +0,0 @@ -OPENAI_API_KEY= \ No newline at end of file diff --git a/examples/work-in-progress/local-streaming/.gitignore b/examples/work-in-progress/local-streaming/.gitignore deleted file mode 100644 index a0d218e..0000000 --- a/examples/work-in-progress/local-streaming/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -.env \ No newline at end of file diff --git a/examples/work-in-progress/local-streaming/package.json b/examples/work-in-progress/local-streaming/package.json deleted file mode 100644 index b646abd..0000000 --- a/examples/work-in-progress/local-streaming/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "sdk-example-ts", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "start.watch": "nodemon ./src/run.ts", - "dev": "pnpm start.watch", - "workflow": "ts-node ./scheduleWorkflow.ts", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "nodemonConfig": { - "execMap": { - "ts": "ts-node" - }, - "ext": "ts", - "watch": [ - "src" - ] - }, - "dependencies": { - "@temporalio/worker": "^1.10.3", - "@temporalio/workflow": "^1.10.3", - "dotenv": "^16.4.5", - "openai": "^4.53.2", - "restack-sdk-ts-local": "/Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist" - }, - "devDependencies": { - "@types/node": "^20.11.1", - "nodemon": "^2.0.12", - "ts-node": "^10.9.2" - } -} diff --git a/examples/work-in-progress/local-streaming/pnpm-lock.yaml b/examples/work-in-progress/local-streaming/pnpm-lock.yaml deleted file mode 100644 index b0477e0..0000000 --- a/examples/work-in-progress/local-streaming/pnpm-lock.yaml +++ /dev/null @@ -1,1777 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@temporalio/worker': - specifier: ^1.10.3 - version: 1.10.3 - '@temporalio/workflow': - specifier: ^1.10.3 - version: 1.10.3 - dotenv: - specifier: ^16.4.5 - version: 16.4.5 - openai: - specifier: ^4.53.2 - version: 4.53.2 - restack-sdk-ts-local: - specifier: /Users/aboutphilippe/Documents/dev/local-operator/sdk/typescript/dist - version: link:../../../../local-operator/sdk/typescript/dist - devDependencies: - '@types/node': - specifier: ^20.11.1 - version: 20.14.12 - nodemon: - specifier: ^2.0.12 - version: 2.0.22 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.2)(@types/node@20.14.12)(typescript@5.5.4) - -packages: - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@grpc/grpc-js@1.11.1': - resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} - engines: {node: '>=12.10.0'} - - '@grpc/proto-loader@0.7.13': - resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} - engines: {node: '>=6'} - hasBin: true - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@js-sdsl/ordered-map@4.4.2': - resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} - - '@jsonjoy.com/base64@1.1.2': - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pack@1.0.4': - resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/util@1.3.0': - resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - - '@swc/core-darwin-arm64@1.7.2': - resolution: {integrity: sha512-Zb8KiGaESzOgh5HBnp6Vhs2fRpngHIT81JOfIo0oaGlzAckamnG7UAXC/yK6cQ8q2KXc78utJ/yq/NM2yVKLqw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.7.2': - resolution: {integrity: sha512-qb0HY9GEexpPm46Hb3OY7E6xb4r+eniiThm+0Gcnhf19EZV2ZlsCC8Rdbhmav33x++ZqSDzZ44fxMY2vnN5VDg==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.7.2': - resolution: {integrity: sha512-x2+MOK3RzH3yEkaukKtpDW/udM1x9GoYtXaLNqlq6ovAzZPQ9FDFI0pm1asL4akHUw3s7YTh1aUY7QscstJAHQ==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.7.2': - resolution: {integrity: sha512-4J3HGEDus7a9xnrJUFGyJJgvj4w+BFGiZvs08xbw4Z1ZN4uHJQiJiDsQEAWWciKUxrOndP3SocUq/GhEGiDm0g==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-arm64-musl@1.7.2': - resolution: {integrity: sha512-4FhQmYbj8SCmir4pHRLSn8IIFmRKHTL3eZFtOpm26RLME7rXL7Yt33DpzIeTRoHFIesI5NEfaR38WU5mY7P1pA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-x64-gnu@1.7.2': - resolution: {integrity: sha512-Loz10Hy6z5mBIAOe6OInOVsYu+PVxyknCB3thtr7QH+uqEz6dcXhU2ERrO2Lf4dsTsFs/Wb80rv8zTSwB8dpsw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-linux-x64-musl@1.7.2': - resolution: {integrity: sha512-8p8qNWaLcTa+qHX4NSv1KNm8BQ6zPoLXuOBo9DtOEqc+K60IISGKPCAS7TJlCcv0q20JnmxZ/cEWW5Qo4TR4XQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-win32-arm64-msvc@1.7.2': - resolution: {integrity: sha512-eNWAYOalBlFrhv/IVSQ1dxu7qIGuhxlUJZTYa8jsgLnKt93vAFd2cjLtKZ85k1OibBnq9PkKQyo4NKVr4hBavw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.7.2': - resolution: {integrity: sha512-BbpaCPCnbQHCzpQ9yDH3qp1Y5Ijd0NSMNk4qqESN2WWx0ojV2uBTjPou5NC2MZxk8fM3iJpJ05enf+IeaXuh6A==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.7.2': - resolution: {integrity: sha512-21mf4Jg9Arx0lUnmRQtYd8IQB4WkY4LHJrvcz3EmKbwCTCXI5rQ6Ifnjk7EmG3Tizv0giHqQBQLu5NXWBz45Mg==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.7.2': - resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': '*' - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/types@0.1.12': - resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - - '@temporalio/activity@1.10.3': - resolution: {integrity: sha512-2wGEnH3lzfRkAPsM29Uih4jaXPjsRDCsXdSFJqmHz2fxcfodcjSjgTAJERFKRVOb9JfYmzsITRIrkKAfs3kvxA==} - - '@temporalio/client@1.10.3': - resolution: {integrity: sha512-0xGYlURFoHrWByIJB3vNCaY7p9lnUkvrlA4uVAG92AwI0z/kcXdkUwn+VTOBBJi83iX6NZ0QS47HA6sCr00OPw==} - - '@temporalio/common@1.10.3': - resolution: {integrity: sha512-0LF4UZQomMy+K3dGR0PGkBAqBByavjldeUKyMONtDrVqtq4sO2+2NtLW9mvmXGCH15jsabye1pQZdZxlTGP/CQ==} - - '@temporalio/core-bridge@1.10.3': - resolution: {integrity: sha512-TJV8Th8h0pv6gwwEqcTUIbOZVqfKj/6qWgNBnZuHi3BYd1WKzvXGGg0r1gorwlfapaC3Mms/Rqed9Xlnl9xjDQ==} - - '@temporalio/proto@1.10.3': - resolution: {integrity: sha512-ugp04SpQFNmOa0+/kpg2vLfWMBPD2UW4s4XRaN23v9RREZ0HqV+DB+ZTT+03F9jeZlIFB0hxbF1Xd65tAF6fKg==} - - '@temporalio/worker@1.10.3': - resolution: {integrity: sha512-IGHSpp9usFcn1kuYs234xOP2xjBJVyEtjborV8ZEFi9Eu01s7BfrNrVZUMQjs6dRTOCvvvkiFhU3MNuyk2qkWA==} - engines: {node: '>= 16.0.0'} - - '@temporalio/workflow@1.10.3': - resolution: {integrity: sha512-XnP1Srb4r1dhl4g5U/KDTSSJ9zixIeqBd5lfC0wol257ItjfJPJgXAYUNg0YqPg4HyE77OlG7Qh6qhyAU80ubg==} - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - - '@types/node@18.19.42': - resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} - - '@types/node@20.14.12': - resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} - - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} - - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} - - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} - - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} - - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} - - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} - - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} - - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} - - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - caniuse-lite@1.0.30001643: - resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} - - cargo-cp-artifact@0.1.9: - resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} - hasBin: true - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - - electron-to-chromium@1.5.2: - resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - enhanced-resolve@5.17.1: - resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} - engines: {node: '>=10.13.0'} - - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - - fs-monkey@1.0.6: - resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - heap-js@2.5.0: - resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} - engines: {node: '>=10.0.0'} - - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - - hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} - engines: {node: '>=10.18'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ignore-by-default@1.0.1: - resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - memfs@4.11.0: - resolution: {integrity: sha512-+6kz90/YQoZuHvg3rn1CGPMZfEMaU5xe7xIavZMNiom2RNesiI8S37p9O9n+PlIUnUgretjLdM6HnqpZYl3X2g==} - engines: {node: '>= 4.0.0'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - ms@3.0.0-canary.1: - resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} - engines: {node: '>=12.13'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - - nodemon@2.0.22: - resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} - engines: {node: '>=8.10.0'} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - openai@4.53.2: - resolution: {integrity: sha512-ohYEv6OV3jsFGqNrgolDDWN6Ssx1nFg6JDJQuaBFo4SL2i+MBoOQ16n2Pq1iBF5lH1PKnfCIOfqAGkmzPvdB9g==} - hasBin: true - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - proto3-json-serializer@2.0.2: - resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} - engines: {node: '>=14.0.0'} - - protobufjs@7.3.2: - resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} - engines: {node: '>=12.0.0'} - - pstree.remy@1.1.8: - resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@7.0.0: - resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} - hasBin: true - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - simple-update-notifier@1.1.0: - resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} - engines: {node: '>=8.10.0'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-loader@4.0.2: - resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.72.1 - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - swc-loader@0.2.6: - resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} - peerDependencies: - '@swc/core': ^1.2.147 - webpack: '>=2' - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.31.3: - resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} - engines: {node: '>=10'} - hasBin: true - - thingies@1.21.0: - resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} - engines: {node: '>=10.18'} - peerDependencies: - tslib: ^2 - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - touch@3.1.1: - resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} - hasBin: true - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tree-dump@1.0.2: - resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - 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 - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - undefsafe@2.0.5: - resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - unionfs@4.5.4: - resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} - - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - - web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.93.0: - resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - -snapshots: - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@grpc/grpc-js@1.11.1': - dependencies: - '@grpc/proto-loader': 0.7.13 - '@js-sdsl/ordered-map': 4.4.2 - - '@grpc/proto-loader@0.7.13': - dependencies: - lodash.camelcase: 4.3.0 - long: 5.2.3 - protobufjs: 7.3.2 - yargs: 17.7.2 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@js-sdsl/ordered-map@4.4.2': {} - - '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': - dependencies: - tslib: 2.6.3 - - '@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3)': - dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.6.3) - tslib: 2.6.3 - - '@jsonjoy.com/util@1.3.0(tslib@2.6.3)': - dependencies: - tslib: 2.6.3 - - '@protobufjs/aspromise@1.1.2': {} - - '@protobufjs/base64@1.1.2': {} - - '@protobufjs/codegen@2.0.4': {} - - '@protobufjs/eventemitter@1.1.0': {} - - '@protobufjs/fetch@1.1.0': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.0': {} - - '@protobufjs/path@1.1.2': {} - - '@protobufjs/pool@1.1.0': {} - - '@protobufjs/utf8@1.1.0': {} - - '@swc/core-darwin-arm64@1.7.2': - optional: true - - '@swc/core-darwin-x64@1.7.2': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.7.2': - optional: true - - '@swc/core-linux-arm64-gnu@1.7.2': - optional: true - - '@swc/core-linux-arm64-musl@1.7.2': - optional: true - - '@swc/core-linux-x64-gnu@1.7.2': - optional: true - - '@swc/core-linux-x64-musl@1.7.2': - optional: true - - '@swc/core-win32-arm64-msvc@1.7.2': - optional: true - - '@swc/core-win32-ia32-msvc@1.7.2': - optional: true - - '@swc/core-win32-x64-msvc@1.7.2': - optional: true - - '@swc/core@1.7.2': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 - optionalDependencies: - '@swc/core-darwin-arm64': 1.7.2 - '@swc/core-darwin-x64': 1.7.2 - '@swc/core-linux-arm-gnueabihf': 1.7.2 - '@swc/core-linux-arm64-gnu': 1.7.2 - '@swc/core-linux-arm64-musl': 1.7.2 - '@swc/core-linux-x64-gnu': 1.7.2 - '@swc/core-linux-x64-musl': 1.7.2 - '@swc/core-win32-arm64-msvc': 1.7.2 - '@swc/core-win32-ia32-msvc': 1.7.2 - '@swc/core-win32-x64-msvc': 1.7.2 - - '@swc/counter@0.1.3': {} - - '@swc/types@0.1.12': - dependencies: - '@swc/counter': 0.1.3 - - '@temporalio/activity@1.10.3': - dependencies: - '@temporalio/common': 1.10.3 - abort-controller: 3.0.0 - - '@temporalio/client@1.10.3': - dependencies: - '@grpc/grpc-js': 1.11.1 - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 - abort-controller: 3.0.0 - long: 5.2.3 - uuid: 9.0.1 - - '@temporalio/common@1.10.3': - dependencies: - '@temporalio/proto': 1.10.3 - long: 5.2.3 - ms: 3.0.0-canary.1 - proto3-json-serializer: 2.0.2 - - '@temporalio/core-bridge@1.10.3': - dependencies: - '@temporalio/common': 1.10.3 - arg: 5.0.2 - cargo-cp-artifact: 0.1.9 - which: 4.0.0 - - '@temporalio/proto@1.10.3': - dependencies: - long: 5.2.3 - protobufjs: 7.3.2 - - '@temporalio/worker@1.10.3': - dependencies: - '@swc/core': 1.7.2 - '@temporalio/activity': 1.10.3 - '@temporalio/client': 1.10.3 - '@temporalio/common': 1.10.3 - '@temporalio/core-bridge': 1.10.3 - '@temporalio/proto': 1.10.3 - '@temporalio/workflow': 1.10.3 - abort-controller: 3.0.0 - heap-js: 2.5.0 - memfs: 4.11.0 - rxjs: 7.8.1 - source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.2)) - supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)) - unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.2) - transitivePeerDependencies: - - '@swc/helpers' - - esbuild - - uglify-js - - webpack-cli - - '@temporalio/workflow@1.10.3': - dependencies: - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 - - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.0 - '@types/estree': 1.0.5 - - '@types/eslint@9.6.0': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - - '@types/estree@1.0.5': {} - - '@types/json-schema@7.0.15': {} - - '@types/node-fetch@2.6.11': - dependencies: - '@types/node': 20.14.12 - form-data: 4.0.0 - - '@types/node@18.19.42': - dependencies: - undici-types: 5.26.5 - - '@types/node@20.14.12': - dependencies: - undici-types: 5.26.5 - - '@webassemblyjs/ast@1.12.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - - '@webassemblyjs/helper-api-error@1.11.6': {} - - '@webassemblyjs/helper-buffer@1.12.1': {} - - '@webassemblyjs/helper-numbers@1.11.6': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - - '@webassemblyjs/helper-wasm-section@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 - - '@webassemblyjs/ieee754@1.11.6': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.11.6': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.11.6': {} - - '@webassemblyjs/wasm-edit@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 - - '@webassemblyjs/wasm-gen@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wasm-opt@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - - '@webassemblyjs/wasm-parser@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wast-printer@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@xtuc/long': 4.2.2 - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - acorn-import-attributes@1.9.5(acorn@8.12.1): - dependencies: - acorn: 8.12.1 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.1 - - acorn@8.12.1: {} - - agentkeepalive@4.5.0: - dependencies: - humanize-ms: 1.2.1 - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - arg@4.1.3: {} - - arg@5.0.2: {} - - asynckit@0.4.0: {} - - balanced-match@1.0.2: {} - - binary-extensions@2.3.0: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.23.2: - dependencies: - caniuse-lite: 1.0.30001643 - electron-to-chromium: 1.5.2 - node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.2) - - buffer-from@1.1.2: {} - - caniuse-lite@1.0.30001643: {} - - cargo-cp-artifact@0.1.9: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chrome-trace-event@1.0.4: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@2.20.3: {} - - concat-map@0.0.1: {} - - create-require@1.1.1: {} - - debug@3.2.7(supports-color@5.5.0): - dependencies: - ms: 2.1.3 - optionalDependencies: - supports-color: 5.5.0 - - delayed-stream@1.0.0: {} - - diff@4.0.2: {} - - dotenv@16.4.5: {} - - electron-to-chromium@1.5.2: {} - - emoji-regex@8.0.0: {} - - enhanced-resolve@5.17.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - es-module-lexer@1.5.4: {} - - escalade@3.1.2: {} - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - fast-deep-equal@3.1.3: {} - - fast-json-stable-stringify@2.1.0: {} - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - form-data-encoder@1.7.2: {} - - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - formdata-node@4.4.1: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - - fs-monkey@1.0.6: {} - - fsevents@2.3.3: - optional: true - - get-caller-file@2.0.5: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-to-regexp@0.4.1: {} - - graceful-fs@4.2.11: {} - - has-flag@3.0.0: {} - - has-flag@4.0.0: {} - - heap-js@2.5.0: {} - - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - hyperdyperid@1.2.0: {} - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - ignore-by-default@1.0.1: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - isexe@3.1.1: {} - - jest-worker@27.5.1: - dependencies: - '@types/node': 20.14.12 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - loader-runner@4.3.0: {} - - lodash.camelcase@4.3.0: {} - - long@5.2.3: {} - - make-error@1.3.6: {} - - memfs@4.11.0: - dependencies: - '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - tree-dump: 1.0.2(tslib@2.6.3) - tslib: 2.6.3 - - merge-stream@2.0.0: {} - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - ms@2.1.3: {} - - ms@3.0.0-canary.1: {} - - neo-async@2.6.2: {} - - node-domexception@1.0.0: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-releases@2.0.18: {} - - nodemon@2.0.22: - dependencies: - chokidar: 3.6.0 - debug: 3.2.7(supports-color@5.5.0) - ignore-by-default: 1.0.1 - minimatch: 3.1.2 - pstree.remy: 1.1.8 - semver: 5.7.2 - simple-update-notifier: 1.1.0 - supports-color: 5.5.0 - touch: 3.1.1 - undefsafe: 2.0.5 - - normalize-path@3.0.0: {} - - openai@4.53.2: - dependencies: - '@types/node': 18.19.42 - '@types/node-fetch': 2.6.11 - abort-controller: 3.0.0 - agentkeepalive: 4.5.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - - picocolors@1.0.1: {} - - picomatch@2.3.1: {} - - proto3-json-serializer@2.0.2: - dependencies: - protobufjs: 7.3.2 - - protobufjs@7.3.2: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/node': 20.14.12 - long: 5.2.3 - - pstree.remy@1.1.8: {} - - punycode@2.3.1: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - require-directory@2.1.1: {} - - rxjs@7.8.1: - dependencies: - tslib: 2.6.3 - - safe-buffer@5.2.1: {} - - safer-buffer@2.1.2: {} - - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - - semver@5.7.2: {} - - semver@7.0.0: {} - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - - simple-update-notifier@1.1.0: - dependencies: - semver: 7.0.0 - - source-map-js@1.2.0: {} - - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.2)): - dependencies: - iconv-lite: 0.6.3 - source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.2) - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - source-map@0.7.4: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - swc-loader@0.2.6(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)): - dependencies: - '@swc/core': 1.7.2 - '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.2) - - tapable@2.2.1: {} - - terser-webpack-plugin@5.3.10(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.31.3 - webpack: 5.93.0(@swc/core@1.7.2) - optionalDependencies: - '@swc/core': 1.7.2 - - terser@5.31.3: - dependencies: - '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 - commander: 2.20.3 - source-map-support: 0.5.21 - - thingies@1.21.0(tslib@2.6.3): - dependencies: - tslib: 2.6.3 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - touch@3.1.1: {} - - tr46@0.0.3: {} - - tree-dump@1.0.2(tslib@2.6.3): - dependencies: - tslib: 2.6.3 - - ts-node@10.9.2(@swc/core@1.7.2)(@types/node@20.14.12)(typescript@5.5.4): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.12 - acorn: 8.12.1 - acorn-walk: 8.3.3 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.5.4 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.7.2 - - tslib@2.6.3: {} - - typescript@5.5.4: {} - - undefsafe@2.0.5: {} - - undici-types@5.26.5: {} - - unionfs@4.5.4: - dependencies: - fs-monkey: 1.0.6 - - update-browserslist-db@1.1.0(browserslist@4.23.2): - dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - uuid@9.0.1: {} - - v8-compile-cache-lib@3.0.1: {} - - watchpack@2.4.1: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - - web-streams-polyfill@4.0.0-beta.3: {} - - webidl-conversions@3.0.1: {} - - webpack-sources@3.2.3: {} - - webpack@5.93.0(@swc/core@1.7.2): - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which@4.0.0: - dependencies: - isexe: 3.1.1 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - y18n@5.0.8: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yn@3.1.1: {} diff --git a/examples/work-in-progress/local-streaming/readme.md b/examples/work-in-progress/local-streaming/readme.md deleted file mode 100644 index 6c4eeaa..0000000 --- a/examples/work-in-progress/local-streaming/readme.md +++ /dev/null @@ -1,17 +0,0 @@ -pnpm link --global restack-sdk-ts - -# /backend - -add OPENAI_API_KEY in .env - -pnpm i -pnpm dev - -Tools will be running and waiting for workflows - -# /trigger - -pnpm i -pnpm trigger - -Will trigger example workflow diff --git a/examples/work-in-progress/local-streaming/scheduleWorkflow.ts b/examples/work-in-progress/local-streaming/scheduleWorkflow.ts deleted file mode 100644 index fb0e5ce..0000000 --- a/examples/work-in-progress/local-streaming/scheduleWorkflow.ts +++ /dev/null @@ -1,37 +0,0 @@ -import Restack from "restack-sdk-ts-local"; - -async function scheduleWorkflow() { - try { - const restack = new Restack(); - - const streamUpdate = (result: string) => { - console.log("Stream update:", result); - }; - - const handle = await restack.schedule({ - workflowName: "stream", - workflowId: `${Date.now()}-streamWorkflow`, - input: [ - { - name: "test", - streamUpdate, - }, - ], - }); - - console.log("Workflow scheduled successfully:", handle.firstExecutionRunId); - - handle.result().then((result) => { - console.log("Workflow result:", result); - }); - - handle.startUpdate; - - process.exit(0); // Exit the process successfully - } catch (error) { - console.error("Error scheduling workflow:", error); - process.exit(1); // Exit the process with an error code - } -} - -scheduleWorkflow(); diff --git a/examples/work-in-progress/local-streaming/src/functions/index.ts b/examples/work-in-progress/local-streaming/src/functions/index.ts deleted file mode 100644 index 57c57bc..0000000 --- a/examples/work-in-progress/local-streaming/src/functions/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./stream"; diff --git a/examples/work-in-progress/local-streaming/src/functions/openai/client.ts b/examples/work-in-progress/local-streaming/src/functions/openai/client.ts deleted file mode 100644 index cb68eec..0000000 --- a/examples/work-in-progress/local-streaming/src/functions/openai/client.ts +++ /dev/null @@ -1,8 +0,0 @@ -import OpenAI from "openai"; -import dotenv from "dotenv"; - -dotenv.config(); - -export const openaiClient = new OpenAI({ - apiKey: process.env.OPENAI_API_KEY ?? "", -}); diff --git a/examples/work-in-progress/local-streaming/src/functions/stream.ts b/examples/work-in-progress/local-streaming/src/functions/stream.ts deleted file mode 100644 index ad5990a..0000000 --- a/examples/work-in-progress/local-streaming/src/functions/stream.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { FunctionFailure, log } from "restack-sdk-ts-local/function"; -import { openaiClient } from "./openai/client"; - -export async function stream({ - name, - streamUpdate, -}: { - name: string; - streamUpdate: (result: string) => void; -}) { - try { - const modelToUse = "gpt-4o-mini-2024-07-18"; - - const template = `Tell me a story about: ${name}. In 4 words or less.`; - - const stream = await openaiClient.chat.completions.create({ - messages: [{ role: "user", content: template }], - model: modelToUse, - temperature: 0, - stream: true, - }); - - let message = ""; - for await (const part of stream) { - message = message + part.choices[0]?.delta?.content; - log.info("stream openai", { content: part.choices[0]?.delta?.content }); - } - - return message; - } catch (error) { - throw FunctionFailure.nonRetryable(`Error OpenAI chat: ${error}`); - } -} diff --git a/examples/work-in-progress/local-streaming/src/run.ts b/examples/work-in-progress/local-streaming/src/run.ts deleted file mode 100644 index 908cbb4..0000000 --- a/examples/work-in-progress/local-streaming/src/run.ts +++ /dev/null @@ -1,40 +0,0 @@ -import Restack from "restack-sdk-ts-local"; -import { stream } from "./functions"; - -async function main() { - const workflowsPath = require.resolve("./workflows"); - - function calculateRpmToSecond(openaiRpm: number): number { - // RPD limit https://platform.openai.com/account/limits - const secondsInAMinute: number = 60; - return openaiRpm / secondsInAMinute; - } - - try { - const restack = new Restack(); - - await Promise.all([ - restack.pod({ - name: "restack", - workflowsPath, - }), - restack.pod({ - name: "openai", - functions: { stream }, - streaming: true, - - // rate limit allows you to control the number of requests per second for all your function associated to this tool - - rateLimit: calculateRpmToSecond(5000), - }), - ]); - - console.log("Started successfully."); - } catch (e) { - console.error("Failed to start:", e); - } -} - -main().catch((err) => { - console.error("Error in main:", err); -}); diff --git a/examples/work-in-progress/local-streaming/src/workflows/index.ts b/examples/work-in-progress/local-streaming/src/workflows/index.ts deleted file mode 100644 index 57c57bc..0000000 --- a/examples/work-in-progress/local-streaming/src/workflows/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./stream"; diff --git a/examples/work-in-progress/local-streaming/src/workflows/stream.ts b/examples/work-in-progress/local-streaming/src/workflows/stream.ts deleted file mode 100644 index a75f4c2..0000000 --- a/examples/work-in-progress/local-streaming/src/workflows/stream.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { step } from "restack-sdk-ts-local/workflow"; -import * as functions from "../functions"; - -interface Input { - name: string; - streamUpdate: (result: string) => void; -} - -export async function stream({ name, streamUpdate }: Input) { - await step({ - podName: `openai`, - scheduleToCloseTimeout: "1 minute", - }).stream({ name, streamUpdate }); -} diff --git a/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id b/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id index 9353bb9..bd01fb4 100644 --- a/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id +++ b/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id @@ -1 +1 @@ -f37454253a6728afd00cef071135085596d014d0 \ No newline at end of file +6698bc2370c405cbb935eadaad08df9c0272eed1 \ No newline at end of file From e30913577c7392588d0fdffd31ac0951d8e6e423 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 11 Aug 2024 23:45:25 +0200 Subject: [PATCH 028/122] renamed to voice Former-commit-id: d08b89a73010bd02a1344ee20e7a7ff139840133 Former-commit-id: d2cd47ad179fdcb85960671614270861494623e3 --- examples/{twilio => voice}/.env.example | 0 examples/{twilio => voice}/callWorkflow.ts | 0 examples/{twilio => voice}/package.json | 2 +- examples/{twilio => voice}/pnpm-lock.yaml | 0 examples/{twilio => voice}/readme.md | 0 examples/{twilio => voice}/src/.DS_Store | Bin .../src/functions/deepgram/index.ts | 0 .../src/functions/deepgram/listen.ts | 0 .../src/functions/deepgram/speak.ts | 0 .../src/functions/erp/checkInventory.ts | 0 .../src/functions/erp/checkPrice.ts | 0 .../{twilio => voice}/src/functions/erp/index.ts | 0 .../src/functions/erp/placeOrder.ts | 0 .../{twilio => voice}/src/functions/erp/tools.ts | 0 examples/{twilio => voice}/src/functions/index.ts | 0 .../{twilio => voice}/src/functions/openai/chat.ts | 0 .../{twilio => voice}/src/functions/openai/index.ts | 0 .../src/functions/openai/prompt.ts | 0 .../src/functions/openai/utils/aggregateStream.ts | 0 .../src/functions/openai/utils/mergeToolCalls.ts | 0 .../{twilio => voice}/src/functions/twilio/index.ts | 0 .../src/functions/twilio/twilioCall.ts | 0 .../{twilio => voice}/src/functions/utils/index.ts | 0 .../src/functions/utils/updateAgent.ts | 0 .../src/functions/websocket/connect.ts | 0 .../src/functions/websocket/index.ts | 0 .../src/functions/websocket/listenMedia.ts | 0 .../src/functions/websocket/sendAudio.ts | 0 .../src/functions/websocket/sendEvent.ts | 0 examples/{twilio => voice}/src/pods.ts | 0 examples/{twilio => voice}/src/server.ts | 0 examples/{twilio => voice}/src/threads/agent.ts | 0 examples/{twilio => voice}/src/threads/index.ts | 0 examples/{twilio => voice}/src/threads/stream.ts | 0 .../{twilio => voice}/src/threads/twilioCall.ts | 0 examples/{twilio => voice}/tsconfig.json | 0 36 files changed, 1 insertion(+), 1 deletion(-) rename examples/{twilio => voice}/.env.example (100%) rename examples/{twilio => voice}/callWorkflow.ts (100%) rename examples/{twilio => voice}/package.json (97%) rename examples/{twilio => voice}/pnpm-lock.yaml (100%) rename examples/{twilio => voice}/readme.md (100%) rename examples/{twilio => voice}/src/.DS_Store (100%) rename examples/{twilio => voice}/src/functions/deepgram/index.ts (100%) rename examples/{twilio => voice}/src/functions/deepgram/listen.ts (100%) rename examples/{twilio => voice}/src/functions/deepgram/speak.ts (100%) rename examples/{twilio => voice}/src/functions/erp/checkInventory.ts (100%) rename examples/{twilio => voice}/src/functions/erp/checkPrice.ts (100%) rename examples/{twilio => voice}/src/functions/erp/index.ts (100%) rename examples/{twilio => voice}/src/functions/erp/placeOrder.ts (100%) rename examples/{twilio => voice}/src/functions/erp/tools.ts (100%) rename examples/{twilio => voice}/src/functions/index.ts (100%) rename examples/{twilio => voice}/src/functions/openai/chat.ts (100%) rename examples/{twilio => voice}/src/functions/openai/index.ts (100%) rename examples/{twilio => voice}/src/functions/openai/prompt.ts (100%) rename examples/{twilio => voice}/src/functions/openai/utils/aggregateStream.ts (100%) rename examples/{twilio => voice}/src/functions/openai/utils/mergeToolCalls.ts (100%) rename examples/{twilio => voice}/src/functions/twilio/index.ts (100%) rename examples/{twilio => voice}/src/functions/twilio/twilioCall.ts (100%) rename examples/{twilio => voice}/src/functions/utils/index.ts (100%) rename examples/{twilio => voice}/src/functions/utils/updateAgent.ts (100%) rename examples/{twilio => voice}/src/functions/websocket/connect.ts (100%) rename examples/{twilio => voice}/src/functions/websocket/index.ts (100%) rename examples/{twilio => voice}/src/functions/websocket/listenMedia.ts (100%) rename examples/{twilio => voice}/src/functions/websocket/sendAudio.ts (100%) rename examples/{twilio => voice}/src/functions/websocket/sendEvent.ts (100%) rename examples/{twilio => voice}/src/pods.ts (100%) rename examples/{twilio => voice}/src/server.ts (100%) rename examples/{twilio => voice}/src/threads/agent.ts (100%) rename examples/{twilio => voice}/src/threads/index.ts (100%) rename examples/{twilio => voice}/src/threads/stream.ts (100%) rename examples/{twilio => voice}/src/threads/twilioCall.ts (100%) rename examples/{twilio => voice}/tsconfig.json (100%) diff --git a/examples/twilio/.env.example b/examples/voice/.env.example similarity index 100% rename from examples/twilio/.env.example rename to examples/voice/.env.example diff --git a/examples/twilio/callWorkflow.ts b/examples/voice/callWorkflow.ts similarity index 100% rename from examples/twilio/callWorkflow.ts rename to examples/voice/callWorkflow.ts diff --git a/examples/twilio/package.json b/examples/voice/package.json similarity index 97% rename from examples/twilio/package.json rename to examples/voice/package.json index e8bb9b9..74e5caa 100644 --- a/examples/twilio/package.json +++ b/examples/voice/package.json @@ -1,5 +1,5 @@ { - "name": "restack-twilio", + "name": "restack-voice", "version": "1.0.0", "description": "", "main": "index.js", diff --git a/examples/twilio/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml similarity index 100% rename from examples/twilio/pnpm-lock.yaml rename to examples/voice/pnpm-lock.yaml diff --git a/examples/twilio/readme.md b/examples/voice/readme.md similarity index 100% rename from examples/twilio/readme.md rename to examples/voice/readme.md diff --git a/examples/twilio/src/.DS_Store b/examples/voice/src/.DS_Store similarity index 100% rename from examples/twilio/src/.DS_Store rename to examples/voice/src/.DS_Store diff --git a/examples/twilio/src/functions/deepgram/index.ts b/examples/voice/src/functions/deepgram/index.ts similarity index 100% rename from examples/twilio/src/functions/deepgram/index.ts rename to examples/voice/src/functions/deepgram/index.ts diff --git a/examples/twilio/src/functions/deepgram/listen.ts b/examples/voice/src/functions/deepgram/listen.ts similarity index 100% rename from examples/twilio/src/functions/deepgram/listen.ts rename to examples/voice/src/functions/deepgram/listen.ts diff --git a/examples/twilio/src/functions/deepgram/speak.ts b/examples/voice/src/functions/deepgram/speak.ts similarity index 100% rename from examples/twilio/src/functions/deepgram/speak.ts rename to examples/voice/src/functions/deepgram/speak.ts diff --git a/examples/twilio/src/functions/erp/checkInventory.ts b/examples/voice/src/functions/erp/checkInventory.ts similarity index 100% rename from examples/twilio/src/functions/erp/checkInventory.ts rename to examples/voice/src/functions/erp/checkInventory.ts diff --git a/examples/twilio/src/functions/erp/checkPrice.ts b/examples/voice/src/functions/erp/checkPrice.ts similarity index 100% rename from examples/twilio/src/functions/erp/checkPrice.ts rename to examples/voice/src/functions/erp/checkPrice.ts diff --git a/examples/twilio/src/functions/erp/index.ts b/examples/voice/src/functions/erp/index.ts similarity index 100% rename from examples/twilio/src/functions/erp/index.ts rename to examples/voice/src/functions/erp/index.ts diff --git a/examples/twilio/src/functions/erp/placeOrder.ts b/examples/voice/src/functions/erp/placeOrder.ts similarity index 100% rename from examples/twilio/src/functions/erp/placeOrder.ts rename to examples/voice/src/functions/erp/placeOrder.ts diff --git a/examples/twilio/src/functions/erp/tools.ts b/examples/voice/src/functions/erp/tools.ts similarity index 100% rename from examples/twilio/src/functions/erp/tools.ts rename to examples/voice/src/functions/erp/tools.ts diff --git a/examples/twilio/src/functions/index.ts b/examples/voice/src/functions/index.ts similarity index 100% rename from examples/twilio/src/functions/index.ts rename to examples/voice/src/functions/index.ts diff --git a/examples/twilio/src/functions/openai/chat.ts b/examples/voice/src/functions/openai/chat.ts similarity index 100% rename from examples/twilio/src/functions/openai/chat.ts rename to examples/voice/src/functions/openai/chat.ts diff --git a/examples/twilio/src/functions/openai/index.ts b/examples/voice/src/functions/openai/index.ts similarity index 100% rename from examples/twilio/src/functions/openai/index.ts rename to examples/voice/src/functions/openai/index.ts diff --git a/examples/twilio/src/functions/openai/prompt.ts b/examples/voice/src/functions/openai/prompt.ts similarity index 100% rename from examples/twilio/src/functions/openai/prompt.ts rename to examples/voice/src/functions/openai/prompt.ts diff --git a/examples/twilio/src/functions/openai/utils/aggregateStream.ts b/examples/voice/src/functions/openai/utils/aggregateStream.ts similarity index 100% rename from examples/twilio/src/functions/openai/utils/aggregateStream.ts rename to examples/voice/src/functions/openai/utils/aggregateStream.ts diff --git a/examples/twilio/src/functions/openai/utils/mergeToolCalls.ts b/examples/voice/src/functions/openai/utils/mergeToolCalls.ts similarity index 100% rename from examples/twilio/src/functions/openai/utils/mergeToolCalls.ts rename to examples/voice/src/functions/openai/utils/mergeToolCalls.ts diff --git a/examples/twilio/src/functions/twilio/index.ts b/examples/voice/src/functions/twilio/index.ts similarity index 100% rename from examples/twilio/src/functions/twilio/index.ts rename to examples/voice/src/functions/twilio/index.ts diff --git a/examples/twilio/src/functions/twilio/twilioCall.ts b/examples/voice/src/functions/twilio/twilioCall.ts similarity index 100% rename from examples/twilio/src/functions/twilio/twilioCall.ts rename to examples/voice/src/functions/twilio/twilioCall.ts diff --git a/examples/twilio/src/functions/utils/index.ts b/examples/voice/src/functions/utils/index.ts similarity index 100% rename from examples/twilio/src/functions/utils/index.ts rename to examples/voice/src/functions/utils/index.ts diff --git a/examples/twilio/src/functions/utils/updateAgent.ts b/examples/voice/src/functions/utils/updateAgent.ts similarity index 100% rename from examples/twilio/src/functions/utils/updateAgent.ts rename to examples/voice/src/functions/utils/updateAgent.ts diff --git a/examples/twilio/src/functions/websocket/connect.ts b/examples/voice/src/functions/websocket/connect.ts similarity index 100% rename from examples/twilio/src/functions/websocket/connect.ts rename to examples/voice/src/functions/websocket/connect.ts diff --git a/examples/twilio/src/functions/websocket/index.ts b/examples/voice/src/functions/websocket/index.ts similarity index 100% rename from examples/twilio/src/functions/websocket/index.ts rename to examples/voice/src/functions/websocket/index.ts diff --git a/examples/twilio/src/functions/websocket/listenMedia.ts b/examples/voice/src/functions/websocket/listenMedia.ts similarity index 100% rename from examples/twilio/src/functions/websocket/listenMedia.ts rename to examples/voice/src/functions/websocket/listenMedia.ts diff --git a/examples/twilio/src/functions/websocket/sendAudio.ts b/examples/voice/src/functions/websocket/sendAudio.ts similarity index 100% rename from examples/twilio/src/functions/websocket/sendAudio.ts rename to examples/voice/src/functions/websocket/sendAudio.ts diff --git a/examples/twilio/src/functions/websocket/sendEvent.ts b/examples/voice/src/functions/websocket/sendEvent.ts similarity index 100% rename from examples/twilio/src/functions/websocket/sendEvent.ts rename to examples/voice/src/functions/websocket/sendEvent.ts diff --git a/examples/twilio/src/pods.ts b/examples/voice/src/pods.ts similarity index 100% rename from examples/twilio/src/pods.ts rename to examples/voice/src/pods.ts diff --git a/examples/twilio/src/server.ts b/examples/voice/src/server.ts similarity index 100% rename from examples/twilio/src/server.ts rename to examples/voice/src/server.ts diff --git a/examples/twilio/src/threads/agent.ts b/examples/voice/src/threads/agent.ts similarity index 100% rename from examples/twilio/src/threads/agent.ts rename to examples/voice/src/threads/agent.ts diff --git a/examples/twilio/src/threads/index.ts b/examples/voice/src/threads/index.ts similarity index 100% rename from examples/twilio/src/threads/index.ts rename to examples/voice/src/threads/index.ts diff --git a/examples/twilio/src/threads/stream.ts b/examples/voice/src/threads/stream.ts similarity index 100% rename from examples/twilio/src/threads/stream.ts rename to examples/voice/src/threads/stream.ts diff --git a/examples/twilio/src/threads/twilioCall.ts b/examples/voice/src/threads/twilioCall.ts similarity index 100% rename from examples/twilio/src/threads/twilioCall.ts rename to examples/voice/src/threads/twilioCall.ts diff --git a/examples/twilio/tsconfig.json b/examples/voice/tsconfig.json similarity index 100% rename from examples/twilio/tsconfig.json rename to examples/voice/tsconfig.json From 9d66834dd902db2a92e7e4e4acc9b5ee53861d84 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 12 Aug 2024 13:27:24 +0200 Subject: [PATCH 029/122] debug Former-commit-id: 40df3512c6c00a7102233dd7e6417446da6db1d1 Former-commit-id: 33f524b1d2133c6d64902d12ec41933f65b2b69d --- examples/voice/src/functions/deepgram/listen.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/voice/src/functions/deepgram/listen.ts b/examples/voice/src/functions/deepgram/listen.ts index 46d6fef..a0085eb 100644 --- a/examples/voice/src/functions/deepgram/listen.ts +++ b/examples/voice/src/functions/deepgram/listen.ts @@ -44,7 +44,7 @@ export async function deepgramListen({ results: results, }); - const transcript = results?.channels[0].alternatives[0].transcript; + const transcript = results?.channels?.[0].alternatives?.[0].transcript; log.info("deepgramListen transcript: ", { transcript: transcript, From 6073972ed52b000d21a73e37461a5d6ec339e5dd Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 13 Aug 2024 13:28:09 +0200 Subject: [PATCH 030/122] fix example input Former-commit-id: 0060de5192d2127a051a8c0399c0ac1aa6ef642f Former-commit-id: 9c3bfb4fba487e201d1fa0374085e1375dee7711 --- examples/hello/scheduleWorkflow.ts | 8 +++----- examples/voice/src/functions/deepgram/listen.ts | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/examples/hello/scheduleWorkflow.ts b/examples/hello/scheduleWorkflow.ts index c07364c..88b1fbf 100644 --- a/examples/hello/scheduleWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -8,11 +8,9 @@ async function scheduleWorkflow() { const runId = await restack.schedule({ workflowName: "example", workflowId: `${Date.now()}-exampleWorkflow`, - input: [ - { - name: "test", - }, - ], + input: { + name: "test", + }, }); const result = await restack.getResult({ workflowId, runId }); diff --git a/examples/voice/src/functions/deepgram/listen.ts b/examples/voice/src/functions/deepgram/listen.ts index a0085eb..a6f55e1 100644 --- a/examples/voice/src/functions/deepgram/listen.ts +++ b/examples/voice/src/functions/deepgram/listen.ts @@ -40,11 +40,11 @@ export async function deepgramListen({ const results = response.result?.results; - log.info("deepgramListen results: ", { + log.debug("deepgramListen results: ", { results: results, }); - const transcript = results?.channels?.[0].alternatives?.[0].transcript; + const transcript = results?.channels?.[0]?.alternatives?.[0]?.transcript; log.info("deepgramListen transcript: ", { transcript: transcript, From 60ef2ac801886a70ec566e230f4beb692d529d22 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 13 Aug 2024 23:08:55 +0200 Subject: [PATCH 031/122] twilio calls test Former-commit-id: 54558922b512988882132a5d34dcca4ac3504014 Former-commit-id: a86ef5cbb895d525ab69a4a4fc386cc347d16973 --- examples/voice/readme.md | 14 ++++++++++++++ examples/voice/src/functions/deepgram/speak.ts | 4 ++++ .../voice/src/functions/websocket/listenMedia.ts | 8 ++++++++ .../voice/src/functions/websocket/sendAudio.ts | 4 ---- examples/voice/src/threads/stream.ts | 10 +++++----- 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/examples/voice/readme.md b/examples/voice/readme.md index 825a94f..4949697 100644 --- a/examples/voice/readme.md +++ b/examples/voice/readme.md @@ -22,3 +22,17 @@ pnpm ngrok ## Trigger Twilio call with pnpm call + +### Troubleshooting + +Error: listen EADDRINUSE: address already in use :::4000 + +Websocket not properly closed, list which process is using port: + +lsof -i :4000 + +should return for ex. 1234. + +Kill process: + +kill 1234 diff --git a/examples/voice/src/functions/deepgram/speak.ts b/examples/voice/src/functions/deepgram/speak.ts index b060e62..5f20e5b 100644 --- a/examples/voice/src/functions/deepgram/speak.ts +++ b/examples/voice/src/functions/deepgram/speak.ts @@ -34,6 +34,7 @@ export async function deepgramSpeak({ text: string; }): Promise<{ streamSid: string; audio: string }> { if (!text.length) { + log.error("Text is empty"); throw FunctionFailure.nonRetryable("Text is empty"); } const deepgramModel = @@ -54,11 +55,13 @@ export async function deepgramSpeak({ const stream = await response.getStream(); if (!stream) { + log.error("Deepgram speak stream error", { response }); throw new Error(`Deepgram speak stream error ${response}`); } const buffer = await getAudioBuffer(stream); if (!buffer) { + log.error("Deepgram audio buffer error", { stream }); throw new Error(`Deepgram audio buffer error ${stream}`); } const base64String = buffer.toString("base64"); @@ -67,6 +70,7 @@ export async function deepgramSpeak({ }); return { streamSid, audio: base64String }; } catch (error) { + log.error("Deepgram TTS error", { error }); throw new Error(`Deepgram TTS error ${error}`); } } diff --git a/examples/voice/src/functions/websocket/listenMedia.ts b/examples/voice/src/functions/websocket/listenMedia.ts index fbd3515..25d5b9b 100644 --- a/examples/voice/src/functions/websocket/listenMedia.ts +++ b/examples/voice/src/functions/websocket/listenMedia.ts @@ -22,6 +22,14 @@ export async function listenMedia({ streamSid }: StreamInput) { if (message.streamSid === streamSid) { if (message.event === "media") { if (message.media.track === "inbound") { + // Clean Twilio empty noise + const cleanedPayload = message.media.payload?.replace( + /(\+\/[a-zA-Z0-9+\/]{2,}==)/g, + "" + ); + if (!cleanedPayload) { + return; + } log.info("send payload", { streamSid, payload: message.media.payload.length, diff --git a/examples/voice/src/functions/websocket/sendAudio.ts b/examples/voice/src/functions/websocket/sendAudio.ts index ab95dbb..db567fd 100644 --- a/examples/voice/src/functions/websocket/sendAudio.ts +++ b/examples/voice/src/functions/websocket/sendAudio.ts @@ -1,13 +1,10 @@ -import { TrackName } from "../../threads/stream"; import { webSocketConnect } from "./connect"; export async function sendAudio({ streamSid, - trackName, audio, }: { streamSid: string; - trackName: TrackName; audio: string; }) { const ws = await webSocketConnect(); @@ -16,7 +13,6 @@ export async function sendAudio({ streamSid: streamSid, event: "media", media: { - trackName, payload: audio, }, }; diff --git a/examples/voice/src/threads/stream.ts b/examples/voice/src/threads/stream.ts index fcb048e..8cf9cea 100644 --- a/examples/voice/src/threads/stream.ts +++ b/examples/voice/src/threads/stream.ts @@ -77,12 +77,12 @@ export async function streamThread() { text: welcomeMessage, }); - step({ + await step({ podName: `websocket`, scheduleToCloseTimeout: "2 minutes", - }).sendAudio({ streamSid, trackName: "agent", audio }); + }).sendAudio({ streamSid, audio }); - step({ + await step({ podName: `websocket`, scheduleToCloseTimeout: "2 minutes", }).sendEvent({ @@ -160,12 +160,12 @@ export async function streamThread() { isSendingAudio = true; while (audioQueue.length > 0) { - const { streamSid, trackName, audio, text } = audioQueue.shift()!; + const { streamSid, audio } = audioQueue.shift()!; await step({ podName: `websocket`, scheduleToCloseTimeout: "2 minutes", - }).sendAudio({ streamSid, trackName, audio }); + }).sendAudio({ streamSid, audio }); } await step({ From d0eefc7e3a0593863f57a1ea6eb4b54b4f09a5a7 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 14 Aug 2024 15:13:09 +0200 Subject: [PATCH 032/122] update sdk 0.39 Former-commit-id: eee4babd08ccd7c450e7cc9d33fd7ac5e3e2468f Former-commit-id: bccdc69d89c6f93ea2f3c793d9bc24a4ceab091e --- examples/hello/package.json | 4 +- examples/hello/pnpm-lock.yaml | 10 ++-- examples/hello/scheduleWorkflow.ts | 4 +- examples/hello/src/{pods.ts => worker.ts} | 8 +-- examples/hello/src/workflows/example.ts | 4 +- examples/voice/callWorkflow.ts | 2 +- examples/voice/package.json | 4 +- examples/voice/pnpm-lock.yaml | 10 ++-- .../voice/src/functions/deepgram/listen.ts | 2 +- .../voice/src/functions/deepgram/speak.ts | 2 +- examples/voice/src/functions/openai/chat.ts | 16 +++--- .../voice/src/functions/utils/updateAgent.ts | 8 +-- .../src/functions/websocket/listenMedia.ts | 12 +++-- examples/voice/src/server.ts | 22 ++++---- examples/voice/src/{pods.ts => worker.ts} | 30 +++++------ .../voice/src/{threads => workflows}/agent.ts | 25 +++++---- .../voice/src/{threads => workflows}/index.ts | 0 .../src/{threads => workflows}/stream.ts | 53 +++++++++---------- .../src/{threads => workflows}/twilioCall.ts | 2 +- 19 files changed, 110 insertions(+), 108 deletions(-) rename examples/hello/src/{pods.ts => worker.ts} (89%) rename examples/voice/src/{pods.ts => worker.ts} (67%) rename examples/voice/src/{threads => workflows}/agent.ts (85%) rename examples/voice/src/{threads => workflows}/index.ts (100%) rename examples/voice/src/{threads => workflows}/stream.ts (78%) rename examples/voice/src/{threads => workflows}/twilioCall.ts (94%) diff --git a/examples/hello/package.json b/examples/hello/package.json index 85204a4..272b0d6 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start.watch": "nodemon src/pods.ts", + "start.watch": "nodemon src/worker.ts", "dev": "pnpm start.watch", "workflow": "ts-node ./scheduleWorkflow.ts", "test": "echo \"Error: no test specified\" && exit 1" @@ -23,7 +23,7 @@ "@temporalio/workflow": "^1.10.3", "dotenv": "^16.4.5", "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "^0.0.34", + "@restackio/restack-sdk-ts": "^0.0.39", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" }, diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 29bfe2f..1cf9f05 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/restack-sdk-ts': - specifier: ^0.0.34 - version: 0.0.34 + specifier: ^0.0.38 + version: 0.0.38 '@temporalio/worker': specifier: ^1.10.3 version: 1.10.3 @@ -130,8 +130,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.34': - resolution: {integrity: sha512-c0XdF3KsGrtTMg/+E0FMbhKON9bMY5CgbzkuY5SHxQVsjXK+pSEEeORsyMK3AkQYQLvz6c7M8a6ucyD7H0997g==} + '@restackio/restack-sdk-ts@0.0.38': + resolution: {integrity: sha512-PhvRTQFs3NGrmN8tzhEsfTzPjQGXmw1hPVCKNO4nUt6+piH+Pezx8jFBAg9p4oaqLZ4fzdawLgzV5cbJmGYOTA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1007,7 +1007,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.34': + '@restackio/restack-sdk-ts@0.0.38': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/hello/scheduleWorkflow.ts b/examples/hello/scheduleWorkflow.ts index 88b1fbf..d1d9c79 100644 --- a/examples/hello/scheduleWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -5,7 +5,7 @@ async function scheduleWorkflow() { const restack = new Restack(); const workflowId = `${Date.now()}-exampleWorkflow`; - const runId = await restack.schedule({ + const runId = await restack.scheduleWorkflow({ workflowName: "example", workflowId: `${Date.now()}-exampleWorkflow`, input: { @@ -13,7 +13,7 @@ async function scheduleWorkflow() { }, }); - const result = await restack.getResult({ workflowId, runId }); + const result = await restack.getWorkflowResult({ workflowId, runId }); console.log("Workflow result:", result); diff --git a/examples/hello/src/pods.ts b/examples/hello/src/worker.ts similarity index 89% rename from examples/hello/src/pods.ts rename to examples/hello/src/worker.ts index f148288..7e9c264 100644 --- a/examples/hello/src/pods.ts +++ b/examples/hello/src/worker.ts @@ -14,16 +14,16 @@ async function main() { const restack = new Restack(); await Promise.all([ - restack.pod({ - name: "restack", + restack.startWorker({ + taskQueue: "restack", workflowsPath, functions: { goodbye }, }), // Create a separate pod for all openAI functions and rate limit them - restack.pod({ - name: "openai", + restack.startWorker({ + taskQueue: "openai", functions: { greet }, // rate limit allows you to control the number of requests per second for all your function associated to this tool diff --git a/examples/hello/src/workflows/example.ts b/examples/hello/src/workflows/example.ts index e3113d7..9e3f297 100644 --- a/examples/hello/src/workflows/example.ts +++ b/examples/hello/src/workflows/example.ts @@ -18,7 +18,7 @@ export async function example({ name }: Input): Promise { output: { message: greetMessage }, usage: greetUsage, } = await step({ - podName: `openai`, + taskQueue: `openai`, scheduleToCloseTimeout: "1 minute", }).greet({ name }); @@ -27,7 +27,7 @@ export async function example({ name }: Input): Promise { // Step 2 create goodbye message with simple function const { message: goodbyeMessage } = await step({ - podName: `restack`, + taskQueue: `restack`, scheduleToCloseTimeout: "1 minute", }).goodbye({ name }); diff --git a/examples/voice/callWorkflow.ts b/examples/voice/callWorkflow.ts index 170a397..1316fda 100644 --- a/examples/voice/callWorkflow.ts +++ b/examples/voice/callWorkflow.ts @@ -4,7 +4,7 @@ async function scheduleWorkflow() { try { const restack = new Restack(); - const workflowRunId = await restack.schedule({ + const workflowRunId = await restack.scheduleWorkflow({ workflowName: "twilioCallWorkflow", workflowId: `${Date.now()}-twilioCallWorkflow`, }); diff --git a/examples/voice/package.json b/examples/voice/package.json index 74e5caa..ac65b2d 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", - "dev-pods": "ts-node-dev --respawn --transpile-only src/pods.ts", + "dev-worker": "ts-node-dev --respawn --transpile-only src/worker.ts", "call": "ts-node ./callWorkflow.ts", "ngrok": "ngrok http 4000" }, @@ -14,7 +14,7 @@ "license": "ISC", "dependencies": { "@deepgram/sdk": "^3.5.1", - "@restackio/restack-sdk-ts": "^0.0.34", + "@restackio/restack-sdk-ts": "^0.0.39", "@temporalio/workflow": "1.10.3", "axios": "^1.7.3", "cors": "^2.8.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 771790e..2a35370 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^3.5.1 version: 3.5.1(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/restack-sdk-ts': - specifier: ^0.0.34 - version: 0.0.34 + specifier: ^0.0.39 + version: 0.0.39 '@temporalio/workflow': specifier: 1.10.3 version: 1.10.3 @@ -175,8 +175,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.34': - resolution: {integrity: sha512-c0XdF3KsGrtTMg/+E0FMbhKON9bMY5CgbzkuY5SHxQVsjXK+pSEEeORsyMK3AkQYQLvz6c7M8a6ucyD7H0997g==} + '@restackio/restack-sdk-ts@0.0.39': + resolution: {integrity: sha512-VBoMP/kYJT61Lp44grnQujALxKn0YKhoqMFHFt9WHgBI0yKf98yabuQdRt8zNWFs9aZGX/cERakMtSt1P3ByTQ==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.10': @@ -1548,7 +1548,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.34': + '@restackio/restack-sdk-ts@0.0.39': dependencies: '@temporalio/activity': 1.10.3 '@temporalio/client': 1.10.3 diff --git a/examples/voice/src/functions/deepgram/listen.ts b/examples/voice/src/functions/deepgram/listen.ts index a6f55e1..747c49a 100644 --- a/examples/voice/src/functions/deepgram/listen.ts +++ b/examples/voice/src/functions/deepgram/listen.ts @@ -1,5 +1,5 @@ import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; -import { TrackName } from "../../threads"; +import { TrackName } from "../../workflows"; import { Buffer } from "node:buffer"; import "dotenv/config"; import { createClient } from "@deepgram/sdk"; diff --git a/examples/voice/src/functions/deepgram/speak.ts b/examples/voice/src/functions/deepgram/speak.ts index 5f20e5b..85cd1e2 100644 --- a/examples/voice/src/functions/deepgram/speak.ts +++ b/examples/voice/src/functions/deepgram/speak.ts @@ -1,5 +1,5 @@ import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; -import { TrackName } from "../../threads"; +import { TrackName } from "../../workflows"; import { Buffer } from "node:buffer"; import "dotenv/config"; import { createClient } from "@deepgram/sdk"; diff --git a/examples/voice/src/functions/openai/chat.ts b/examples/voice/src/functions/openai/chat.ts index 8ef96e1..a31d3e8 100644 --- a/examples/voice/src/functions/openai/chat.ts +++ b/examples/voice/src/functions/openai/chat.ts @@ -3,9 +3,9 @@ import "dotenv/config"; import { agentPrompt } from "./prompt"; import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; import Restack from "@restackio/restack-sdk-ts"; -import { Answer, answerEvent, TrackName } from "../../threads/stream"; +import { Answer, answerEvent, TrackName } from "../../workflows/stream"; import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; -import { toolCallEvent } from "../../threads/agent"; +import { toolCallEvent } from "../../workflows/agent"; import { aggregateStreamChunks } from "./utils/aggregateStream"; import { mergeToolCalls } from "./utils/mergeToolCalls"; @@ -82,10 +82,10 @@ export async function openaiChat({ }; log.info("inputAnswer", { inputAnswer }); if (workflowToUpdate) { - restack.update({ + restack.sendWorkflowEvent({ workflowId: workflowToUpdate.workflowId, runId: workflowToUpdate.runId, - updateName: answerEvent.name, + eventName: answerEvent.name, input: inputAnswer, }); } @@ -97,10 +97,10 @@ export async function openaiChat({ toolCall.function?.arguments ?? "" ); - restack.update({ + restack.sendWorkflowEvent({ workflowId, runId, - updateName: toolCallEvent.name, + eventName: toolCallEvent.name, input: { ...toolCall, function: { @@ -128,10 +128,10 @@ export async function openaiChat({ }; log.info("input", { input }); if (workflowToUpdate) { - restack.update({ + restack.sendWorkflowEvent({ workflowId: workflowToUpdate.workflowId, runId: workflowToUpdate.runId, - updateName: answerEvent.name, + eventName: answerEvent.name, input, }); } diff --git a/examples/voice/src/functions/utils/updateAgent.ts b/examples/voice/src/functions/utils/updateAgent.ts index c119951..c6c3b4f 100644 --- a/examples/voice/src/functions/utils/updateAgent.ts +++ b/examples/voice/src/functions/utils/updateAgent.ts @@ -4,7 +4,7 @@ import Restack from "@restackio/restack-sdk-ts"; interface UpdateAgentInput { workflowId: string; runId: string; - updateName: string; + eventName: string; input: { [key: string]: any; }; @@ -13,15 +13,15 @@ interface UpdateAgentInput { export async function updateAgent({ workflowId, runId, - updateName, + eventName, input, }: UpdateAgentInput) { const restack = new Restack(); - return restack.update({ + return restack.sendWorkflowEvent({ workflowId, runId, - updateName, + eventName, input, }); } diff --git a/examples/voice/src/functions/websocket/listenMedia.ts b/examples/voice/src/functions/websocket/listenMedia.ts index 25d5b9b..51f116e 100644 --- a/examples/voice/src/functions/websocket/listenMedia.ts +++ b/examples/voice/src/functions/websocket/listenMedia.ts @@ -5,7 +5,7 @@ import { } from "@restackio/restack-sdk-ts/function"; import { webSocketConnect } from "./connect"; import Restack from "@restackio/restack-sdk-ts"; -import { audioInEvent, streamEnd, TrackName } from "../../threads/stream"; +import { audioInEvent, streamEnd, TrackName } from "../../workflows/stream"; type StreamInput = { streamSid: string; @@ -34,10 +34,10 @@ export async function listenMedia({ streamSid }: StreamInput) { streamSid, payload: message.media.payload.length, }); - restack.update({ + restack.sendWorkflowEvent({ workflowId, runId, - updateName: audioInEvent.name, + eventName: audioInEvent.name, input: { streamSid, payload: message.media.payload, @@ -49,7 +49,11 @@ export async function listenMedia({ streamSid }: StreamInput) { } heartbeat(message.streamSid); if (message.event === "stop") { - restack.update({ workflowId, runId, updateName: streamEnd.name }); + restack.sendWorkflowEvent({ + workflowId, + runId, + eventName: streamEnd.name, + }); resolve(); } }); diff --git a/examples/voice/src/server.ts b/examples/voice/src/server.ts index 6459358..01ef3c9 100644 --- a/examples/voice/src/server.ts +++ b/examples/voice/src/server.ts @@ -4,7 +4,7 @@ import { createServer } from "http"; import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; import Restack from "@restackio/restack-sdk-ts"; -import { streamInfo, streamThread } from "./threads/stream"; +import { streamInfo, streamWorkflow } from "./workflows/stream"; import cors from "cors"; const app = express(); @@ -20,10 +20,10 @@ app.post("/start", async (req, res) => { try { const restack = new Restack(); - const workflowId = `${Date.now()}-${streamThread.name}`; + const workflowId = `${Date.now()}-${streamWorkflow.name}`; - const workflowRunId = await restack.schedule({ - workflowName: streamThread.name, + const workflowRunId = await restack.scheduleWorkflow({ + workflowName: streamWorkflow.name, workflowId, }); @@ -33,10 +33,10 @@ app.post("/start", async (req, res) => { console.log("update"); try { console.log("update"); - restack.update({ + restack.sendWorkflowEvent({ workflowId, runId: workflowRunId, - updateName: streamInfo.name, + eventName: streamInfo.name, input: { streamSid: workflowRunId }, }); } catch (error) { @@ -56,10 +56,10 @@ app.post("/start", async (req, res) => { app.post("/incoming", async (req, res) => { try { - const workflowId = `${Date.now()}-${streamThread.name}`; + const workflowId = `${Date.now()}-${streamWorkflow.name}`; const restack = new Restack(); - const runId = await restack.schedule({ - workflowName: streamThread.name, + const runId = await restack.scheduleWorkflow({ + workflowName: streamWorkflow.name, workflowId, input: {}, }); @@ -110,10 +110,10 @@ wss.on("connection", (ws) => { if (runId) { try { if (streamSid) { - await restack.update({ + await restack.sendWorkflowEvent({ workflowId, runId, - updateName: "streamInfo", + eventName: "streamInfo", input: { streamSid }, }); console.log( diff --git a/examples/voice/src/pods.ts b/examples/voice/src/worker.ts similarity index 67% rename from examples/voice/src/pods.ts rename to examples/voice/src/worker.ts index 75337f0..1888f32 100644 --- a/examples/voice/src/pods.ts +++ b/examples/voice/src/worker.ts @@ -15,50 +15,50 @@ import { } from "./functions"; async function main() { - const workflowsPath = require.resolve("./threads"); + const workflowsPath = require.resolve("./Workflows"); try { const restack = new Restack(); await Promise.all([ - restack.pod({ - name: "restack", + restack.startWorker({ + taskQueue: "restack", workflowsPath, functions: { updateAgent }, }), - restack.pod({ - name: "websocket", + restack.startWorker({ + taskQueue: "websocket", workflowsPath, functions: { listenMedia, sendAudio, sendEvent }, }), - restack.pod({ - name: "twilio", + restack.startWorker({ + taskQueue: "twilio", workflowsPath, functions: { twilioCall }, rateLimit: 200, }), - restack.pod({ - name: "openai", + restack.startWorker({ + taskQueue: "openai", workflowsPath, functions: { openaiChat }, rateLimit: 10000, }), - restack.pod({ - name: "deepgram", + restack.startWorker({ + taskQueue: "deepgram", workflowsPath, functions: { deepgramSpeak, deepgramListen }, rateLimit: 10000, }), - restack.pod({ - name: "erp", + restack.startWorker({ + taskQueue: "erp", workflowsPath, functions: { erpTools, checkPrice, checkInventory, placeOrder }, }), ]); - console.log("Pods running successfully."); + console.log("Workers running successfully."); } catch (e) { - console.error("Failed to run pod", e); + console.error("Failed to run worker", e); } } diff --git a/examples/voice/src/threads/agent.ts b/examples/voice/src/workflows/agent.ts similarity index 85% rename from examples/voice/src/threads/agent.ts rename to examples/voice/src/workflows/agent.ts index bc40280..bf9b7d1 100644 --- a/examples/voice/src/threads/agent.ts +++ b/examples/voice/src/workflows/agent.ts @@ -1,13 +1,12 @@ import { step, - defineUpdate, log, workflowInfo, condition, - onUpdate, } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../functions"; import { TrackName } from "./stream"; +import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; export type ToolCall = { index: number; @@ -27,11 +26,11 @@ export type Reply = { text: string; }; -export const toolCallEvent = defineUpdate("toolCall"); -export const replyEvent = defineUpdate("reply"); -export const agentEnd = defineUpdate("agentEnd"); +export const toolCallEvent = defineEvent("toolCall"); +export const replyEvent = defineEvent("reply"); +export const agentEnd = defineEvent("agentEnd"); -export async function agentThread({ +export async function agentWorkflow({ streamSid, trackName, message, @@ -49,14 +48,14 @@ export async function agentThread({ workflowToUpdate: { workflowId: string; runId: string }; }) { return step({ - podName: `openai`, + taskQueue: `openai`, scheduleToCloseTimeout: "2 minutes", }).openaiChat(params); } async function callERPFunction(toolFunction: ToolCall["function"]) { const erpStep = step({ - podName: `erp`, + taskQueue: `erp`, scheduleToCloseTimeout: "2 minutes", }); @@ -81,7 +80,7 @@ export async function agentThread({ let openaiChatMessages: any[] = []; const tools = await step({ - podName: `erp`, + taskQueue: `erp`, scheduleToCloseTimeout: "2 minutes", }).erpTools(); @@ -100,7 +99,7 @@ export async function agentThread({ openaiChatMessages = initialMessage.messages; } - onUpdate(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { + onEvent(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { log.info("toolCallEvent", { toolFunction }); const toolResult = await callERPFunction(toolFunction); @@ -129,7 +128,7 @@ export async function agentThread({ return { function: toolFunction }; }); - onUpdate(replyEvent, async ({ streamSid, trackName, text }: Reply) => { + onEvent(replyEvent, async ({ streamSid, trackName, text }: Reply) => { const replyMessage = await callOpenAIChat({ streamSid, trackName, @@ -150,7 +149,7 @@ export async function agentThread({ }); let ended = false; - onUpdate(agentEnd, async () => { + onEvent(agentEnd, async () => { log.info(`agentEnd received`); ended = true; }); @@ -159,7 +158,7 @@ export async function agentThread({ return; } catch (error) { - log.error("Error in agentThread", { error }); + log.error("Error in agentWorkflow", { error }); throw error; } } diff --git a/examples/voice/src/threads/index.ts b/examples/voice/src/workflows/index.ts similarity index 100% rename from examples/voice/src/threads/index.ts rename to examples/voice/src/workflows/index.ts diff --git a/examples/voice/src/threads/stream.ts b/examples/voice/src/workflows/stream.ts similarity index 78% rename from examples/voice/src/threads/stream.ts rename to examples/voice/src/workflows/stream.ts index 8cf9cea..a580a97 100644 --- a/examples/voice/src/threads/stream.ts +++ b/examples/voice/src/workflows/stream.ts @@ -2,13 +2,12 @@ import { step, log, workflowInfo, - defineUpdate, - onUpdate, condition, startChild, } from "@restackio/restack-sdk-ts/workflow"; +import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; import * as functions from "../functions"; -import { agentThread, replyEvent } from "./agent"; +import { agentWorkflow, replyEvent } from "./agent"; export type TrackName = "user" | "agent" | "testUser"; @@ -35,17 +34,17 @@ export type Answer = { isLast?: boolean; }; -export const streamInfo = defineUpdate("streamInfo"); +export const streamInfo = defineEvent("streamInfo"); -export const audioInEvent = defineUpdate("audioIn"); +export const audioInEvent = defineEvent("audioIn"); -export const questionEvent = defineUpdate("question"); +export const questionEvent = defineEvent("question"); -export const answerEvent = defineUpdate("answer"); +export const answerEvent = defineEvent("answer"); -export const streamEnd = defineUpdate("streamEnd"); +export const streamEnd = defineEvent("streamEnd"); -export async function streamThread() { +export async function streamWorkflow() { try { let currentstreamSid: string; let interactionCount = 0; @@ -60,16 +59,16 @@ export async function streamThread() { let childAgentRunId = ""; log.info(`Workflow started with runId: ${runId}`); - onUpdate(streamInfo, async ({ streamSid }: StreamInfo) => { + onEvent(streamInfo, async ({ streamSid }: StreamInfo) => { log.info(`Workflow update with streamSid: ${streamSid}`); step({ - podName: `websocket`, + taskQueue: `websocket`, scheduleToCloseTimeout: "30 minutes", }).listenMedia({ streamSid, trackName: "user" }); const welcomeMessage = "Hello! My name is Pete from Apple."; const { audio } = await step({ - podName: `deepgram`, + taskQueue: `deepgram`, scheduleToCloseTimeout: "2 minutes", }).deepgramSpeak({ streamSid, @@ -78,12 +77,12 @@ export async function streamThread() { }); await step({ - podName: `websocket`, + taskQueue: `websocket`, scheduleToCloseTimeout: "2 minutes", }).sendAudio({ streamSid, audio }); await step({ - podName: `websocket`, + taskQueue: `websocket`, scheduleToCloseTimeout: "2 minutes", }).sendEvent({ streamSid, @@ -95,19 +94,19 @@ export async function streamThread() { return { streamSid }; }); - onUpdate( + onEvent( audioInEvent, async ({ streamSid, trackName, payload }: AudioIn) => { log.info(`Workflow update with streamSid: ${streamSid}`); const { finalResult } = await step({ - podName: `deepgram`, + taskQueue: `deepgram`, scheduleToCloseTimeout: "2 minutes", }).deepgramListen({ streamSid, trackName, payload }); interactionCount += 1; step({ - podName: `websocket`, + taskQueue: `websocket`, scheduleToCloseTimeout: "1 minute", }).sendEvent({ streamSid, @@ -116,7 +115,7 @@ export async function streamThread() { }); if (!childAgentRunId) { - const childAgent = await startChild(agentThread, { + const childAgent = await startChild(agentWorkflow, { args: [ { streamSid, @@ -124,17 +123,17 @@ export async function streamThread() { trackName: "agent", }, ], - workflowId: `${streamSid}-agentThread`, + workflowId: `${streamSid}-agentWorkflow`, }); childAgentRunId = childAgent.firstExecutionRunId; } else { step({ - podName: `restack`, + taskQueue: `restack`, scheduleToCloseTimeout: "1 minute", }).updateAgent({ - workflowId: `${streamSid}-agentThread`, + workflowId: `${streamSid}-agentWorkflow`, runId: childAgentRunId, - updateName: replyEvent.name, + eventName: replyEvent.name, input: { streamSid, trackName, text: finalResult }, }); } @@ -142,11 +141,11 @@ export async function streamThread() { } ); - onUpdate( + onEvent( answerEvent, async ({ streamSid, trackName, response, isLast }: Answer) => { const { audio } = await step({ - podName: `deepgram`, + taskQueue: `deepgram`, scheduleToCloseTimeout: "2 minutes", }).deepgramSpeak({ streamSid, @@ -163,13 +162,13 @@ export async function streamThread() { const { streamSid, audio } = audioQueue.shift()!; await step({ - podName: `websocket`, + taskQueue: `websocket`, scheduleToCloseTimeout: "2 minutes", }).sendAudio({ streamSid, audio }); } await step({ - podName: `websocket`, + taskQueue: `websocket`, scheduleToCloseTimeout: "1 minute", }).sendEvent({ streamSid, @@ -185,7 +184,7 @@ export async function streamThread() { ); let ended = false; - onUpdate(streamEnd, async () => { + onEvent(streamEnd, async () => { log.info(`streamEnd received`); ended = true; }); diff --git a/examples/voice/src/threads/twilioCall.ts b/examples/voice/src/workflows/twilioCall.ts similarity index 94% rename from examples/voice/src/threads/twilioCall.ts rename to examples/voice/src/workflows/twilioCall.ts index aaf66cf..8ed26e3 100644 --- a/examples/voice/src/threads/twilioCall.ts +++ b/examples/voice/src/workflows/twilioCall.ts @@ -7,7 +7,7 @@ interface Output { export async function twilioCallWorkflow(): Promise { const { sid } = await step({ - podName: `twilio`, + taskQueue: `twilio`, scheduleToCloseTimeout: "1 minute", }).twilioCall(); From e5dcc6dd88eb0abba3e8d9db57d3a0935ef6c15a Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 14 Aug 2024 15:19:11 +0200 Subject: [PATCH 033/122] consistent sendEventToWorkflow Former-commit-id: 8b7dff9af76ac8fd1a1d9e4f0ced5418a2881e9e Former-commit-id: e14fa6bd99ab563d4453e64ace33b90590da7982 --- examples/voice/src/functions/utils/index.ts | 2 +- .../utils/{updateAgent.ts => sendEventToWorkflow.ts} | 6 +++--- examples/voice/src/worker.ts | 4 ++-- examples/voice/src/workflows/stream.ts | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename examples/voice/src/functions/utils/{updateAgent.ts => sendEventToWorkflow.ts} (75%) diff --git a/examples/voice/src/functions/utils/index.ts b/examples/voice/src/functions/utils/index.ts index 01a8479..6ca9d6d 100644 --- a/examples/voice/src/functions/utils/index.ts +++ b/examples/voice/src/functions/utils/index.ts @@ -1 +1 @@ -export * from "./updateAgent"; +export * from "./sendEventToWorkflow"; diff --git a/examples/voice/src/functions/utils/updateAgent.ts b/examples/voice/src/functions/utils/sendEventToWorkflow.ts similarity index 75% rename from examples/voice/src/functions/utils/updateAgent.ts rename to examples/voice/src/functions/utils/sendEventToWorkflow.ts index c6c3b4f..6f6a8a6 100644 --- a/examples/voice/src/functions/utils/updateAgent.ts +++ b/examples/voice/src/functions/utils/sendEventToWorkflow.ts @@ -1,7 +1,7 @@ import "dotenv/config"; import Restack from "@restackio/restack-sdk-ts"; -interface UpdateAgentInput { +interface SendEventToWorkflowInput { workflowId: string; runId: string; eventName: string; @@ -10,12 +10,12 @@ interface UpdateAgentInput { }; } -export async function updateAgent({ +export async function sendEventToWorkflow({ workflowId, runId, eventName, input, -}: UpdateAgentInput) { +}: SendEventToWorkflowInput) { const restack = new Restack(); return restack.sendWorkflowEvent({ diff --git a/examples/voice/src/worker.ts b/examples/voice/src/worker.ts index 1888f32..8455223 100644 --- a/examples/voice/src/worker.ts +++ b/examples/voice/src/worker.ts @@ -1,6 +1,6 @@ import Restack from "@restackio/restack-sdk-ts"; import { - updateAgent, + sendEventToWorkflow, twilioCall, deepgramListen, deepgramSpeak, @@ -24,7 +24,7 @@ async function main() { restack.startWorker({ taskQueue: "restack", workflowsPath, - functions: { updateAgent }, + functions: { sendEventToWorkflow }, }), restack.startWorker({ taskQueue: "websocket", diff --git a/examples/voice/src/workflows/stream.ts b/examples/voice/src/workflows/stream.ts index a580a97..2254b4a 100644 --- a/examples/voice/src/workflows/stream.ts +++ b/examples/voice/src/workflows/stream.ts @@ -130,7 +130,7 @@ export async function streamWorkflow() { step({ taskQueue: `restack`, scheduleToCloseTimeout: "1 minute", - }).updateAgent({ + }).sendEventToWorkflow({ workflowId: `${streamSid}-agentWorkflow`, runId: childAgentRunId, eventName: replyEvent.name, From 5b20bc1e2b931587dcafdcdc47dbc43c905aed6f Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 14 Aug 2024 15:34:56 +0200 Subject: [PATCH 034/122] types consistency Former-commit-id: 70a1ca8dcd5e079addf2182e1f412d2e48f565c8 Former-commit-id: c1f2f7fa7382e67fd664960760b240cdfc26642e --- .../src/functions/websocket/listenMedia.ts | 20 ++++++++++++------- examples/voice/src/server.ts | 13 ++++++++---- examples/voice/src/workflows/stream.ts | 15 +++++++------- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/examples/voice/src/functions/websocket/listenMedia.ts b/examples/voice/src/functions/websocket/listenMedia.ts index 51f116e..1575665 100644 --- a/examples/voice/src/functions/websocket/listenMedia.ts +++ b/examples/voice/src/functions/websocket/listenMedia.ts @@ -5,7 +5,12 @@ import { } from "@restackio/restack-sdk-ts/function"; import { webSocketConnect } from "./connect"; import Restack from "@restackio/restack-sdk-ts"; -import { audioInEvent, streamEnd, TrackName } from "../../workflows/stream"; +import { + AudioIn, + audioInEvent, + streamEndEvent, + TrackName, +} from "../../workflows/stream"; type StreamInput = { streamSid: string; @@ -34,15 +39,16 @@ export async function listenMedia({ streamSid }: StreamInput) { streamSid, payload: message.media.payload.length, }); + const input: AudioIn = { + streamSid, + payload: message.media.payload, + trackName: "user", + }; restack.sendWorkflowEvent({ workflowId, runId, eventName: audioInEvent.name, - input: { - streamSid, - payload: message.media.payload, - trackName: "user", - }, + input, }); } } @@ -52,7 +58,7 @@ export async function listenMedia({ streamSid }: StreamInput) { restack.sendWorkflowEvent({ workflowId, runId, - eventName: streamEnd.name, + eventName: streamEndEvent.name, }); resolve(); } diff --git a/examples/voice/src/server.ts b/examples/voice/src/server.ts index 01ef3c9..d54fd27 100644 --- a/examples/voice/src/server.ts +++ b/examples/voice/src/server.ts @@ -4,7 +4,11 @@ import { createServer } from "http"; import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; import Restack from "@restackio/restack-sdk-ts"; -import { streamInfo, streamWorkflow } from "./workflows/stream"; +import { + StreamInfo, + streamInfoEvent, + streamWorkflow, +} from "./workflows/stream"; import cors from "cors"; const app = express(); @@ -36,7 +40,7 @@ app.post("/start", async (req, res) => { restack.sendWorkflowEvent({ workflowId, runId: workflowRunId, - eventName: streamInfo.name, + eventName: streamInfoEvent.name, input: { streamSid: workflowRunId }, }); } catch (error) { @@ -110,11 +114,12 @@ wss.on("connection", (ws) => { if (runId) { try { if (streamSid) { + const input: StreamInfo = { streamSid }; await restack.sendWorkflowEvent({ workflowId, runId, - eventName: "streamInfo", - input: { streamSid }, + eventName: streamInfoEvent.name, + input, }); console.log( `Signaled workflow ${workflowId} runId ${runId} with Twilio streamSid: ${streamSid}` diff --git a/examples/voice/src/workflows/stream.ts b/examples/voice/src/workflows/stream.ts index 2254b4a..d7457d8 100644 --- a/examples/voice/src/workflows/stream.ts +++ b/examples/voice/src/workflows/stream.ts @@ -7,11 +7,11 @@ import { } from "@restackio/restack-sdk-ts/workflow"; import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; import * as functions from "../functions"; -import { agentWorkflow, replyEvent } from "./agent"; +import { agentWorkflow, Reply, replyEvent } from "./agent"; export type TrackName = "user" | "agent" | "testUser"; -type StreamInfo = { +export type StreamInfo = { streamSid: string; }; @@ -34,7 +34,7 @@ export type Answer = { isLast?: boolean; }; -export const streamInfo = defineEvent("streamInfo"); +export const streamInfoEvent = defineEvent("streamInfo"); export const audioInEvent = defineEvent("audioIn"); @@ -42,7 +42,7 @@ export const questionEvent = defineEvent("question"); export const answerEvent = defineEvent("answer"); -export const streamEnd = defineEvent("streamEnd"); +export const streamEndEvent = defineEvent("streamEnd"); export async function streamWorkflow() { try { @@ -59,7 +59,7 @@ export async function streamWorkflow() { let childAgentRunId = ""; log.info(`Workflow started with runId: ${runId}`); - onEvent(streamInfo, async ({ streamSid }: StreamInfo) => { + onEvent(streamInfoEvent, async ({ streamSid }: StreamInfo) => { log.info(`Workflow update with streamSid: ${streamSid}`); step({ taskQueue: `websocket`, @@ -127,6 +127,7 @@ export async function streamWorkflow() { }); childAgentRunId = childAgent.firstExecutionRunId; } else { + const input: Reply = { streamSid, trackName, text: finalResult }; step({ taskQueue: `restack`, scheduleToCloseTimeout: "1 minute", @@ -134,7 +135,7 @@ export async function streamWorkflow() { workflowId: `${streamSid}-agentWorkflow`, runId: childAgentRunId, eventName: replyEvent.name, - input: { streamSid, trackName, text: finalResult }, + input, }); } return { streamSid }; @@ -184,7 +185,7 @@ export async function streamWorkflow() { ); let ended = false; - onEvent(streamEnd, async () => { + onEvent(streamEndEvent, async () => { log.info(`streamEnd received`); ended = true; }); From b4b201d8ecbd2e41f7b9b60ce9237fb4532a51a9 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 14 Aug 2024 16:29:46 +0200 Subject: [PATCH 035/122] remove trackName and simplify agent order Former-commit-id: 02b042f04dd2f8262917c35b9ac4530863642f4b Former-commit-id: 70f374e37ffc8ff85526b73a9cc29e62ad9c6682 --- .../voice/src/functions/deepgram/listen.ts | 4 - .../voice/src/functions/deepgram/speak.ts | 6 +- examples/voice/src/functions/openai/chat.ts | 25 ++- .../src/functions/websocket/listenMedia.ts | 9 +- examples/voice/src/workflows/agent.ts | 123 ++++++--------- examples/voice/src/workflows/stream.ts | 146 ++++++++---------- 6 files changed, 126 insertions(+), 187 deletions(-) diff --git a/examples/voice/src/functions/deepgram/listen.ts b/examples/voice/src/functions/deepgram/listen.ts index 747c49a..4454680 100644 --- a/examples/voice/src/functions/deepgram/listen.ts +++ b/examples/voice/src/functions/deepgram/listen.ts @@ -1,16 +1,13 @@ import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; -import { TrackName } from "../../workflows"; import { Buffer } from "node:buffer"; import "dotenv/config"; import { createClient } from "@deepgram/sdk"; export async function deepgramListen({ streamSid, - trackName, payload, }: { streamSid: string; - trackName: TrackName; payload: string; }) { if (!payload) { @@ -52,7 +49,6 @@ export async function deepgramListen({ return { streamSid, - trackName, finalResult: transcript ?? "", }; } catch (error) { diff --git a/examples/voice/src/functions/deepgram/speak.ts b/examples/voice/src/functions/deepgram/speak.ts index 85cd1e2..c7f944d 100644 --- a/examples/voice/src/functions/deepgram/speak.ts +++ b/examples/voice/src/functions/deepgram/speak.ts @@ -1,5 +1,4 @@ import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; -import { TrackName } from "../../workflows"; import { Buffer } from "node:buffer"; import "dotenv/config"; import { createClient } from "@deepgram/sdk"; @@ -26,19 +25,16 @@ const getAudioBuffer = async (stream: ReadableStream) => { export async function deepgramSpeak({ streamSid, - trackName, text, }: { streamSid: string; - trackName: TrackName; text: string; }): Promise<{ streamSid: string; audio: string }> { if (!text.length) { log.error("Text is empty"); throw FunctionFailure.nonRetryable("Text is empty"); } - const deepgramModel = - trackName === "agent" ? "aura-arcas-en" : "aura-asteria-en"; + const deepgramModel = "aura-arcas-en"; try { const deepgram = createClient(process.env.DEEPGRAM_API_KEY); diff --git a/examples/voice/src/functions/openai/chat.ts b/examples/voice/src/functions/openai/chat.ts index a31d3e8..646b9f6 100644 --- a/examples/voice/src/functions/openai/chat.ts +++ b/examples/voice/src/functions/openai/chat.ts @@ -3,29 +3,25 @@ import "dotenv/config"; import { agentPrompt } from "./prompt"; import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; import Restack from "@restackio/restack-sdk-ts"; -import { Answer, answerEvent, TrackName } from "../../workflows/stream"; +import { Answer, answerEvent } from "../../workflows/stream"; import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; import { toolCallEvent } from "../../workflows/agent"; import { aggregateStreamChunks } from "./utils/aggregateStream"; import { mergeToolCalls } from "./utils/mergeToolCalls"; +import { ParentWorkflowInfo } from "@temporalio/workflow"; export async function openaiChat({ streamSid, - trackName, text, previousMessages, tools, workflowToUpdate, }: { streamSid: string; - trackName: TrackName; - text: string; + text?: string; previousMessages?: OpenAI.Chat.Completions.ChatCompletionMessageParam[]; tools?: OpenAI.Chat.Completions.ChatCompletionTool[]; - workflowToUpdate?: { - workflowId: string; - runId: string; - }; + workflowToUpdate?: ParentWorkflowInfo; }) { const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); const restack = new Restack(); @@ -36,10 +32,12 @@ export async function openaiChat({ messages = [...agentPrompt]; } - messages.push({ - role: "user", - content: text, - }); + if (text) { + messages.push({ + role: "user", + content: text, + }); + } const stream = await openai.chat.completions.create({ model: "gpt-4o-mini", @@ -113,7 +111,6 @@ export async function openaiChat({ ); return { streamSid, - trackName, messages, }; } else { @@ -124,7 +121,6 @@ export async function openaiChat({ streamSid, response: response, isLast: finishReason === "stop", - trackName: "agent", }; log.info("input", { input }); if (workflowToUpdate) { @@ -148,7 +144,6 @@ export async function openaiChat({ return { streamSid, - trackName, messages, }; } diff --git a/examples/voice/src/functions/websocket/listenMedia.ts b/examples/voice/src/functions/websocket/listenMedia.ts index 1575665..33a24a6 100644 --- a/examples/voice/src/functions/websocket/listenMedia.ts +++ b/examples/voice/src/functions/websocket/listenMedia.ts @@ -5,16 +5,10 @@ import { } from "@restackio/restack-sdk-ts/function"; import { webSocketConnect } from "./connect"; import Restack from "@restackio/restack-sdk-ts"; -import { - AudioIn, - audioInEvent, - streamEndEvent, - TrackName, -} from "../../workflows/stream"; +import { AudioIn, audioInEvent, streamEndEvent } from "../../workflows/stream"; type StreamInput = { streamSid: string; - trackName?: TrackName; }; export async function listenMedia({ streamSid }: StreamInput) { @@ -42,7 +36,6 @@ export async function listenMedia({ streamSid }: StreamInput) { const input: AudioIn = { streamSid, payload: message.media.payload, - trackName: "user", }; restack.sendWorkflowEvent({ workflowId, diff --git a/examples/voice/src/workflows/agent.ts b/examples/voice/src/workflows/agent.ts index bf9b7d1..2ebfabb 100644 --- a/examples/voice/src/workflows/agent.ts +++ b/examples/voice/src/workflows/agent.ts @@ -5,7 +5,6 @@ import { condition, } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../functions"; -import { TrackName } from "./stream"; import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; export type ToolCall = { @@ -22,7 +21,6 @@ export type ToolCall = { export type Reply = { streamSid: string; - trackName: TrackName; text: string; }; @@ -32,47 +30,11 @@ export const agentEnd = defineEvent("agentEnd"); export async function agentWorkflow({ streamSid, - trackName, message, }: { streamSid: string; - trackName: TrackName; message: string; }) { - async function callOpenAIChat(params: { - streamSid: string; - trackName: TrackName; - text: string; - tools?: any; - previousMessages?: any[]; - workflowToUpdate: { workflowId: string; runId: string }; - }) { - return step({ - taskQueue: `openai`, - scheduleToCloseTimeout: "2 minutes", - }).openaiChat(params); - } - - async function callERPFunction(toolFunction: ToolCall["function"]) { - const erpStep = step({ - taskQueue: `erp`, - scheduleToCloseTimeout: "2 minutes", - }); - - switch (toolFunction.name) { - case "checkPrice": - return erpStep.checkPrice({ ...toolFunction.arguments }); - case "checkInventory": - return erpStep.checkInventory({ ...toolFunction.arguments }); - case "placeOrder": - return erpStep.placeOrder({ - ...(toolFunction.arguments as functions.OrderInput), - }); - default: - throw new Error(`Unknown function name: ${toolFunction.name}`); - } - } - try { const parentWorkflow = workflowInfo().parent; if (!parentWorkflow) throw "no parent Workflow"; @@ -80,28 +42,62 @@ export async function agentWorkflow({ let openaiChatMessages: any[] = []; const tools = await step({ - taskQueue: `erp`, - scheduleToCloseTimeout: "2 minutes", + taskQueue: "erp", }).erpTools(); - const initialMessage = await callOpenAIChat({ + const initialMessages = await step({ + taskQueue: "openai", + }).openaiChat({ streamSid, - trackName, text: message, tools, - workflowToUpdate: { - workflowId: parentWorkflow.workflowId, - runId: parentWorkflow.runId, - }, + workflowToUpdate: parentWorkflow, }); - if (initialMessage?.messages) { - openaiChatMessages = initialMessage.messages; + if (initialMessages?.messages) { + openaiChatMessages = initialMessages.messages; } + onEvent(replyEvent, async ({ streamSid, text }: Reply) => { + const replyMessage = await step({ + taskQueue: "openai", + }).openaiChat({ + streamSid, + text, + tools, + previousMessages: openaiChatMessages, + workflowToUpdate: parentWorkflow, + }); + + if (replyMessage?.messages) { + openaiChatMessages = replyMessage.messages; + } + + return { text }; + }); + onEvent(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { log.info("toolCallEvent", { toolFunction }); + async function callERPFunction(toolFunction: ToolCall["function"]) { + const erpStep = step({ + taskQueue: "erp", + }); + + switch (toolFunction.name) { + case "checkPrice": + return erpStep.checkPrice({ ...toolFunction.arguments }); + case "checkInventory": + return erpStep.checkInventory({ ...toolFunction.arguments }); + case "placeOrder": + return erpStep.placeOrder({ + ...(toolFunction.arguments as functions.OrderInput), + }); + default: + throw new Error(`Unknown function name: ${toolFunction.name}`); + } + } + const toolResult = await callERPFunction(toolFunction); openaiChatMessages.push({ @@ -110,15 +106,12 @@ export async function agentWorkflow({ name: toolFunction.name, }); - const toolMessage = await callOpenAIChat({ + const toolMessage = await step({ + taskQueue: "openai", + }).openaiChat({ streamSid, - trackName, - text: "", previousMessages: openaiChatMessages, - workflowToUpdate: { - workflowId: parentWorkflow.workflowId, - runId: parentWorkflow.runId, - }, + workflowToUpdate: parentWorkflow, }); if (toolMessage?.messages) { @@ -128,26 +121,6 @@ export async function agentWorkflow({ return { function: toolFunction }; }); - onEvent(replyEvent, async ({ streamSid, trackName, text }: Reply) => { - const replyMessage = await callOpenAIChat({ - streamSid, - trackName, - text, - tools, - previousMessages: openaiChatMessages, - workflowToUpdate: { - workflowId: parentWorkflow.workflowId, - runId: parentWorkflow.runId, - }, - }); - - if (replyMessage?.messages) { - openaiChatMessages = replyMessage.messages; - } - - return { text }; - }); - let ended = false; onEvent(agentEnd, async () => { log.info(`agentEnd received`); diff --git a/examples/voice/src/workflows/stream.ts b/examples/voice/src/workflows/stream.ts index d7457d8..9c42bd6 100644 --- a/examples/voice/src/workflows/stream.ts +++ b/examples/voice/src/workflows/stream.ts @@ -9,15 +9,12 @@ import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; import * as functions from "../functions"; import { agentWorkflow, Reply, replyEvent } from "./agent"; -export type TrackName = "user" | "agent" | "testUser"; - export type StreamInfo = { streamSid: string; }; export type AudioIn = { streamSid: string; - trackName: TrackName; payload: string; }; @@ -29,7 +26,6 @@ export type Question = { export type Answer = { streamSid: string; - trackName: TrackName; response: string; isLast?: boolean; }; @@ -50,7 +46,6 @@ export async function streamWorkflow() { let interactionCount = 0; let audioQueue: { streamSid: string; - trackName: TrackName; audio: string; text: string; }[] = []; @@ -64,7 +59,7 @@ export async function streamWorkflow() { step({ taskQueue: `websocket`, scheduleToCloseTimeout: "30 minutes", - }).listenMedia({ streamSid, trackName: "user" }); + }).listenMedia({ streamSid }); const welcomeMessage = "Hello! My name is Pete from Apple."; const { audio } = await step({ @@ -72,7 +67,6 @@ export async function streamWorkflow() { scheduleToCloseTimeout: "2 minutes", }).deepgramSpeak({ streamSid, - trackName: "agent", text: welcomeMessage, }); @@ -94,95 +88,87 @@ export async function streamWorkflow() { return { streamSid }; }); - onEvent( - audioInEvent, - async ({ streamSid, trackName, payload }: AudioIn) => { - log.info(`Workflow update with streamSid: ${streamSid}`); - const { finalResult } = await step({ - taskQueue: `deepgram`, - scheduleToCloseTimeout: "2 minutes", - }).deepgramListen({ streamSid, trackName, payload }); + onEvent(audioInEvent, async ({ streamSid, payload }: AudioIn) => { + log.info(`Workflow update with streamSid: ${streamSid}`); + const { finalResult } = await step({ + taskQueue: `deepgram`, + scheduleToCloseTimeout: "2 minutes", + }).deepgramListen({ streamSid, payload }); + + interactionCount += 1; - interactionCount += 1; + step({ + taskQueue: `websocket`, + scheduleToCloseTimeout: "1 minute", + }).sendEvent({ + streamSid, + eventName: questionEvent.name, + data: { text: finalResult }, + }); + if (!childAgentRunId) { + const childAgent = await startChild(agentWorkflow, { + args: [ + { + streamSid, + message: finalResult, + }, + ], + workflowId: `${streamSid}-agentWorkflow`, + }); + childAgentRunId = childAgent.firstExecutionRunId; + } else { + const input: Reply = { streamSid, text: finalResult }; step({ - taskQueue: `websocket`, + taskQueue: `restack`, scheduleToCloseTimeout: "1 minute", - }).sendEvent({ - streamSid, - eventName: questionEvent.name, - data: { text: finalResult }, + }).sendEventToWorkflow({ + workflowId: `${streamSid}-agentWorkflow`, + runId: childAgentRunId, + eventName: replyEvent.name, + input, }); - - if (!childAgentRunId) { - const childAgent = await startChild(agentWorkflow, { - args: [ - { - streamSid, - message: finalResult, - trackName: "agent", - }, - ], - workflowId: `${streamSid}-agentWorkflow`, - }); - childAgentRunId = childAgent.firstExecutionRunId; - } else { - const input: Reply = { streamSid, trackName, text: finalResult }; - step({ - taskQueue: `restack`, - scheduleToCloseTimeout: "1 minute", - }).sendEventToWorkflow({ - workflowId: `${streamSid}-agentWorkflow`, - runId: childAgentRunId, - eventName: replyEvent.name, - input, - }); - } - return { streamSid }; } - ); - - onEvent( - answerEvent, - async ({ streamSid, trackName, response, isLast }: Answer) => { - const { audio } = await step({ - taskQueue: `deepgram`, - scheduleToCloseTimeout: "2 minutes", - }).deepgramSpeak({ - streamSid, - trackName, - text: response, - }); + return { streamSid }; + }); - audioQueue.push({ streamSid, trackName, audio, text: response }); + onEvent(answerEvent, async ({ streamSid, response, isLast }: Answer) => { + const { audio } = await step({ + taskQueue: `deepgram`, + scheduleToCloseTimeout: "2 minutes", + }).deepgramSpeak({ + streamSid, + text: response, + }); - if (!isSendingAudio && isLast) { - isSendingAudio = true; + audioQueue.push({ streamSid, audio, text: response }); - while (audioQueue.length > 0) { - const { streamSid, audio } = audioQueue.shift()!; + if (!isSendingAudio && isLast) { + isSendingAudio = true; - await step({ - taskQueue: `websocket`, - scheduleToCloseTimeout: "2 minutes", - }).sendAudio({ streamSid, audio }); - } + while (audioQueue.length > 0) { + const { streamSid, audio } = audioQueue.shift()!; await step({ taskQueue: `websocket`, - scheduleToCloseTimeout: "1 minute", - }).sendEvent({ - streamSid, - eventName: answerEvent.name, - data: { text: response }, - }); - - isSendingAudio = false; + scheduleToCloseTimeout: "2 minutes", + }).sendAudio({ streamSid, audio }); } - return { streamSid }; + await step({ + taskQueue: `websocket`, + scheduleToCloseTimeout: "1 minute", + }).sendEvent({ + streamSid, + eventName: answerEvent.name, + data: { text: response }, + }); + + isSendingAudio = false; } - ); + + return { streamSid }; + }); let ended = false; onEvent(streamEndEvent, async () => { From 24256d9cdb3143d7f489b0b7b164b231d92a9a3b Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 14 Aug 2024 17:01:36 +0200 Subject: [PATCH 036/122] consistent nomenclatura Former-commit-id: 074c4cd562f9bd488d5e29edb330819bc6c36434 Former-commit-id: adea34524540323053758d77d625122a4b2534c8 --- .../voice/src/functions/erp/checkInventory.ts | 2 +- .../voice/src/functions/erp/checkPrice.ts | 2 +- .../voice/src/functions/erp/placeOrder.ts | 2 +- examples/voice/src/functions/erp/tools.ts | 2 +- examples/voice/src/functions/openai/chat.ts | 5 +- .../functions/utils/sendEventToWorkflow.ts | 2 +- .../voice/src/functions/websocket/connect.ts | 2 +- .../src/functions/websocket/listenMedia.ts | 12 ++- .../src/functions/websocket/sendAudio.ts | 6 +- .../src/functions/websocket/sendEvent.ts | 6 +- examples/voice/src/server.ts | 7 +- examples/voice/src/worker.ts | 31 ++++--- .../voice/src/workflows/{ => agent}/agent.ts | 41 +++------ examples/voice/src/workflows/agent/events.ts | 23 +++++ examples/voice/src/workflows/index.ts | 4 +- examples/voice/src/workflows/stream/events.ts | 28 ++++++ .../src/workflows/{ => stream}/stream.ts | 85 +++++++------------ 17 files changed, 142 insertions(+), 118 deletions(-) rename examples/voice/src/workflows/{ => agent}/agent.ts (77%) create mode 100644 examples/voice/src/workflows/agent/events.ts create mode 100644 examples/voice/src/workflows/stream/events.ts rename examples/voice/src/workflows/{ => stream}/stream.ts (67%) diff --git a/examples/voice/src/functions/erp/checkInventory.ts b/examples/voice/src/functions/erp/checkInventory.ts index b8703d5..ef6796c 100644 --- a/examples/voice/src/functions/erp/checkInventory.ts +++ b/examples/voice/src/functions/erp/checkInventory.ts @@ -4,7 +4,7 @@ import { toolInput } from "./tools"; export type InventoryInput = z.infer; -export async function checkInventory({ model }: InventoryInput) { +export async function erpCheckInventory({ model }: InventoryInput) { log.info("GPT -> called checkInventory function"); sleep(200); if (model?.toLowerCase().includes("pro")) { diff --git a/examples/voice/src/functions/erp/checkPrice.ts b/examples/voice/src/functions/erp/checkPrice.ts index 4d9d25b..939d8af 100644 --- a/examples/voice/src/functions/erp/checkPrice.ts +++ b/examples/voice/src/functions/erp/checkPrice.ts @@ -4,7 +4,7 @@ import { toolInput } from "./tools"; export type PriceInput = z.infer; -export async function checkPrice({ model }: PriceInput) { +export async function erpCheckPrice({ model }: PriceInput) { log.info("GPT -> called checkPrice function"); sleep(500); if (model?.toLowerCase().includes("pro")) { diff --git a/examples/voice/src/functions/erp/placeOrder.ts b/examples/voice/src/functions/erp/placeOrder.ts index 9908359..fc41813 100644 --- a/examples/voice/src/functions/erp/placeOrder.ts +++ b/examples/voice/src/functions/erp/placeOrder.ts @@ -4,7 +4,7 @@ import { toolInputWithQty } from "./tools"; export type OrderInput = z.infer; -export async function placeOrder({ model, quantity = 1 }: OrderInput) { +export async function erpPlaceOrder({ model, quantity = 1 }: OrderInput) { log.info("GPT -> called placeOrder function"); sleep(200); const orderNum = Math.floor( diff --git a/examples/voice/src/functions/erp/tools.ts b/examples/voice/src/functions/erp/tools.ts index 811e531..991ca2e 100644 --- a/examples/voice/src/functions/erp/tools.ts +++ b/examples/voice/src/functions/erp/tools.ts @@ -18,7 +18,7 @@ export const toolInputWithQty = z.object({ quantity: z.number().describe("The number of airpods they want to order"), }); -export async function erpTools() { +export async function erpGetTools() { return [ zodFunction({ name: "checkInventory", diff --git a/examples/voice/src/functions/openai/chat.ts b/examples/voice/src/functions/openai/chat.ts index 646b9f6..139a5c4 100644 --- a/examples/voice/src/functions/openai/chat.ts +++ b/examples/voice/src/functions/openai/chat.ts @@ -3,9 +3,9 @@ import "dotenv/config"; import { agentPrompt } from "./prompt"; import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; import Restack from "@restackio/restack-sdk-ts"; -import { Answer, answerEvent } from "../../workflows/stream"; +import { Answer, answerEvent } from "../../workflows/stream/events"; import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; -import { toolCallEvent } from "../../workflows/agent"; +import { toolCallEvent } from "../../workflows/agent/events"; import { aggregateStreamChunks } from "./utils/aggregateStream"; import { mergeToolCalls } from "./utils/mergeToolCalls"; import { ParentWorkflowInfo } from "@temporalio/workflow"; @@ -76,7 +76,6 @@ export async function openaiChat({ streamSid, response: toolAnswer, isLast: true, - trackName: "agent", }; log.info("inputAnswer", { inputAnswer }); if (workflowToUpdate) { diff --git a/examples/voice/src/functions/utils/sendEventToWorkflow.ts b/examples/voice/src/functions/utils/sendEventToWorkflow.ts index 6f6a8a6..59f7a60 100644 --- a/examples/voice/src/functions/utils/sendEventToWorkflow.ts +++ b/examples/voice/src/functions/utils/sendEventToWorkflow.ts @@ -10,7 +10,7 @@ interface SendEventToWorkflowInput { }; } -export async function sendEventToWorkflow({ +export async function workflowSendEvent({ workflowId, runId, eventName, diff --git a/examples/voice/src/functions/websocket/connect.ts b/examples/voice/src/functions/websocket/connect.ts index 980c1f2..773600d 100644 --- a/examples/voice/src/functions/websocket/connect.ts +++ b/examples/voice/src/functions/websocket/connect.ts @@ -2,7 +2,7 @@ import WebSocket from "ws"; import "dotenv/config"; import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; -export function webSocketConnect(): Promise { +export function websocketConnect(): Promise { return new Promise((resolve, reject) => { try { const websocketAddress = `ws://localhost:4000/connection`; diff --git a/examples/voice/src/functions/websocket/listenMedia.ts b/examples/voice/src/functions/websocket/listenMedia.ts index 33a24a6..1236c28 100644 --- a/examples/voice/src/functions/websocket/listenMedia.ts +++ b/examples/voice/src/functions/websocket/listenMedia.ts @@ -3,17 +3,21 @@ import { currentWorkflow, log, } from "@restackio/restack-sdk-ts/function"; -import { webSocketConnect } from "./connect"; +import { websocketConnect } from "./connect"; import Restack from "@restackio/restack-sdk-ts"; -import { AudioIn, audioInEvent, streamEndEvent } from "../../workflows/stream"; +import { + AudioIn, + audioInEvent, + streamEndEvent, +} from "../../workflows/stream/events"; type StreamInput = { streamSid: string; }; -export async function listenMedia({ streamSid }: StreamInput) { +export async function websocketListenMedia({ streamSid }: StreamInput) { return new Promise(async (resolve) => { - const ws = await webSocketConnect(); + const ws = await websocketConnect(); const restack = new Restack(); const { workflowId, runId } = currentWorkflow().workflowExecution; ws.on("message", (data) => { diff --git a/examples/voice/src/functions/websocket/sendAudio.ts b/examples/voice/src/functions/websocket/sendAudio.ts index db567fd..9cf658b 100644 --- a/examples/voice/src/functions/websocket/sendAudio.ts +++ b/examples/voice/src/functions/websocket/sendAudio.ts @@ -1,13 +1,13 @@ -import { webSocketConnect } from "./connect"; +import { websocketConnect } from "./connect"; -export async function sendAudio({ +export async function websocketSendAudio({ streamSid, audio, }: { streamSid: string; audio: string; }) { - const ws = await webSocketConnect(); + const ws = await websocketConnect(); const audioEvent = { streamSid: streamSid, diff --git a/examples/voice/src/functions/websocket/sendEvent.ts b/examples/voice/src/functions/websocket/sendEvent.ts index 4ba97f4..a4d42de 100644 --- a/examples/voice/src/functions/websocket/sendEvent.ts +++ b/examples/voice/src/functions/websocket/sendEvent.ts @@ -1,6 +1,6 @@ -import { webSocketConnect } from "./connect"; +import { websocketConnect } from "./connect"; -export async function sendEvent({ +export async function websocketSendEvent({ streamSid, eventName, data, @@ -9,7 +9,7 @@ export async function sendEvent({ eventName: string; data: { text?: string }; }) { - const ws = await webSocketConnect(); + const ws = await websocketConnect(); const audioEvent = { streamSid: streamSid, diff --git a/examples/voice/src/server.ts b/examples/voice/src/server.ts index d54fd27..d271180 100644 --- a/examples/voice/src/server.ts +++ b/examples/voice/src/server.ts @@ -4,11 +4,8 @@ import { createServer } from "http"; import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; import Restack from "@restackio/restack-sdk-ts"; -import { - StreamInfo, - streamInfoEvent, - streamWorkflow, -} from "./workflows/stream"; +import { streamWorkflow } from "./workflows/stream/stream"; +import { StreamInfo, streamInfoEvent } from "./workflows/stream/events"; import cors from "cors"; const app = express(); diff --git a/examples/voice/src/worker.ts b/examples/voice/src/worker.ts index 8455223..66e995d 100644 --- a/examples/voice/src/worker.ts +++ b/examples/voice/src/worker.ts @@ -1,17 +1,17 @@ import Restack from "@restackio/restack-sdk-ts"; import { - sendEventToWorkflow, + workflowSendEvent, twilioCall, deepgramListen, deepgramSpeak, openaiChat, - listenMedia, - sendAudio, - sendEvent, - checkPrice, - checkInventory, - placeOrder, - erpTools, + websocketListenMedia, + websocketSendAudio, + websocketSendEvent, + erpGetTools, + erpPlaceOrder, + erpCheckInventory, + erpCheckPrice, } from "./functions"; async function main() { @@ -24,12 +24,16 @@ async function main() { restack.startWorker({ taskQueue: "restack", workflowsPath, - functions: { sendEventToWorkflow }, + functions: { workflowSendEvent }, }), restack.startWorker({ taskQueue: "websocket", workflowsPath, - functions: { listenMedia, sendAudio, sendEvent }, + functions: { + websocketListenMedia, + websocketSendAudio, + websocketSendEvent, + }, }), restack.startWorker({ taskQueue: "twilio", @@ -52,7 +56,12 @@ async function main() { restack.startWorker({ taskQueue: "erp", workflowsPath, - functions: { erpTools, checkPrice, checkInventory, placeOrder }, + functions: { + erpGetTools, + erpCheckPrice, + erpCheckInventory, + erpPlaceOrder, + }, }), ]); diff --git a/examples/voice/src/workflows/agent.ts b/examples/voice/src/workflows/agent/agent.ts similarity index 77% rename from examples/voice/src/workflows/agent.ts rename to examples/voice/src/workflows/agent/agent.ts index 2ebfabb..a5c65eb 100644 --- a/examples/voice/src/workflows/agent.ts +++ b/examples/voice/src/workflows/agent/agent.ts @@ -4,29 +4,9 @@ import { workflowInfo, condition, } from "@restackio/restack-sdk-ts/workflow"; -import * as functions from "../functions"; -import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; - -export type ToolCall = { - index: number; - function: { - name: string; - arguments: - | functions.OrderInput - | functions.InventoryInput - | functions.PriceInput; - }; - id?: string; -}; - -export type Reply = { - streamSid: string; - text: string; -}; - -export const toolCallEvent = defineEvent("toolCall"); -export const replyEvent = defineEvent("reply"); -export const agentEnd = defineEvent("agentEnd"); +import * as functions from "../../functions"; +import { onEvent } from "@restackio/restack-sdk-ts/event"; +import { agentEnd, Reply, replyEvent, ToolCall, toolCallEvent } from "./events"; export async function agentWorkflow({ streamSid, @@ -41,9 +21,11 @@ export async function agentWorkflow({ let openaiChatMessages: any[] = []; + // Get tools definition and start conversation + const tools = await step({ taskQueue: "erp", - }).erpTools(); + }).erpGetTools(); const initialMessages = await step({ taskQueue: "openai", @@ -58,6 +40,8 @@ export async function agentWorkflow({ openaiChatMessages = initialMessages.messages; } + // Send reply to AI chat with previous messages to continue conversation + onEvent(replyEvent, async ({ streamSid, text }: Reply) => { const replyMessage = await step({ taskQueue: "openai", @@ -76,6 +60,8 @@ export async function agentWorkflow({ return { text }; }); + // When AI answer is a tool call, execute function and push results to conversation + onEvent(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { log.info("toolCallEvent", { toolFunction }); @@ -86,11 +72,11 @@ export async function agentWorkflow({ switch (toolFunction.name) { case "checkPrice": - return erpStep.checkPrice({ ...toolFunction.arguments }); + return erpStep.erpCheckPrice({ ...toolFunction.arguments }); case "checkInventory": - return erpStep.checkInventory({ ...toolFunction.arguments }); + return erpStep.erpCheckInventory({ ...toolFunction.arguments }); case "placeOrder": - return erpStep.placeOrder({ + return erpStep.erpPlaceOrder({ ...(toolFunction.arguments as functions.OrderInput), }); default: @@ -123,6 +109,7 @@ export async function agentWorkflow({ let ended = false; onEvent(agentEnd, async () => { + // Terminate AI agent workflow log.info(`agentEnd received`); ended = true; }); diff --git a/examples/voice/src/workflows/agent/events.ts b/examples/voice/src/workflows/agent/events.ts new file mode 100644 index 0000000..c5e8624 --- /dev/null +++ b/examples/voice/src/workflows/agent/events.ts @@ -0,0 +1,23 @@ +import * as functions from "../../functions"; +import { defineEvent } from "@restackio/restack-sdk-ts/event"; + +export type ToolCall = { + index: number; + function: { + name: string; + arguments: + | functions.OrderInput + | functions.InventoryInput + | functions.PriceInput; + }; + id?: string; +}; + +export type Reply = { + streamSid: string; + text: string; +}; + +export const toolCallEvent = defineEvent("toolCall"); +export const replyEvent = defineEvent("reply"); +export const agentEnd = defineEvent("agentEnd"); diff --git a/examples/voice/src/workflows/index.ts b/examples/voice/src/workflows/index.ts index 59e1f8b..d35b9be 100644 --- a/examples/voice/src/workflows/index.ts +++ b/examples/voice/src/workflows/index.ts @@ -1,3 +1,3 @@ export * from "./twilioCall"; -export * from "./stream"; -export * from "./agent"; +export * from "./stream/stream"; +export * from "./agent/agent"; diff --git a/examples/voice/src/workflows/stream/events.ts b/examples/voice/src/workflows/stream/events.ts new file mode 100644 index 0000000..03cdcb8 --- /dev/null +++ b/examples/voice/src/workflows/stream/events.ts @@ -0,0 +1,28 @@ +import { defineEvent } from "@restackio/restack-sdk-ts/event"; + +export type StreamInfo = { + streamSid: string; +}; + +export type AudioIn = { + streamSid: string; + payload: string; +}; + +export type Answer = { + streamSid: string; + response: string; + isLast?: boolean; +}; + +export const streamInfoEvent = defineEvent("streamInfo"); + +export const audioInEvent = defineEvent("audioIn"); + +export const answerEvent = defineEvent("answer"); + +export const streamEndEvent = defineEvent("streamEnd"); + +// use for websocket event shown to show transcript in frontend for ex. + +export const questionEvent = defineEvent("question"); diff --git a/examples/voice/src/workflows/stream.ts b/examples/voice/src/workflows/stream/stream.ts similarity index 67% rename from examples/voice/src/workflows/stream.ts rename to examples/voice/src/workflows/stream/stream.ts index 9c42bd6..7a654f4 100644 --- a/examples/voice/src/workflows/stream.ts +++ b/examples/voice/src/workflows/stream/stream.ts @@ -1,44 +1,23 @@ import { step, log, - workflowInfo, condition, startChild, } from "@restackio/restack-sdk-ts/workflow"; -import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; -import * as functions from "../functions"; -import { agentWorkflow, Reply, replyEvent } from "./agent"; - -export type StreamInfo = { - streamSid: string; -}; - -export type AudioIn = { - streamSid: string; - payload: string; -}; - -export type Question = { - streamSid: string; - text: string; - interactionCount: number; -}; - -export type Answer = { - streamSid: string; - response: string; - isLast?: boolean; -}; - -export const streamInfoEvent = defineEvent("streamInfo"); - -export const audioInEvent = defineEvent("audioIn"); - -export const questionEvent = defineEvent("question"); - -export const answerEvent = defineEvent("answer"); - -export const streamEndEvent = defineEvent("streamEnd"); +import { onEvent } from "@restackio/restack-sdk-ts/event"; +import * as functions from "../../functions"; +import { agentWorkflow } from "../agent/agent"; +import { + Answer, + answerEvent, + AudioIn, + audioInEvent, + questionEvent, + streamEndEvent, + StreamInfo, + streamInfoEvent, +} from "./events"; +import { Reply, replyEvent } from "../agent/events"; export async function streamWorkflow() { try { @@ -50,21 +29,20 @@ export async function streamWorkflow() { text: string; }[] = []; let isSendingAudio = false; - const runId = workflowInfo().runId; let childAgentRunId = ""; - log.info(`Workflow started with runId: ${runId}`); + // Start long running websocket and send welcome message. onEvent(streamInfoEvent, async ({ streamSid }: StreamInfo) => { log.info(`Workflow update with streamSid: ${streamSid}`); step({ taskQueue: `websocket`, scheduleToCloseTimeout: "30 minutes", - }).listenMedia({ streamSid }); + }).websocketListenMedia({ streamSid }); - const welcomeMessage = "Hello! My name is Pete from Apple."; + const welcomeMessage = + "Hello! I am Pete from Apple. Are you thinking about getting AirPods?"; const { audio } = await step({ taskQueue: `deepgram`, - scheduleToCloseTimeout: "2 minutes", }).deepgramSpeak({ streamSid, text: welcomeMessage, @@ -72,13 +50,11 @@ export async function streamWorkflow() { await step({ taskQueue: `websocket`, - scheduleToCloseTimeout: "2 minutes", - }).sendAudio({ streamSid, audio }); + }).websocketSendAudio({ streamSid, audio }); await step({ taskQueue: `websocket`, - scheduleToCloseTimeout: "2 minutes", - }).sendEvent({ + }).websocketSendEvent({ streamSid, eventName: answerEvent.name, data: { text: welcomeMessage }, @@ -88,19 +64,19 @@ export async function streamWorkflow() { return { streamSid }; }); + // Transcribe audio and send it to AI agent + onEvent(audioInEvent, async ({ streamSid, payload }: AudioIn) => { log.info(`Workflow update with streamSid: ${streamSid}`); const { finalResult } = await step({ taskQueue: `deepgram`, - scheduleToCloseTimeout: "2 minutes", }).deepgramListen({ streamSid, payload }); interactionCount += 1; step({ taskQueue: `websocket`, - scheduleToCloseTimeout: "1 minute", - }).sendEvent({ + }).websocketSendEvent({ streamSid, eventName: questionEvent.name, data: { text: finalResult }, @@ -121,8 +97,7 @@ export async function streamWorkflow() { const input: Reply = { streamSid, text: finalResult }; step({ taskQueue: `restack`, - scheduleToCloseTimeout: "1 minute", - }).sendEventToWorkflow({ + }).workflowSendEvent({ workflowId: `${streamSid}-agentWorkflow`, runId: childAgentRunId, eventName: replyEvent.name, @@ -132,10 +107,11 @@ export async function streamWorkflow() { return { streamSid }; }); + // Generate audio from AI answer and send it to websocket + onEvent(answerEvent, async ({ streamSid, response, isLast }: Answer) => { const { audio } = await step({ taskQueue: `deepgram`, - scheduleToCloseTimeout: "2 minutes", }).deepgramSpeak({ streamSid, text: response, @@ -151,14 +127,12 @@ export async function streamWorkflow() { await step({ taskQueue: `websocket`, - scheduleToCloseTimeout: "2 minutes", - }).sendAudio({ streamSid, audio }); + }).websocketSendAudio({ streamSid, audio }); } await step({ taskQueue: `websocket`, - scheduleToCloseTimeout: "1 minute", - }).sendEvent({ + }).websocketSendEvent({ streamSid, eventName: answerEvent.name, data: { text: response }, @@ -170,7 +144,10 @@ export async function streamWorkflow() { return { streamSid }; }); + // Terminates stream workflow + let ended = false; + onEvent(streamEndEvent, async () => { log.info(`streamEnd received`); ended = true; From 98b3701c02bf9b47b4f713e0f1c1615519e0c04c Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 14 Aug 2024 17:16:26 +0200 Subject: [PATCH 037/122] cleanup comments Former-commit-id: 51d33d3c4201405215aa100cb7008cdb631efb49 Former-commit-id: 521302095795a2a7533681782d3fa4bf85048f64 --- examples/voice/src/workflows/agent/agent.ts | 9 +++++---- examples/voice/src/workflows/stream/stream.ts | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/examples/voice/src/workflows/agent/agent.ts b/examples/voice/src/workflows/agent/agent.ts index a5c65eb..8bdd73c 100644 --- a/examples/voice/src/workflows/agent/agent.ts +++ b/examples/voice/src/workflows/agent/agent.ts @@ -21,7 +21,7 @@ export async function agentWorkflow({ let openaiChatMessages: any[] = []; - // Get tools definition and start conversation + // Get tools definition and start conversation. const tools = await step({ taskQueue: "erp", @@ -40,7 +40,7 @@ export async function agentWorkflow({ openaiChatMessages = initialMessages.messages; } - // Send reply to AI chat with previous messages to continue conversation + // On user reply, send it to AI chat with previous messages to continue conversation. onEvent(replyEvent, async ({ streamSid, text }: Reply) => { const replyMessage = await step({ @@ -60,7 +60,7 @@ export async function agentWorkflow({ return { text }; }); - // When AI answer is a tool call, execute function and push results to conversation + // When AI answer is a tool call, execute function and push results to conversation. onEvent(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { log.info("toolCallEvent", { toolFunction }); @@ -107,9 +107,10 @@ export async function agentWorkflow({ return { function: toolFunction }; }); + // Terminate AI agent workflow. + let ended = false; onEvent(agentEnd, async () => { - // Terminate AI agent workflow log.info(`agentEnd received`); ended = true; }); diff --git a/examples/voice/src/workflows/stream/stream.ts b/examples/voice/src/workflows/stream/stream.ts index 7a654f4..85813ba 100644 --- a/examples/voice/src/workflows/stream/stream.ts +++ b/examples/voice/src/workflows/stream/stream.ts @@ -31,7 +31,7 @@ export async function streamWorkflow() { let isSendingAudio = false; let childAgentRunId = ""; - // Start long running websocket and send welcome message. + // Start long running websocket and stream welcome message to websocket. onEvent(streamInfoEvent, async ({ streamSid }: StreamInfo) => { log.info(`Workflow update with streamSid: ${streamSid}`); step({ @@ -64,7 +64,7 @@ export async function streamWorkflow() { return { streamSid }; }); - // Transcribe audio and send it to AI agent + // Receives audio, transcribe it and send transcription to AI agent. onEvent(audioInEvent, async ({ streamSid, payload }: AudioIn) => { log.info(`Workflow update with streamSid: ${streamSid}`); @@ -107,7 +107,7 @@ export async function streamWorkflow() { return { streamSid }; }); - // Generate audio from AI answer and send it to websocket + // Receives AI answer, generates audio and stream it to websocket. onEvent(answerEvent, async ({ streamSid, response, isLast }: Answer) => { const { audio } = await step({ @@ -144,7 +144,7 @@ export async function streamWorkflow() { return { streamSid }; }); - // Terminates stream workflow + // Terminates stream workflow. let ended = false; From 4a4e3a2611b4a4320043222aa1b80535df734f7b Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 15 Aug 2024 11:42:58 +0200 Subject: [PATCH 038/122] reuse clients Former-commit-id: a9ea3ff0a984936af938f06f96caf4d07d975f40 Former-commit-id: f2346c6e8ecf97ca53d22d0ee5b71cebd075713c --- examples/voice/src/functions/deepgram/client.ts | 10 ++++++++++ examples/voice/src/functions/deepgram/listen.ts | 14 ++------------ examples/voice/src/functions/deepgram/speak.ts | 5 ++--- examples/voice/src/functions/openai/chat.ts | 5 +++-- examples/voice/src/functions/openai/client.ts | 10 ++++++++++ 5 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 examples/voice/src/functions/deepgram/client.ts create mode 100644 examples/voice/src/functions/openai/client.ts diff --git a/examples/voice/src/functions/deepgram/client.ts b/examples/voice/src/functions/deepgram/client.ts new file mode 100644 index 0000000..29e3ca5 --- /dev/null +++ b/examples/voice/src/functions/deepgram/client.ts @@ -0,0 +1,10 @@ +import { createClient, DeepgramClient } from "@deepgram/sdk"; + +let clientDeepgram: DeepgramClient; + +export function deepgramClient() { + if (!clientDeepgram) { + clientDeepgram = createClient(process.env.DEEPGRAM_API_KEY); + } + return clientDeepgram; +} diff --git a/examples/voice/src/functions/deepgram/listen.ts b/examples/voice/src/functions/deepgram/listen.ts index 4454680..5d30ccb 100644 --- a/examples/voice/src/functions/deepgram/listen.ts +++ b/examples/voice/src/functions/deepgram/listen.ts @@ -1,7 +1,7 @@ import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; import { Buffer } from "node:buffer"; import "dotenv/config"; -import { createClient } from "@deepgram/sdk"; +import { deepgramClient } from "./client"; export async function deepgramListen({ streamSid, @@ -15,9 +15,8 @@ export async function deepgramListen({ } try { - const deepgram = createClient(process.env.DEEPGRAM_API_KEY); const decodedBuffer = Buffer.from(payload, "base64"); - + const deepgram = deepgramClient(); const response = await deepgram.listen.prerecorded.transcribeFile( decodedBuffer, { @@ -36,17 +35,8 @@ export async function deepgramListen({ } const results = response.result?.results; - - log.debug("deepgramListen results: ", { - results: results, - }); - const transcript = results?.channels?.[0]?.alternatives?.[0]?.transcript; - log.info("deepgramListen transcript: ", { - transcript: transcript, - }); - return { streamSid, finalResult: transcript ?? "", diff --git a/examples/voice/src/functions/deepgram/speak.ts b/examples/voice/src/functions/deepgram/speak.ts index c7f944d..d9445ae 100644 --- a/examples/voice/src/functions/deepgram/speak.ts +++ b/examples/voice/src/functions/deepgram/speak.ts @@ -1,7 +1,7 @@ import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; import { Buffer } from "node:buffer"; import "dotenv/config"; -import { createClient } from "@deepgram/sdk"; +import { deepgramClient } from "./client"; const getAudioBuffer = async (stream: ReadableStream) => { const reader = stream.getReader(); @@ -37,8 +37,7 @@ export async function deepgramSpeak({ const deepgramModel = "aura-arcas-en"; try { - const deepgram = createClient(process.env.DEEPGRAM_API_KEY); - + const deepgram = deepgramClient(); const response = await deepgram.speak.request( { text }, { diff --git a/examples/voice/src/functions/openai/chat.ts b/examples/voice/src/functions/openai/chat.ts index 139a5c4..eca2142 100644 --- a/examples/voice/src/functions/openai/chat.ts +++ b/examples/voice/src/functions/openai/chat.ts @@ -2,13 +2,14 @@ import OpenAI from "openai"; import "dotenv/config"; import { agentPrompt } from "./prompt"; import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; -import Restack from "@restackio/restack-sdk-ts"; import { Answer, answerEvent } from "../../workflows/stream/events"; import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; import { toolCallEvent } from "../../workflows/agent/events"; import { aggregateStreamChunks } from "./utils/aggregateStream"; import { mergeToolCalls } from "./utils/mergeToolCalls"; import { ParentWorkflowInfo } from "@temporalio/workflow"; +import Restack from "@restackio/restack-sdk-ts"; +import { openaiClient } from "./client"; export async function openaiChat({ streamSid, @@ -23,7 +24,6 @@ export async function openaiChat({ tools?: OpenAI.Chat.Completions.ChatCompletionTool[]; workflowToUpdate?: ParentWorkflowInfo; }) { - const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); const restack = new Restack(); const { workflowId, runId } = currentWorkflow().workflowExecution; @@ -39,6 +39,7 @@ export async function openaiChat({ }); } + const openai = openaiClient(); const stream = await openai.chat.completions.create({ model: "gpt-4o-mini", messages, diff --git a/examples/voice/src/functions/openai/client.ts b/examples/voice/src/functions/openai/client.ts new file mode 100644 index 0000000..851a20b --- /dev/null +++ b/examples/voice/src/functions/openai/client.ts @@ -0,0 +1,10 @@ +import OpenAI from "openai"; + +let clientOpenai: OpenAI | null = null; + +export function openaiClient() { + if (!clientOpenai) { + clientOpenai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); + } + return clientOpenai; +} From a0f04041698322ce8fe921e8363a9b7a622b0b44 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 15 Aug 2024 16:39:00 +0200 Subject: [PATCH 039/122] remove test prompt Former-commit-id: 2e9da9c5571acc7201e39eb81ce1aebbfecb98da Former-commit-id: e5f8ce0b0f7b53c8a3ca524671d3da14f3d874d3 --- examples/voice/src/functions/openai/prompt.ts | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/examples/voice/src/functions/openai/prompt.ts b/examples/voice/src/functions/openai/prompt.ts index 0974ef4..391b7ac 100644 --- a/examples/voice/src/functions/openai/prompt.ts +++ b/examples/voice/src/functions/openai/prompt.ts @@ -26,20 +26,3 @@ export const agentPrompt: OpenAI.Chat.Completions.ChatCompletionMessageParam[] = "Hello! I understand you're looking for a pair of AirPods, is that correct?", }, ]; - -export const testUserPrompt: OpenAI.Chat.Completions.ChatCompletionMessageParam[] = - [ - { - role: "system", - content: `An outbound sales representative selling Apple Airpods is calling you. - Pick a random personality. - Keep your responses as brief as possible but make every attempt to confuse the sales representative. - Don't ask more than 1 question at a time. - Ask for clarification if the sales rep request is ambiguous. - This reponse is used by text to speech, make it as natural as possible by using filler words like 'um' and 'uh'. - A comma (,) or a period (.) present in your text will be treated as a very short pause. - If you need to insert a longer pause in your audio, use the ellipsis: ... - You must add a '•' symbol every 5 to 10 words at natural pauses where your response can be split for text to speech. - `, - }, - ]; From 636612ea366083e19e285b4f9ad5a96b4d087815 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 15 Aug 2024 17:42:48 +0200 Subject: [PATCH 040/122] update readme Former-commit-id: 34998357ccfa2fe42beffa507b09fd16fd619ce6 Former-commit-id: cc75ee03bd2f8075b8f6a5b774be16a825165970 --- examples/voice/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/voice/readme.md b/examples/voice/readme.md index 4949697..09b3219 100644 --- a/examples/voice/readme.md +++ b/examples/voice/readme.md @@ -5,7 +5,7 @@ pnpm i Add OPENAI_API_KEY and DEEPGRAM_API_KEY keys in .env pnpm dev-server -pnpm dev-pods +pnpm dev-worker # Use frontend with browser microphone: From da8bf268546a8a8600b19441c0bee974efb8e490 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 19 Aug 2024 00:29:58 +0200 Subject: [PATCH 041/122] hello with integrations Former-commit-id: a85928aae3d2b10b88ef14b7f44ce107dbc12a36 Former-commit-id: 065367c0d028f01109aa32a9c35f9d3da63322bb --- examples/hello/package.json | 11 +- examples/hello/pnpm-lock.yaml | 372 ++++++++++++++---- examples/hello/src/functions/getOpenaiKey.ts | 11 + examples/hello/src/functions/greet.ts | 29 -- examples/hello/src/functions/index.ts | 2 +- examples/hello/src/functions/openai/chat.ts | 60 --- examples/hello/src/functions/openai/client.ts | 8 - examples/hello/src/functions/openai/cost.ts | 36 -- .../hello/src/functions/openai/zodPrompt.ts | 19 - examples/hello/src/operator.ts | 27 ++ examples/hello/src/worker.ts | 42 -- examples/hello/src/workflows/example.ts | 49 ++- examples/hello/tsconfig.json | 2 +- 13 files changed, 365 insertions(+), 303 deletions(-) create mode 100644 examples/hello/src/functions/getOpenaiKey.ts delete mode 100644 examples/hello/src/functions/greet.ts delete mode 100644 examples/hello/src/functions/openai/chat.ts delete mode 100644 examples/hello/src/functions/openai/client.ts delete mode 100644 examples/hello/src/functions/openai/cost.ts delete mode 100644 examples/hello/src/functions/openai/zodPrompt.ts create mode 100644 examples/hello/src/operator.ts delete mode 100644 examples/hello/src/worker.ts diff --git a/examples/hello/package.json b/examples/hello/package.json index 272b0d6..c3e92c3 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start.watch": "nodemon src/worker.ts", + "start.watch": "nodemon src/operator.ts", "dev": "pnpm start.watch", "workflow": "ts-node ./scheduleWorkflow.ts", "test": "echo \"Error: no test specified\" && exit 1" @@ -19,13 +19,12 @@ ] }, "dependencies": { - "@temporalio/worker": "^1.10.3", - "@temporalio/workflow": "^1.10.3", + "@restackio/integrations-openai": "^0.0.1", + "@restackio/restack-sdk-ts": "^0.0.48", + "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", - "openai": "^4.53.2", - "@restackio/restack-sdk-ts": "^0.0.39", "zod": "^3.23.8", - "zod-to-json-schema": "^3.23.1" + "zod-to-json-schema": "^3.23.2" }, "devDependencies": { "@types/node": "^20.11.1", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 1cf9f05..702cf24 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -8,27 +8,24 @@ importers: .: dependencies: + '@restackio/integrations-openai': + specifier: ^0.0.1 + version: 0.0.1(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.38 - version: 0.0.38 - '@temporalio/worker': - specifier: ^1.10.3 - version: 1.10.3 + specifier: ^0.0.48 + version: 0.0.48 '@temporalio/workflow': - specifier: ^1.10.3 - version: 1.10.3 + specifier: ^1.11.1 + version: 1.11.1 dotenv: specifier: ^16.4.5 version: 16.4.5 - openai: - specifier: ^4.53.2 - version: 4.53.2 zod: specifier: ^3.23.8 version: 3.23.8 zod-to-json-schema: - specifier: ^3.23.1 - version: 3.23.1(zod@3.23.8) + specifier: ^3.23.2 + version: 3.23.2(zod@3.23.8) devDependencies: '@types/node': specifier: ^20.11.1 @@ -38,7 +35,35 @@ importers: version: 2.0.22 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.2)(@types/node@20.14.12)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4) + + integrations/openai: + dependencies: + '@restackio/restack-sdk-ts': + specifier: ^0.0.40 + version: 0.0.40 + '@temporalio/worker': + specifier: ^1.10.3 + version: 1.11.1 + '@temporalio/workflow': + specifier: ^1.10.3 + version: 1.11.1 + openai: + specifier: ^4.56.0 + version: 4.56.0(zod@3.23.8) + ts-node: + specifier: ^10.0.0 + version: 10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5) + typescript: + specifier: ^4.0.0 + version: 4.9.5 + zod: + specifier: ^3.23.8 + version: 3.23.8 + devDependencies: + '@types/node': + specifier: ^14.0.0 + version: 14.18.63 packages: @@ -88,8 +113,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.0.4': - resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -130,70 +155,146 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.38': - resolution: {integrity: sha512-PhvRTQFs3NGrmN8tzhEsfTzPjQGXmw1hPVCKNO4nUt6+piH+Pezx8jFBAg9p4oaqLZ4fzdawLgzV5cbJmGYOTA==} + '@restackio/integrations-openai@0.0.1': + resolution: {integrity: sha512-JH5Tye4If39AsAlRhDDtxbuJIbaNR7anDqRDPTAFMOv7ry42iOiApwJ2TNwgGRJo+4cSOv9uCwG8/wwdi/WQHg==} + + '@restackio/restack-sdk-ts@0.0.40': + resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} + '@restackio/restack-sdk-ts@0.0.48': + resolution: {integrity: sha512-Vy0ah9QcQRvE7grDmX2hvrc8wjtdRfXX8C+9kerk31rCUY0FEmws55wzZcEeS4UNj1iGSntGGJD4i4ML5U7RWA==} + engines: {node: '>=20'} + + '@swc/core-darwin-arm64@1.7.11': + resolution: {integrity: sha512-HRQv4qIeMBPThZ6Y/4yYW52rGsS6yrpusvuxLGyoFo45Y0y12/V2yXkOIA/0HIQyrqoUAxn1k4zQXpPaPNCmnw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + '@swc/core-darwin-arm64@1.7.2': resolution: {integrity: sha512-Zb8KiGaESzOgh5HBnp6Vhs2fRpngHIT81JOfIo0oaGlzAckamnG7UAXC/yK6cQ8q2KXc78utJ/yq/NM2yVKLqw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] + '@swc/core-darwin-x64@1.7.11': + resolution: {integrity: sha512-vtMQj0F3oYwDu5yhO7SKDRg1XekRSi6/TbzHAbBXv+dBhlGGvcZZynT1H90EVFTv+7w7Sh+lOFvRv5Z4ZTcxow==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + '@swc/core-darwin-x64@1.7.2': resolution: {integrity: sha512-qb0HY9GEexpPm46Hb3OY7E6xb4r+eniiThm+0Gcnhf19EZV2ZlsCC8Rdbhmav33x++ZqSDzZ44fxMY2vnN5VDg==} engines: {node: '>=10'} cpu: [x64] os: [darwin] + '@swc/core-linux-arm-gnueabihf@1.7.11': + resolution: {integrity: sha512-mHtzWKxhtyreI4CSxs+3+ENv8t/Qo35WFoYG66qHEgJz/Z2Lh6jv1E+MYgHdYwnpQHgHbdvAco7HsBu/Dt6xXw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + '@swc/core-linux-arm-gnueabihf@1.7.2': resolution: {integrity: sha512-x2+MOK3RzH3yEkaukKtpDW/udM1x9GoYtXaLNqlq6ovAzZPQ9FDFI0pm1asL4akHUw3s7YTh1aUY7QscstJAHQ==} engines: {node: '>=10'} cpu: [arm] os: [linux] + '@swc/core-linux-arm64-gnu@1.7.11': + resolution: {integrity: sha512-FRwe/x0GfXSQjGP2lIk+NO0pUFS/lI/RorCLBPiK808EVE9JTbh9DKCc/4Bbb4jgScAjNkrFCUVObQYl3YKmpA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + '@swc/core-linux-arm64-gnu@1.7.2': resolution: {integrity: sha512-4J3HGEDus7a9xnrJUFGyJJgvj4w+BFGiZvs08xbw4Z1ZN4uHJQiJiDsQEAWWciKUxrOndP3SocUq/GhEGiDm0g==} engines: {node: '>=10'} cpu: [arm64] os: [linux] + '@swc/core-linux-arm64-musl@1.7.11': + resolution: {integrity: sha512-GY/rs0+GUq14Gbnza90KOrQd/9yHd5qQMii5jcSWcUCT5A8QTa8kiicsM2NxZeTJ69xlKmT7sLod5l99lki/2A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + '@swc/core-linux-arm64-musl@1.7.2': resolution: {integrity: sha512-4FhQmYbj8SCmir4pHRLSn8IIFmRKHTL3eZFtOpm26RLME7rXL7Yt33DpzIeTRoHFIesI5NEfaR38WU5mY7P1pA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] + '@swc/core-linux-x64-gnu@1.7.11': + resolution: {integrity: sha512-QDkGRwSPmp2RBOlSs503IUXlWYlny8DyznTT0QuK0ML2RpDFlXWU94K/EZhS0RBEUkMY/W51OacM8P8aS/dkCg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + '@swc/core-linux-x64-gnu@1.7.2': resolution: {integrity: sha512-Loz10Hy6z5mBIAOe6OInOVsYu+PVxyknCB3thtr7QH+uqEz6dcXhU2ERrO2Lf4dsTsFs/Wb80rv8zTSwB8dpsw==} engines: {node: '>=10'} cpu: [x64] os: [linux] + '@swc/core-linux-x64-musl@1.7.11': + resolution: {integrity: sha512-SBEfKrXy6zQ6ksnyxw1FaCftrIH4fLfA81xNnKb7x/6iblv7Ko6H0aK3P5C86jyqF/82+ONl9C7ImGkUFQADig==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + '@swc/core-linux-x64-musl@1.7.2': resolution: {integrity: sha512-8p8qNWaLcTa+qHX4NSv1KNm8BQ6zPoLXuOBo9DtOEqc+K60IISGKPCAS7TJlCcv0q20JnmxZ/cEWW5Qo4TR4XQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] + '@swc/core-win32-arm64-msvc@1.7.11': + resolution: {integrity: sha512-a2Y4xxEsLLYHJN7sMnw9+YQJDi3M1BxEr9hklfopPuGGnYLFNnx5CypH1l9ReijEfWjIAHNi7pq3m023lzW1Hg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + '@swc/core-win32-arm64-msvc@1.7.2': resolution: {integrity: sha512-eNWAYOalBlFrhv/IVSQ1dxu7qIGuhxlUJZTYa8jsgLnKt93vAFd2cjLtKZ85k1OibBnq9PkKQyo4NKVr4hBavw==} engines: {node: '>=10'} cpu: [arm64] os: [win32] + '@swc/core-win32-ia32-msvc@1.7.11': + resolution: {integrity: sha512-ZbZFMwZO+j8ulhegJ7EhJ/QVZPoQ5qc30ylJQSxizizTJaen71Q7/13lXWc6ksuCKvg6dUKrp/TPgoxOOtSrFA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + '@swc/core-win32-ia32-msvc@1.7.2': resolution: {integrity: sha512-BbpaCPCnbQHCzpQ9yDH3qp1Y5Ijd0NSMNk4qqESN2WWx0ojV2uBTjPou5NC2MZxk8fM3iJpJ05enf+IeaXuh6A==} engines: {node: '>=10'} cpu: [ia32] os: [win32] + '@swc/core-win32-x64-msvc@1.7.11': + resolution: {integrity: sha512-IUohZedSJyDu/ReEBG/mqX6uG29uA7zZ9z6dIAF+p6eFxjXmh9MuHryyM+H8ebUyoq/Ad3rL+rUCksnuYNnI0w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + '@swc/core-win32-x64-msvc@1.7.2': resolution: {integrity: sha512-21mf4Jg9Arx0lUnmRQtYd8IQB4WkY4LHJrvcz3EmKbwCTCXI5rQ6Ifnjk7EmG3Tizv0giHqQBQLu5NXWBz45Mg==} engines: {node: '>=10'} cpu: [x64] os: [win32] + '@swc/core@1.7.11': + resolution: {integrity: sha512-AB+qc45UrJrDfbhPKcUXk+9z/NmFfYYwJT6G7/iur0fCse9kXjx45gi40+u/O2zgarG/30/zV6E3ps8fUvjh7g==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + '@swc/core@1.7.2': resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} engines: {node: '>=10'} @@ -209,27 +310,27 @@ packages: '@swc/types@0.1.12': resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - '@temporalio/activity@1.10.3': - resolution: {integrity: sha512-2wGEnH3lzfRkAPsM29Uih4jaXPjsRDCsXdSFJqmHz2fxcfodcjSjgTAJERFKRVOb9JfYmzsITRIrkKAfs3kvxA==} + '@temporalio/activity@1.11.1': + resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} - '@temporalio/client@1.10.3': - resolution: {integrity: sha512-0xGYlURFoHrWByIJB3vNCaY7p9lnUkvrlA4uVAG92AwI0z/kcXdkUwn+VTOBBJi83iX6NZ0QS47HA6sCr00OPw==} + '@temporalio/client@1.11.1': + resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} - '@temporalio/common@1.10.3': - resolution: {integrity: sha512-0LF4UZQomMy+K3dGR0PGkBAqBByavjldeUKyMONtDrVqtq4sO2+2NtLW9mvmXGCH15jsabye1pQZdZxlTGP/CQ==} + '@temporalio/common@1.11.1': + resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} - '@temporalio/core-bridge@1.10.3': - resolution: {integrity: sha512-TJV8Th8h0pv6gwwEqcTUIbOZVqfKj/6qWgNBnZuHi3BYd1WKzvXGGg0r1gorwlfapaC3Mms/Rqed9Xlnl9xjDQ==} + '@temporalio/core-bridge@1.11.1': + resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} - '@temporalio/proto@1.10.3': - resolution: {integrity: sha512-ugp04SpQFNmOa0+/kpg2vLfWMBPD2UW4s4XRaN23v9RREZ0HqV+DB+ZTT+03F9jeZlIFB0hxbF1Xd65tAF6fKg==} + '@temporalio/proto@1.11.1': + resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} - '@temporalio/worker@1.10.3': - resolution: {integrity: sha512-IGHSpp9usFcn1kuYs234xOP2xjBJVyEtjborV8ZEFi9Eu01s7BfrNrVZUMQjs6dRTOCvvvkiFhU3MNuyk2qkWA==} + '@temporalio/worker@1.11.1': + resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} engines: {node: '>= 16.0.0'} - '@temporalio/workflow@1.10.3': - resolution: {integrity: sha512-XnP1Srb4r1dhl4g5U/KDTSSJ9zixIeqBd5lfC0wol257ItjfJPJgXAYUNg0YqPg4HyE77OlG7Qh6qhyAU80ubg==} + '@temporalio/workflow@1.11.1': + resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -258,6 +359,9 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + '@types/node@18.19.42': resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} @@ -604,8 +708,8 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - memfs@4.11.0: - resolution: {integrity: sha512-+6kz90/YQoZuHvg3rn1CGPMZfEMaU5xe7xIavZMNiom2RNesiI8S37p9O9n+PlIUnUgretjLdM6HnqpZYl3X2g==} + memfs@4.11.1: + resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} engines: {node: '>= 4.0.0'} merge-stream@2.0.0: @@ -657,9 +761,14 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - openai@4.53.2: - resolution: {integrity: sha512-ohYEv6OV3jsFGqNrgolDDWN6Ssx1nFg6JDJQuaBFo4SL2i+MBoOQ16n2Pq1iBF5lH1PKnfCIOfqAGkmzPvdB9g==} + openai@4.56.0: + resolution: {integrity: sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==} hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -830,6 +939,11 @@ packages: tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -913,8 +1027,8 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - zod-to-json-schema@3.23.1: - resolution: {integrity: sha512-oT9INvydob1XV0v1d2IadrR74rLtDInLvDFfAa1CG0Pmg/vxATk7I2gSelfj271mbzeM4Da0uuDQE/Nkj3DWNw==} + zod-to-json-schema@3.23.2: + resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} peerDependencies: zod: ^3.23.3 @@ -972,7 +1086,7 @@ snapshots: dependencies: tslib: 2.6.3 - '@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.6.3)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) @@ -1007,48 +1121,113 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.38': + '@restackio/integrations-openai@0.0.1(zod@3.23.8)': + dependencies: + openai: 4.56.0(zod@3.23.8) + transitivePeerDependencies: + - encoding + - zod + + '@restackio/restack-sdk-ts@0.0.40': + dependencies: + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1 + '@temporalio/workflow': 1.11.1 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@restackio/restack-sdk-ts@0.0.48': dependencies: - '@temporalio/activity': 1.10.3 - '@temporalio/client': 1.10.3 - '@temporalio/worker': 1.10.3 - '@temporalio/workflow': 1.10.3 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1 + '@temporalio/workflow': 1.11.1 transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli + '@swc/core-darwin-arm64@1.7.11': + optional: true + '@swc/core-darwin-arm64@1.7.2': optional: true + '@swc/core-darwin-x64@1.7.11': + optional: true + '@swc/core-darwin-x64@1.7.2': optional: true + '@swc/core-linux-arm-gnueabihf@1.7.11': + optional: true + '@swc/core-linux-arm-gnueabihf@1.7.2': optional: true + '@swc/core-linux-arm64-gnu@1.7.11': + optional: true + '@swc/core-linux-arm64-gnu@1.7.2': optional: true + '@swc/core-linux-arm64-musl@1.7.11': + optional: true + '@swc/core-linux-arm64-musl@1.7.2': optional: true + '@swc/core-linux-x64-gnu@1.7.11': + optional: true + '@swc/core-linux-x64-gnu@1.7.2': optional: true + '@swc/core-linux-x64-musl@1.7.11': + optional: true + '@swc/core-linux-x64-musl@1.7.2': optional: true + '@swc/core-win32-arm64-msvc@1.7.11': + optional: true + '@swc/core-win32-arm64-msvc@1.7.2': optional: true + '@swc/core-win32-ia32-msvc@1.7.11': + optional: true + '@swc/core-win32-ia32-msvc@1.7.2': optional: true + '@swc/core-win32-x64-msvc@1.7.11': + optional: true + '@swc/core-win32-x64-msvc@1.7.2': optional: true + '@swc/core@1.7.11': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.11 + '@swc/core-darwin-x64': 1.7.11 + '@swc/core-linux-arm-gnueabihf': 1.7.11 + '@swc/core-linux-arm64-gnu': 1.7.11 + '@swc/core-linux-arm64-musl': 1.7.11 + '@swc/core-linux-x64-gnu': 1.7.11 + '@swc/core-linux-x64-musl': 1.7.11 + '@swc/core-win32-arm64-msvc': 1.7.11 + '@swc/core-win32-ia32-msvc': 1.7.11 + '@swc/core-win32-x64-msvc': 1.7.11 + '@swc/core@1.7.2': dependencies: '@swc/counter': 0.1.3 @@ -1064,6 +1243,7 @@ snapshots: '@swc/core-win32-arm64-msvc': 1.7.2 '@swc/core-win32-ia32-msvc': 1.7.2 '@swc/core-win32-x64-msvc': 1.7.2 + optional: true '@swc/counter@0.1.3': {} @@ -1071,68 +1251,68 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@temporalio/activity@1.10.3': + '@temporalio/activity@1.11.1': dependencies: - '@temporalio/common': 1.10.3 + '@temporalio/common': 1.11.1 abort-controller: 3.0.0 - '@temporalio/client@1.10.3': + '@temporalio/client@1.11.1': dependencies: '@grpc/grpc-js': 1.11.1 - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 abort-controller: 3.0.0 long: 5.2.3 uuid: 9.0.1 - '@temporalio/common@1.10.3': + '@temporalio/common@1.11.1': dependencies: - '@temporalio/proto': 1.10.3 + '@temporalio/proto': 1.11.1 long: 5.2.3 ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.10.3': + '@temporalio/core-bridge@1.11.1': dependencies: - '@temporalio/common': 1.10.3 + '@temporalio/common': 1.11.1 arg: 5.0.2 cargo-cp-artifact: 0.1.9 which: 4.0.0 - '@temporalio/proto@1.10.3': + '@temporalio/proto@1.11.1': dependencies: long: 5.2.3 protobufjs: 7.3.2 - '@temporalio/worker@1.10.3': + '@temporalio/worker@1.11.1': dependencies: - '@swc/core': 1.7.2 - '@temporalio/activity': 1.10.3 - '@temporalio/client': 1.10.3 - '@temporalio/common': 1.10.3 - '@temporalio/core-bridge': 1.10.3 - '@temporalio/proto': 1.10.3 - '@temporalio/workflow': 1.10.3 + '@swc/core': 1.7.11 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/common': 1.11.1 + '@temporalio/core-bridge': 1.11.1 + '@temporalio/proto': 1.11.1 + '@temporalio/workflow': 1.11.1 abort-controller: 3.0.0 heap-js: 2.5.0 - memfs: 4.11.0 + memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.2)) + source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.11)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)) + swc-loader: 0.2.6(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)) unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.2) + webpack: 5.93.0(@swc/core@1.7.11) transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@temporalio/workflow@1.10.3': + '@temporalio/workflow@1.11.1': dependencies: - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 '@tsconfig/node10@1.0.11': {} @@ -1161,6 +1341,8 @@ snapshots: '@types/node': 20.14.12 form-data: 4.0.0 + '@types/node@14.18.63': {} + '@types/node@18.19.42': dependencies: undici-types: 5.26.5 @@ -1487,9 +1669,9 @@ snapshots: make-error@1.3.6: {} - memfs@4.11.0: + memfs@4.11.1: dependencies: - '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.6.3) '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) tree-dump: 1.0.2(tslib@2.6.3) tslib: 2.6.3 @@ -1535,7 +1717,7 @@ snapshots: normalize-path@3.0.0: {} - openai@4.53.2: + openai@4.56.0(zod@3.23.8): dependencies: '@types/node': 18.19.42 '@types/node-fetch': 2.6.11 @@ -1544,6 +1726,8 @@ snapshots: form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0 + optionalDependencies: + zod: 3.23.8 transitivePeerDependencies: - encoding @@ -1612,11 +1796,11 @@ snapshots: source-map-js@1.2.0: {} - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.2)): + source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.11)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.2) + webpack: 5.93.0(@swc/core@1.7.11) source-map-support@0.5.21: dependencies: @@ -1645,24 +1829,24 @@ snapshots: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)): + swc-loader@0.2.6(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)): dependencies: - '@swc/core': 1.7.2 + '@swc/core': 1.7.11 '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.2) + webpack: 5.93.0(@swc/core@1.7.11) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.3 - webpack: 5.93.0(@swc/core@1.7.2) + webpack: 5.93.0(@swc/core@1.7.11) optionalDependencies: - '@swc/core': 1.7.2 + '@swc/core': 1.7.11 terser@5.31.3: dependencies: @@ -1687,7 +1871,7 @@ snapshots: dependencies: tslib: 2.6.3 - ts-node@10.9.2(@swc/core@1.7.2)(@types/node@20.14.12)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -1704,11 +1888,33 @@ snapshots: typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.11 + + ts-node@10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 14.18.63 + acorn: 8.12.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 optionalDependencies: '@swc/core': 1.7.2 tslib@2.6.3: {} + typescript@4.9.5: {} + typescript@5.5.4: {} undefsafe@2.0.5: {} @@ -1744,7 +1950,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.93.0(@swc/core@1.7.2): + webpack@5.93.0(@swc/core@1.7.11): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -1767,7 +1973,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.2)(webpack@5.93.0(@swc/core@1.7.2)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -1806,7 +2012,7 @@ snapshots: yn@3.1.1: {} - zod-to-json-schema@3.23.1(zod@3.23.8): + zod-to-json-schema@3.23.2(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/examples/hello/src/functions/getOpenaiKey.ts b/examples/hello/src/functions/getOpenaiKey.ts new file mode 100644 index 0000000..b4a4b0f --- /dev/null +++ b/examples/hello/src/functions/getOpenaiKey.ts @@ -0,0 +1,11 @@ +import "dotenv/config"; + +import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; + +export async function getOpenaiKey() { + const openaiKey = process.env.OPENAI_API_KEY; + if (!openaiKey) { + throw FunctionFailure.nonRetryable("OPENAI_API_KEY is not set"); + } + return openaiKey; +} diff --git a/examples/hello/src/functions/greet.ts b/examples/hello/src/functions/greet.ts deleted file mode 100644 index 01734e2..0000000 --- a/examples/hello/src/functions/greet.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { z } from "zod"; -import { UsageOutput, openaiChat } from "./openai/chat"; - -const zodSchema = z.object({ - message: z.string().describe("The greeting message."), -}); - -type MetadataOutput = { - output: z.infer; - usage: UsageOutput; -}; - -export async function greet({ - name, -}: { - name: string; -}): Promise { - const template = `Greet this person: ${name}. In 4 words or less.`; - - const openaiOutput = await openaiChat({ - zodSchema, - template, - }); - - return { - output: openaiOutput.response as MetadataOutput["output"], - usage: openaiOutput.usage, - }; -} diff --git a/examples/hello/src/functions/index.ts b/examples/hello/src/functions/index.ts index e67bb6c..98776fd 100644 --- a/examples/hello/src/functions/index.ts +++ b/examples/hello/src/functions/index.ts @@ -1,2 +1,2 @@ export * from "./goodbye"; -export * from "./greet"; +export * from "./getOpenaiKey"; diff --git a/examples/hello/src/functions/openai/chat.ts b/examples/hello/src/functions/openai/chat.ts deleted file mode 100644 index 1c87c94..0000000 --- a/examples/hello/src/functions/openai/chat.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { ZodObject } from "zod"; -import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; -import { zodPrompt } from "./zodPrompt"; -import { openaiClient } from "./client"; -import { openaiCost } from "./cost"; - -export type UsageOutput = { tokens: number; cost: number }; - -export const openaiChat = async ({ - zodSchema, - template, - model, -}: { - zodSchema: ZodObject; - template: string; - model?: string; -}): Promise<{ response: object; usage: UsageOutput }> => { - try { - const parserPrompt = await zodPrompt({ zodSchema }); - - // Default to gpt-4o model - const modelToUse = model ?? "gpt-4o-mini-2024-07-18"; - - const completion = await openaiClient.chat.completions.create({ - messages: [ - { role: "system", content: parserPrompt }, - { role: "user", content: template }, - ], - response_format: { type: "json_object" }, - model: modelToUse, - temperature: 0, - }); - - log.info("completion", { completion }); - - const assistantAnswer = completion.choices[0].message.content; - - try { - const parsedAnswer = JSON.parse(assistantAnswer!); - - return { - response: parsedAnswer, - usage: { - tokens: completion.usage?.total_tokens ?? 0, - cost: openaiCost({ - model: modelToUse, - tokensCountInput: completion.usage?.prompt_tokens ?? 0, - tokensCountOutput: completion.usage?.completion_tokens ?? 0, - }), - }, - }; - } catch (error) { - throw FunctionFailure.nonRetryable( - `Error parsing response: ${assistantAnswer}` - ); - } - } catch (error) { - throw FunctionFailure.nonRetryable(`Error OpenAI chat: ${error}`); - } -}; diff --git a/examples/hello/src/functions/openai/client.ts b/examples/hello/src/functions/openai/client.ts deleted file mode 100644 index cb68eec..0000000 --- a/examples/hello/src/functions/openai/client.ts +++ /dev/null @@ -1,8 +0,0 @@ -import OpenAI from "openai"; -import dotenv from "dotenv"; - -dotenv.config(); - -export const openaiClient = new OpenAI({ - apiKey: process.env.OPENAI_API_KEY ?? "", -}); diff --git a/examples/hello/src/functions/openai/cost.ts b/examples/hello/src/functions/openai/cost.ts deleted file mode 100644 index 94efed7..0000000 --- a/examples/hello/src/functions/openai/cost.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { ChatCompletionCreateParamsBase } from "openai/resources/chat/completions"; - -// https://openai.com/pricing as of 13/05/24 - -interface ModelPrices { - inputPrice: number; - outputPrice: number; -} - -type OpenAiModelName = ChatCompletionCreateParamsBase["model"]; - -//@ts-ignore -const modelPrices: Record = { - "gpt-4o-mini-2024-07-18": { - inputPrice: 0.00000015, - outputPrice: 0.0000006, - }, -}; - -export const openaiCost = ({ - model, - tokensCountInput, - tokensCountOutput, -}: { - model: OpenAiModelName; - tokensCountInput: number; - tokensCountOutput: number; -}): number => { - let cost = 0; - if (model && modelPrices[model]) { - const { inputPrice, outputPrice } = modelPrices[model]; - cost = tokensCountInput * inputPrice + tokensCountOutput * outputPrice; - } - - return cost; -}; diff --git a/examples/hello/src/functions/openai/zodPrompt.ts b/examples/hello/src/functions/openai/zodPrompt.ts deleted file mode 100644 index b742b45..0000000 --- a/examples/hello/src/functions/openai/zodPrompt.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { ZodObject } from "zod"; -import { zodToJsonSchema } from "zod-to-json-schema"; - -export const zodPrompt = async ({ - zodSchema, -}: { - zodSchema: ZodObject; -}): Promise => { - return `You must format your output as a JSON value that adheres to a given "JSON Schema" instance. - -"JSON Schema" is a declarative language that allows you to annotate and validate JSON documents. - -Your output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas! - -Here is the JSON Schema instance your output must adhere to. - -${JSON.stringify(zodToJsonSchema(zodSchema))} -`; -}; diff --git a/examples/hello/src/operator.ts b/examples/hello/src/operator.ts new file mode 100644 index 0000000..e630392 --- /dev/null +++ b/examples/hello/src/operator.ts @@ -0,0 +1,27 @@ +import Restack from "@restackio/restack-sdk-ts"; +import { goodbye, getOpenaiKey } from "./functions"; +import { openaiService } from "@restackio/integrations-openai"; +export const restack = new Restack(); + +async function main() { + const workflowsPath = require.resolve("./workflows"); + try { + await Promise.all([ + // Start service with current workflows and functions + restack.startService({ + workflowsPath, + functions: { goodbye, getOpenaiKey }, + }), + // Start the openai service + openaiService(), + ]); + + console.log("Services running successfully."); + } catch (e) { + console.error("Failed to run services", e); + } +} + +main().catch((err) => { + console.error("Error in main:", err); +}); diff --git a/examples/hello/src/worker.ts b/examples/hello/src/worker.ts deleted file mode 100644 index 7e9c264..0000000 --- a/examples/hello/src/worker.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Restack from "@restackio/restack-sdk-ts"; -import { greet, goodbye } from "./functions"; - -async function main() { - const workflowsPath = require.resolve("./workflows"); - - function calculateRpmToSecond(openaiRpm: number): number { - // RPD limit https://platform.openai.com/account/limits - const secondsInAMinute: number = 60; - return openaiRpm / secondsInAMinute; - } - - try { - const restack = new Restack(); - - await Promise.all([ - restack.startWorker({ - taskQueue: "restack", - workflowsPath, - functions: { goodbye }, - }), - - // Create a separate pod for all openAI functions and rate limit them - - restack.startWorker({ - taskQueue: "openai", - functions: { greet }, - // rate limit allows you to control the number of requests per second for all your function associated to this tool - - rateLimit: calculateRpmToSecond(5000), - }), - ]); - - console.log("Pods running successfully."); - } catch (e) { - console.error("Failed to run pod", e); - } -} - -main().catch((err) => { - console.error("Error in main:", err); -}); diff --git a/examples/hello/src/workflows/example.ts b/examples/hello/src/workflows/example.ts index 9e3f297..e93fa16 100644 --- a/examples/hello/src/workflows/example.ts +++ b/examples/hello/src/workflows/example.ts @@ -1,35 +1,48 @@ import { log, step } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../functions"; -import { UsageOutput } from "../functions/openai/chat"; +import { z } from "zod"; +import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; +import * as openaiFunctions from "@restackio/integrations-openai/functions"; +import zodToJsonSchema from "zod-to-json-schema"; interface Input { name: string; } -interface Output { - messages: string[]; - usage: UsageOutput; -} +export async function example({ name }: Input) { + // Need to get the openai key from the utils function otherwise breaks determinism + + const openaiKey = await step({}).getOpenaiKey(); + + const content = `Greet this person: ${name}. In 4 words or less.`; + + const MessageSchema = z.object({ + message: z.string().describe("The greeting message."), + }); + + const jsonSchema = { + name: "greet", + schema: zodToJsonSchema(MessageSchema), + }; -export async function example({ name }: Input): Promise { - // Step 1 call OpenAI + const openaiOutput = await step({ + taskQueue: openaiTaskQueue, + }).openaiChatCompletion({ + apiKey: openaiKey, + content, + jsonSchema, + }); - const { - output: { message: greetMessage }, - usage: greetUsage, - } = await step({ - taskQueue: `openai`, - scheduleToCloseTimeout: "1 minute", - }).greet({ name }); + const greetMessage = openaiOutput.response.choices[0].message.content ?? ""; + const greetUsage = openaiOutput.usage; log.info("greeted", { greetMessage }); // Step 2 create goodbye message with simple function - const { message: goodbyeMessage } = await step({ - taskQueue: `restack`, - scheduleToCloseTimeout: "1 minute", - }).goodbye({ name }); + const { message: goodbyeMessage } = await step({}).goodbye({ + name, + }); log.info("goodbye", { goodbyeMessage }); diff --git a/examples/hello/tsconfig.json b/examples/hello/tsconfig.json index a544b3a..f4d02b9 100644 --- a/examples/hello/tsconfig.json +++ b/examples/hello/tsconfig.json @@ -9,6 +9,6 @@ "rootDir": "./src", "resolveJsonModule": true }, - "include": ["src/**/*.ts", "src/server"], + "include": ["src/**/*.ts"], "exclude": ["node_modules"] } \ No newline at end of file From c17d657cab7b6ce527e411958df258031114a472 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 19 Aug 2024 12:49:14 +0200 Subject: [PATCH 042/122] bump openai integration Former-commit-id: 4f5b3794c409fb5e937ae5562cf8561178f0c0ed Former-commit-id: d6f407ebfc82920d64bafd89996d99517b27c7b1 --- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 10 +++++----- examples/hello/src/workflows/example.ts | 10 ++++------ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/hello/package.json b/examples/hello/package.json index c3e92c3..3a650f1 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -19,7 +19,7 @@ ] }, "dependencies": { - "@restackio/integrations-openai": "^0.0.1", + "@restackio/integrations-openai": "^0.0.2", "@restackio/restack-sdk-ts": "^0.0.48", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 702cf24..c1b4695 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/integrations-openai': - specifier: ^0.0.1 - version: 0.0.1(zod@3.23.8) + specifier: ^0.0.2 + version: 0.0.2(zod@3.23.8) '@restackio/restack-sdk-ts': specifier: ^0.0.48 version: 0.0.48 @@ -155,8 +155,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.1': - resolution: {integrity: sha512-JH5Tye4If39AsAlRhDDtxbuJIbaNR7anDqRDPTAFMOv7ry42iOiApwJ2TNwgGRJo+4cSOv9uCwG8/wwdi/WQHg==} + '@restackio/integrations-openai@0.0.2': + resolution: {integrity: sha512-gTckODl8fGTOxiaVuLtqk4cCm+c49Eymnp58uxtWgea/yV8WlOrLygE3i9/FS9RMvWyXjcJB2rnN7M/c43j+yA==} '@restackio/restack-sdk-ts@0.0.40': resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} @@ -1121,7 +1121,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.1(zod@3.23.8)': + '@restackio/integrations-openai@0.0.2(zod@3.23.8)': dependencies: openai: 4.56.0(zod@3.23.8) transitivePeerDependencies: diff --git a/examples/hello/src/workflows/example.ts b/examples/hello/src/workflows/example.ts index e93fa16..b3ac0bb 100644 --- a/examples/hello/src/workflows/example.ts +++ b/examples/hello/src/workflows/example.ts @@ -27,14 +27,14 @@ export async function example({ name }: Input) { const openaiOutput = await step({ taskQueue: openaiTaskQueue, - }).openaiChatCompletion({ + }).openaiChatCompletionsBase({ apiKey: openaiKey, content, jsonSchema, }); - const greetMessage = openaiOutput.response.choices[0].message.content ?? ""; - const greetUsage = openaiOutput.usage; + const greetMessage = openaiOutput.result.choices[0].message.content ?? ""; + const greetCost = openaiOutput.cost; log.info("greeted", { greetMessage }); @@ -48,8 +48,6 @@ export async function example({ name }: Input) { return { messages: [greetMessage, goodbyeMessage], - usage: { - ...greetUsage, - }, + cost: greetCost, }; } From aedc503c0fc9d7119873ada05600051a942026e9 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 19 Aug 2024 22:48:42 +0200 Subject: [PATCH 043/122] multi user Former-commit-id: be2d218e2ac472677cd2c63e253e29c0cdeb8c04 Former-commit-id: f566f9767d5066da7daec5ea6280a6a638edfaf6 --- examples/hello/package.json | 4 +- examples/voice/package.json | 17 +- examples/voice/pnpm-lock.yaml | 363 ++++++++++-------- examples/voice/readme.md | 2 +- .../voice/src/functions/deepgram/client.ts | 10 - .../voice/src/functions/deepgram/index.ts | 2 - .../voice/src/functions/deepgram/listen.ts | 47 --- .../voice/src/functions/deepgram/speak.ts | 71 ---- examples/voice/src/functions/index.ts | 4 - examples/voice/src/functions/openai/chat.ts | 152 -------- examples/voice/src/functions/openai/client.ts | 10 - examples/voice/src/functions/openai/index.ts | 1 - examples/voice/src/functions/openai/prompt.ts | 5 - .../functions/openai/utils/aggregateStream.ts | 26 -- .../functions/openai/utils/mergeToolCalls.ts | 31 -- examples/voice/src/functions/twilio/index.ts | 1 - .../voice/src/functions/twilio/twilioCall.ts | 36 -- .../functions/utils/sendEventToWorkflow.ts | 25 +- .../voice/src/functions/websocket/connect.ts | 28 -- .../voice/src/functions/websocket/index.ts | 3 - .../src/functions/websocket/listenMedia.ts | 64 --- .../src/functions/websocket/sendAudio.ts | 22 -- .../src/functions/websocket/sendEvent.ts | 23 -- examples/voice/src/operator.ts | 48 +++ examples/voice/src/server.ts | 40 +- examples/voice/src/worker.ts | 76 ---- examples/voice/src/workflows/agent/agent.ts | 185 ++++++--- examples/voice/src/workflows/agent/events.ts | 26 +- examples/voice/src/workflows/stream/events.ts | 21 +- examples/voice/src/workflows/stream/stream.ts | 238 ++++++++---- 30 files changed, 597 insertions(+), 984 deletions(-) delete mode 100644 examples/voice/src/functions/deepgram/client.ts delete mode 100644 examples/voice/src/functions/deepgram/index.ts delete mode 100644 examples/voice/src/functions/deepgram/listen.ts delete mode 100644 examples/voice/src/functions/deepgram/speak.ts delete mode 100644 examples/voice/src/functions/openai/chat.ts delete mode 100644 examples/voice/src/functions/openai/client.ts delete mode 100644 examples/voice/src/functions/openai/index.ts delete mode 100644 examples/voice/src/functions/openai/utils/aggregateStream.ts delete mode 100644 examples/voice/src/functions/openai/utils/mergeToolCalls.ts delete mode 100644 examples/voice/src/functions/twilio/index.ts delete mode 100644 examples/voice/src/functions/twilio/twilioCall.ts delete mode 100644 examples/voice/src/functions/websocket/connect.ts delete mode 100644 examples/voice/src/functions/websocket/index.ts delete mode 100644 examples/voice/src/functions/websocket/listenMedia.ts delete mode 100644 examples/voice/src/functions/websocket/sendAudio.ts delete mode 100644 examples/voice/src/functions/websocket/sendEvent.ts create mode 100644 examples/voice/src/operator.ts delete mode 100644 examples/voice/src/worker.ts diff --git a/examples/hello/package.json b/examples/hello/package.json index 3a650f1..e25a031 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -6,8 +6,8 @@ "scripts": { "start.watch": "nodemon src/operator.ts", "dev": "pnpm start.watch", + "clean": "rm -rf node_modules", "workflow": "ts-node ./scheduleWorkflow.ts", - "test": "echo \"Error: no test specified\" && exit 1" }, "nodemonConfig": { "execMap": { @@ -20,7 +20,7 @@ }, "dependencies": { "@restackio/integrations-openai": "^0.0.2", - "@restackio/restack-sdk-ts": "^0.0.48", + "@restackio/restack-sdk-ts": "^0.0.53", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", "zod": "^3.23.8", diff --git a/examples/voice/package.json b/examples/voice/package.json index ac65b2d..bcbc39a 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -5,7 +5,8 @@ "main": "index.js", "scripts": { "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", - "dev-worker": "ts-node-dev --respawn --transpile-only src/worker.ts", + "dev-op": "ts-node-dev --respawn --transpile-only src/operator.ts", + "clean": "rm -rf node_modules", "call": "ts-node ./callWorkflow.ts", "ngrok": "ngrok http 4000" }, @@ -14,13 +15,17 @@ "license": "ISC", "dependencies": { "@deepgram/sdk": "^3.5.1", - "@restackio/restack-sdk-ts": "^0.0.39", - "@temporalio/workflow": "1.10.3", - "axios": "^1.7.3", + "@restackio/integrations-deepgram": "^0.0.5", + "@restackio/integrations-openai": "^0.0.11", + "@restackio/integrations-twilio": "^0.0.1", + "@restackio/integrations-websocket": "^0.0.6", + "@restackio/restack-sdk-ts": "^0.0.53", + "@temporalio/workflow": "1.11.1", + "axios": "^1.7.4", "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.19.2", - "openai": "^4.55.4", + "openai": "^4.56.0", "twilio": "^5.2.2", "typescript": "^5.5.4", "uuid": "^10.0.0", @@ -30,7 +35,7 @@ "devDependencies": { "@types/cors": "^2.8.17", "@types/express": "^4.17.21", - "@types/node": "^22.2.0", + "@types/node": "^22.4.1", "@types/uuid": "^10.0.0", "@types/ws": "^8.5.12", "nodemon": "^3.1.4", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 2a35370..eb08cc1 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -11,15 +11,27 @@ importers: '@deepgram/sdk': specifier: ^3.5.1 version: 3.5.1(bufferutil@4.0.8)(encoding@0.1.12) + '@restackio/integrations-deepgram': + specifier: ^0.0.5 + version: 0.0.5(bufferutil@4.0.8)(encoding@0.1.12) + '@restackio/integrations-openai': + specifier: ^0.0.11 + version: 0.0.11(encoding@0.1.12)(zod@3.23.8) + '@restackio/integrations-twilio': + specifier: ^0.0.1 + version: 0.0.1 + '@restackio/integrations-websocket': + specifier: ^0.0.6 + version: 0.0.6(bufferutil@4.0.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.39 - version: 0.0.39 + specifier: ^0.0.53 + version: 0.0.53 '@temporalio/workflow': - specifier: 1.10.3 - version: 1.10.3 + specifier: 1.11.1 + version: 1.11.1 axios: - specifier: ^1.7.3 - version: 1.7.3 + specifier: ^1.7.4 + version: 1.7.4 cors: specifier: ^2.8.5 version: 2.8.5 @@ -30,8 +42,8 @@ importers: specifier: ^4.19.2 version: 4.19.2 openai: - specifier: ^4.55.4 - version: 4.55.4(encoding@0.1.12)(zod@3.23.8) + specifier: ^4.56.0 + version: 4.56.0(encoding@0.1.12)(zod@3.23.8) twilio: specifier: ^5.2.2 version: 5.2.2 @@ -59,8 +71,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^22.2.0 - version: 22.2.0 + specifier: ^22.4.1 + version: 22.4.1 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 @@ -72,10 +84,10 @@ importers: version: 3.1.4 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4) ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4) + version: 2.0.0(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4) packages: @@ -175,72 +187,84 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.39': - resolution: {integrity: sha512-VBoMP/kYJT61Lp44grnQujALxKn0YKhoqMFHFt9WHgBI0yKf98yabuQdRt8zNWFs9aZGX/cERakMtSt1P3ByTQ==} + '@restackio/integrations-deepgram@0.0.5': + resolution: {integrity: sha512-2PQMOcvKYqj7pqEFQsgT3fNhkfgvs1j1Wmv+g9fTUlyfKIbQpLRY56rQRGXs/Nt895rTiaCdM81Y8zR4FhzjPw==} + + '@restackio/integrations-openai@0.0.11': + resolution: {integrity: sha512-vq30Wx3amf6vAhdSUYfpQPMQxex95LBJGbYS9CQCj23R8PitL06jckuR5QF/fGd4C2IOt8rrI8gBNUpM6QIO6A==} + + '@restackio/integrations-twilio@0.0.1': + resolution: {integrity: sha512-Xgv8Z4ZGm3TD69Sp+S9RI7v61sLT7TxRKkHmyU707Ng1Zfcz/agjeP7YjO380ye2v1YVPzWqG18+O+iAVlCJ/Q==} + + '@restackio/integrations-websocket@0.0.6': + resolution: {integrity: sha512-ik6DZF0b1gX/9g+uDo437M7uUClgTm5CoaDd1WlauW/4S+cT0/PJu5q6TKNF2BvKydJZUla61eXDydV3TaScOg==} + + '@restackio/restack-sdk-ts@0.0.53': + resolution: {integrity: sha512-gtFU4vinWaR8zM6sNH/wFMmA/EMBp+JyL+qszb4ambLd824CijUGwwEmJhIDUTS1L7Eg6Ki6mrNTaWEh8BdaHg==} engines: {node: '>=20'} - '@swc/core-darwin-arm64@1.7.10': - resolution: {integrity: sha512-TYp4x/9w/C/yMU1olK5hTKq/Hi7BjG71UJ4V1U1WxI1JA3uokjQ/GoktDfmH5V5pX4dgGSOJwUe2RjoN8Z/XnA==} + '@swc/core-darwin-arm64@1.7.14': + resolution: {integrity: sha512-V0OUXjOH+hdGxDYG8NkQzy25mKOpcNKFpqtZEzLe5V/CpLJPnpg1+pMz70m14s9ZFda9OxsjlvPbg1FLUwhgIQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.10': - resolution: {integrity: sha512-P3LJjAWh5yLc6p5IUwV5LgRfA3R1oDCZDMabYyb2BVQuJTD4MfegW9DhBcUUF5dhBLwq3191KpLVzE+dLTbiXw==} + '@swc/core-darwin-x64@1.7.14': + resolution: {integrity: sha512-9iFvUnxG6FC3An5ogp5jbBfQuUmTTwy8KMB+ZddUoPB3NR1eV+Y9vOh/tfWcenSJbgOKDLgYC5D/b1mHAprsrQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.10': - resolution: {integrity: sha512-yGOFjE7w/akRTmqGY3FvWYrqbxO7OB2N2FHj2LO5HtzXflfoABb5RyRvdEquX+17J6mEpu4EwjYNraTD/WHIEQ==} + '@swc/core-linux-arm-gnueabihf@1.7.14': + resolution: {integrity: sha512-zGJsef9qPivKSH8Vv4F/HiBXBTHZ5Hs3ZjVGo/UIdWPJF8fTL9OVADiRrl34Q7zOZEtGXRwEKLUW1SCQcbDvZA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.10': - resolution: {integrity: sha512-SPWsgWHfdWKKjLrYlvhxcdBJ7Ruy6crJbPoE9NfD95eJEjMnS2yZTqj2ChFsY737WeyhWYlHzgYhYOVCp83YwQ==} + '@swc/core-linux-arm64-gnu@1.7.14': + resolution: {integrity: sha512-AxV3MPsoI7i4B8FXOew3dx3N8y00YoJYvIPfxelw07RegeCEH3aHp2U2DtgbP/NV1ugZMx0TL2Z2DEvocmA51g==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.10': - resolution: {integrity: sha512-PUi50bkNqnBL3Z/Zq6jSfwgN9A/taA6u2Zou0tjDJi7oVdpjdr7SxNgCGzMJ/nNg5D/IQn1opM1jktMvpsPAuQ==} + '@swc/core-linux-arm64-musl@1.7.14': + resolution: {integrity: sha512-JDLdNjUj3zPehd4+DrQD8Ltb3B5lD8D05IwePyDWw+uR/YPc7w/TX1FUVci5h3giJnlMCJRvi1IQYV7K1n7KtQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.10': - resolution: {integrity: sha512-Sc+pY55gknCAmBQBR6DhlA7jZSxHaLSDb5Sevzi6DOFMXR79NpA6zWTNKwp1GK2AnRIkbAfvYLgOxS5uWTFVpg==} + '@swc/core-linux-x64-gnu@1.7.14': + resolution: {integrity: sha512-Siy5OvPCLLWmMdx4msnEs8HvEVUEigSn0+3pbLjv78iwzXd0qSBNHUPZyC1xeurVaUbpNDxZTpPRIwpqNE2+Og==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.10': - resolution: {integrity: sha512-g5NKx2LXaGd0K26hmEts1Cvb7ptIvq3MHSgr6/D1tRPcDZw1Sp0dYsmyOv0ho4F5GOJyiCooG3oE9FXdb7jIpQ==} + '@swc/core-linux-x64-musl@1.7.14': + resolution: {integrity: sha512-FtEGm9mwtRYQNK43WMtUIadxHs/ja2rnDurB99os0ZoFTGG2IHuht2zD97W0wB8JbqEabT1XwSG9Y5wmN+ciEQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.10': - resolution: {integrity: sha512-plRIsOcfy9t9Q/ivm5DA7I0HaIvfAWPbI+bvVRrr3C/1K2CSqnqZJjEWOAmx2LiyipijNnEaFYuLBp0IkGuJpg==} + '@swc/core-win32-arm64-msvc@1.7.14': + resolution: {integrity: sha512-Jp8KDlfq7Ntt2/BXr0y344cYgB1zf0DaLzDZ1ZJR6rYlAzWYSccLYcxHa97VGnsYhhPspMpmCvHid97oe2hl4A==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.10': - resolution: {integrity: sha512-GntrVNT23viHtbfzmlK8lfBiKeajH24GzbDT7qXhnoO20suUPcyYZxyvCb4gWM2zu8ZBTPHNlqfrNsriQCZ+lQ==} + '@swc/core-win32-ia32-msvc@1.7.14': + resolution: {integrity: sha512-I+cFsXF0OU0J9J4zdWiQKKLURO5dvCujH9Jr8N0cErdy54l9d4gfIxdctfTF+7FyXtWKLTCkp+oby9BQhkFGWA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.10': - resolution: {integrity: sha512-uXIF8GuSappe1imm6Lf7pHGepfCBjDQlS+qTqvEGE0wZAsL1IVATK9P/cH/OCLfJXeQDTLeSYmrpwjtXNt46tQ==} + '@swc/core-win32-x64-msvc@1.7.14': + resolution: {integrity: sha512-NNrprQCK6d28mG436jVo2TD+vACHseUECacEBGZ9Ef0qfOIWS1XIt2MisQKG0Oea2VvLFl6tF/V4Lnx/H0Sn3Q==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.10': - resolution: {integrity: sha512-l0xrFwBQ9atizhmV94yC2nwcecTk/oftofwMNPiFMGe56dqdmi2ArHaTV3PCtMlgaUH6rGCehoRMt5OrCI1ktg==} + '@swc/core@1.7.14': + resolution: {integrity: sha512-9aeXeifnyuvc2pcuuhPQgVUwdpGEzZ+9nJu0W8/hNl/aESFsJGR5i9uQJRGu0atoNr01gK092fvmqMmQAPcKow==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -254,27 +278,27 @@ packages: '@swc/types@0.1.12': resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - '@temporalio/activity@1.10.3': - resolution: {integrity: sha512-2wGEnH3lzfRkAPsM29Uih4jaXPjsRDCsXdSFJqmHz2fxcfodcjSjgTAJERFKRVOb9JfYmzsITRIrkKAfs3kvxA==} + '@temporalio/activity@1.11.1': + resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} - '@temporalio/client@1.10.3': - resolution: {integrity: sha512-0xGYlURFoHrWByIJB3vNCaY7p9lnUkvrlA4uVAG92AwI0z/kcXdkUwn+VTOBBJi83iX6NZ0QS47HA6sCr00OPw==} + '@temporalio/client@1.11.1': + resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} - '@temporalio/common@1.10.3': - resolution: {integrity: sha512-0LF4UZQomMy+K3dGR0PGkBAqBByavjldeUKyMONtDrVqtq4sO2+2NtLW9mvmXGCH15jsabye1pQZdZxlTGP/CQ==} + '@temporalio/common@1.11.1': + resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} - '@temporalio/core-bridge@1.10.3': - resolution: {integrity: sha512-TJV8Th8h0pv6gwwEqcTUIbOZVqfKj/6qWgNBnZuHi3BYd1WKzvXGGg0r1gorwlfapaC3Mms/Rqed9Xlnl9xjDQ==} + '@temporalio/core-bridge@1.11.1': + resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} - '@temporalio/proto@1.10.3': - resolution: {integrity: sha512-ugp04SpQFNmOa0+/kpg2vLfWMBPD2UW4s4XRaN23v9RREZ0HqV+DB+ZTT+03F9jeZlIFB0hxbF1Xd65tAF6fKg==} + '@temporalio/proto@1.11.1': + resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} - '@temporalio/worker@1.10.3': - resolution: {integrity: sha512-IGHSpp9usFcn1kuYs234xOP2xjBJVyEtjborV8ZEFi9Eu01s7BfrNrVZUMQjs6dRTOCvvvkiFhU3MNuyk2qkWA==} + '@temporalio/worker@1.11.1': + resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} engines: {node: '>= 16.0.0'} - '@temporalio/workflow@1.10.3': - resolution: {integrity: sha512-XnP1Srb4r1dhl4g5U/KDTSSJ9zixIeqBd5lfC0wol257ItjfJPJgXAYUNg0YqPg4HyE77OlG7Qh6qhyAU80ubg==} + '@temporalio/workflow@1.11.1': + resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -324,11 +348,11 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@18.19.44': - resolution: {integrity: sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==} + '@types/node@18.19.45': + resolution: {integrity: sha512-VZxPKNNhjKmaC1SUYowuXSRSMGyQGmQjvvA1xE4QZ0xce2kLtEhPDS+kqpCPBZYgqblCLQ2DAjSzmgCM5auvhA==} - '@types/node@22.2.0': - resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} + '@types/node@22.4.1': + resolution: {integrity: sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==} '@types/qs@6.9.15': resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} @@ -467,8 +491,8 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - axios@1.7.3: - resolution: {integrity: sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==} + axios@1.7.4: + resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -629,8 +653,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.6: - resolution: {integrity: sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==} + electron-to-chromium@1.5.11: + resolution: {integrity: sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1029,8 +1053,8 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - openai@4.55.4: - resolution: {integrity: sha512-TEC75Y6U/OKIJp9fHao3zkTYfKLYGqXdD2TI+xN2Zd5W8KNKvv6E4/OBTOW7jg7fySfrBrhy5fYzBbyBcdHEtQ==} + openai@4.56.0: + resolution: {integrity: sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -1243,8 +1267,8 @@ packages: uglify-js: optional: true - terser@5.31.5: - resolution: {integrity: sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==} + terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} engines: {node: '>=10'} hasBin: true @@ -1329,8 +1353,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.13.0: - resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} unionfs@4.5.4: resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} @@ -1367,8 +1391,8 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} web-streams-polyfill@4.0.0-beta.3: @@ -1548,63 +1572,92 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.39': + '@restackio/integrations-deepgram@0.0.5(bufferutil@4.0.8)(encoding@0.1.12)': + dependencies: + '@deepgram/sdk': 3.5.1(bufferutil@4.0.8)(encoding@0.1.12) + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@restackio/integrations-openai@0.0.11(encoding@0.1.12)(zod@3.23.8)': + dependencies: + openai: 4.56.0(encoding@0.1.12)(zod@3.23.8) + transitivePeerDependencies: + - encoding + - zod + + '@restackio/integrations-twilio@0.0.1': + dependencies: + twilio: 5.2.2 + transitivePeerDependencies: + - debug + - supports-color + + '@restackio/integrations-websocket@0.0.6(bufferutil@4.0.8)': + dependencies: + ws: 8.18.0(bufferutil@4.0.8) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@restackio/restack-sdk-ts@0.0.53': dependencies: - '@temporalio/activity': 1.10.3 - '@temporalio/client': 1.10.3 - '@temporalio/worker': 1.10.3 - '@temporalio/workflow': 1.10.3 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1 + '@temporalio/workflow': 1.11.1 transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@swc/core-darwin-arm64@1.7.10': + '@swc/core-darwin-arm64@1.7.14': optional: true - '@swc/core-darwin-x64@1.7.10': + '@swc/core-darwin-x64@1.7.14': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.10': + '@swc/core-linux-arm-gnueabihf@1.7.14': optional: true - '@swc/core-linux-arm64-gnu@1.7.10': + '@swc/core-linux-arm64-gnu@1.7.14': optional: true - '@swc/core-linux-arm64-musl@1.7.10': + '@swc/core-linux-arm64-musl@1.7.14': optional: true - '@swc/core-linux-x64-gnu@1.7.10': + '@swc/core-linux-x64-gnu@1.7.14': optional: true - '@swc/core-linux-x64-musl@1.7.10': + '@swc/core-linux-x64-musl@1.7.14': optional: true - '@swc/core-win32-arm64-msvc@1.7.10': + '@swc/core-win32-arm64-msvc@1.7.14': optional: true - '@swc/core-win32-ia32-msvc@1.7.10': + '@swc/core-win32-ia32-msvc@1.7.14': optional: true - '@swc/core-win32-x64-msvc@1.7.10': + '@swc/core-win32-x64-msvc@1.7.14': optional: true - '@swc/core@1.7.10': + '@swc/core@1.7.14': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.10 - '@swc/core-darwin-x64': 1.7.10 - '@swc/core-linux-arm-gnueabihf': 1.7.10 - '@swc/core-linux-arm64-gnu': 1.7.10 - '@swc/core-linux-arm64-musl': 1.7.10 - '@swc/core-linux-x64-gnu': 1.7.10 - '@swc/core-linux-x64-musl': 1.7.10 - '@swc/core-win32-arm64-msvc': 1.7.10 - '@swc/core-win32-ia32-msvc': 1.7.10 - '@swc/core-win32-x64-msvc': 1.7.10 + '@swc/core-darwin-arm64': 1.7.14 + '@swc/core-darwin-x64': 1.7.14 + '@swc/core-linux-arm-gnueabihf': 1.7.14 + '@swc/core-linux-arm64-gnu': 1.7.14 + '@swc/core-linux-arm64-musl': 1.7.14 + '@swc/core-linux-x64-gnu': 1.7.14 + '@swc/core-linux-x64-musl': 1.7.14 + '@swc/core-win32-arm64-msvc': 1.7.14 + '@swc/core-win32-ia32-msvc': 1.7.14 + '@swc/core-win32-x64-msvc': 1.7.14 '@swc/counter@0.1.3': {} @@ -1612,68 +1665,68 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@temporalio/activity@1.10.3': + '@temporalio/activity@1.11.1': dependencies: - '@temporalio/common': 1.10.3 + '@temporalio/common': 1.11.1 abort-controller: 3.0.0 - '@temporalio/client@1.10.3': + '@temporalio/client@1.11.1': dependencies: '@grpc/grpc-js': 1.11.1 - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 abort-controller: 3.0.0 long: 5.2.3 uuid: 9.0.1 - '@temporalio/common@1.10.3': + '@temporalio/common@1.11.1': dependencies: - '@temporalio/proto': 1.10.3 + '@temporalio/proto': 1.11.1 long: 5.2.3 ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.10.3': + '@temporalio/core-bridge@1.11.1': dependencies: - '@temporalio/common': 1.10.3 + '@temporalio/common': 1.11.1 arg: 5.0.2 cargo-cp-artifact: 0.1.9 which: 4.0.0 - '@temporalio/proto@1.10.3': + '@temporalio/proto@1.11.1': dependencies: long: 5.2.3 protobufjs: 7.3.2 - '@temporalio/worker@1.10.3': + '@temporalio/worker@1.11.1': dependencies: - '@swc/core': 1.7.10 - '@temporalio/activity': 1.10.3 - '@temporalio/client': 1.10.3 - '@temporalio/common': 1.10.3 - '@temporalio/core-bridge': 1.10.3 - '@temporalio/proto': 1.10.3 - '@temporalio/workflow': 1.10.3 + '@swc/core': 1.7.14 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/common': 1.11.1 + '@temporalio/core-bridge': 1.11.1 + '@temporalio/proto': 1.11.1 + '@temporalio/workflow': 1.11.1 abort-controller: 3.0.0 heap-js: 2.5.0 memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.10)) + source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.14)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)) + swc-loader: 0.2.6(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)) unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.10) + webpack: 5.93.0(@swc/core@1.7.14) transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@temporalio/workflow@1.10.3': + '@temporalio/workflow@1.11.1': dependencies: - '@temporalio/common': 1.10.3 - '@temporalio/proto': 1.10.3 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 '@tsconfig/node10@1.0.11': {} @@ -1686,15 +1739,15 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.2.0 + '@types/node': 22.4.1 '@types/connect@3.4.38': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.4.1 '@types/cors@2.8.17': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.4.1 '@types/eslint-scope@3.7.7': dependencies: @@ -1710,7 +1763,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.4.1 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -1730,16 +1783,16 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.4.1 form-data: 4.0.0 - '@types/node@18.19.44': + '@types/node@18.19.45': dependencies: undici-types: 5.26.5 - '@types/node@22.2.0': + '@types/node@22.4.1': dependencies: - undici-types: 6.13.0 + undici-types: 6.19.8 '@types/qs@6.9.15': {} @@ -1748,12 +1801,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.2.0 + '@types/node': 22.4.1 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.2.0 + '@types/node': 22.4.1 '@types/send': 0.17.4 '@types/strip-bom@3.0.0': {} @@ -1764,7 +1817,7 @@ snapshots: '@types/ws@8.5.12': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.4.1 '@webassemblyjs/ast@1.12.1': dependencies: @@ -1905,7 +1958,7 @@ snapshots: asynckit@0.4.0: {} - axios@1.7.3: + axios@1.7.4: dependencies: follow-redirects: 1.15.6 form-data: 4.0.0 @@ -1946,7 +1999,7 @@ snapshots: browserslist@4.23.3: dependencies: caniuse-lite: 1.0.30001651 - electron-to-chromium: 1.5.6 + electron-to-chromium: 1.5.11 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -2070,7 +2123,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.6: {} + electron-to-chromium@1.5.11: {} emoji-regex@8.0.0: {} @@ -2312,7 +2365,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.2.0 + '@types/node': 22.4.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2449,9 +2502,9 @@ snapshots: dependencies: wrappy: 1.0.2 - openai@4.55.4(encoding@0.1.12)(zod@3.23.8): + openai@4.56.0(encoding@0.1.12)(zod@3.23.8): dependencies: - '@types/node': 18.19.44 + '@types/node': 18.19.45 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -2491,7 +2544,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.2.0 + '@types/node': 22.4.1 long: 5.2.3 proxy-addr@2.0.7: @@ -2615,11 +2668,11 @@ snapshots: source-map-js@1.2.0: {} - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.10)): + source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.14)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.10) + webpack: 5.93.0(@swc/core@1.7.14) source-map-support@0.5.21: dependencies: @@ -2656,26 +2709,26 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)): + swc-loader@0.2.6(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)): dependencies: - '@swc/core': 1.7.10 + '@swc/core': 1.7.14 '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.10) + webpack: 5.93.0(@swc/core@1.7.14) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.5 - webpack: 5.93.0(@swc/core@1.7.10) + terser: 5.31.6 + webpack: 5.93.0(@swc/core@1.7.14) optionalDependencies: - '@swc/core': 1.7.10 + '@swc/core': 1.7.14 - terser@5.31.5: + terser@5.31.6: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -2702,7 +2755,7 @@ snapshots: tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4): + ts-node-dev@2.0.0(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -2712,7 +2765,7 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4) tsconfig: 7.0.0 typescript: 5.5.4 transitivePeerDependencies: @@ -2720,14 +2773,14 @@ snapshots: - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.7.10)(@types/node@22.2.0)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.2.0 + '@types/node': 22.4.1 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 @@ -2738,7 +2791,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.10 + '@swc/core': 1.7.14 tsconfig@7.0.0: dependencies: @@ -2751,7 +2804,7 @@ snapshots: twilio@5.2.2: dependencies: - axios: 1.7.3 + axios: 1.7.4 dayjs: 1.11.12 https-proxy-agent: 5.0.1 jsonwebtoken: 9.0.2 @@ -2773,7 +2826,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.13.0: {} + undici-types@6.19.8: {} unionfs@4.5.4: dependencies: @@ -2801,7 +2854,7 @@ snapshots: vary@1.1.2: {} - watchpack@2.4.1: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -2812,7 +2865,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.93.0(@swc/core@1.7.10): + webpack@5.93.0(@swc/core@1.7.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -2835,8 +2888,8 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.10)(webpack@5.93.0(@swc/core@1.7.10)) - watchpack: 2.4.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)) + watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' diff --git a/examples/voice/readme.md b/examples/voice/readme.md index 09b3219..9da11af 100644 --- a/examples/voice/readme.md +++ b/examples/voice/readme.md @@ -5,7 +5,7 @@ pnpm i Add OPENAI_API_KEY and DEEPGRAM_API_KEY keys in .env pnpm dev-server -pnpm dev-worker +pnpm dev-op # Use frontend with browser microphone: diff --git a/examples/voice/src/functions/deepgram/client.ts b/examples/voice/src/functions/deepgram/client.ts deleted file mode 100644 index 29e3ca5..0000000 --- a/examples/voice/src/functions/deepgram/client.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { createClient, DeepgramClient } from "@deepgram/sdk"; - -let clientDeepgram: DeepgramClient; - -export function deepgramClient() { - if (!clientDeepgram) { - clientDeepgram = createClient(process.env.DEEPGRAM_API_KEY); - } - return clientDeepgram; -} diff --git a/examples/voice/src/functions/deepgram/index.ts b/examples/voice/src/functions/deepgram/index.ts deleted file mode 100644 index 89ff4ad..0000000 --- a/examples/voice/src/functions/deepgram/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./speak"; -export * from "./listen"; diff --git a/examples/voice/src/functions/deepgram/listen.ts b/examples/voice/src/functions/deepgram/listen.ts deleted file mode 100644 index 5d30ccb..0000000 --- a/examples/voice/src/functions/deepgram/listen.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; -import { Buffer } from "node:buffer"; -import "dotenv/config"; -import { deepgramClient } from "./client"; - -export async function deepgramListen({ - streamSid, - payload, -}: { - streamSid: string; - payload: string; -}) { - if (!payload) { - throw FunctionFailure.nonRetryable("No audio file"); - } - - try { - const decodedBuffer = Buffer.from(payload, "base64"); - const deepgram = deepgramClient(); - const response = await deepgram.listen.prerecorded.transcribeFile( - decodedBuffer, - { - encoding: "mulaw", - sample_rate: 8000, - model: "nova-2", - punctuate: true, - interim_results: true, - endpointing: 500, - utterance_end_ms: 2000, - } - ); - - if (response.error) { - log.error("deepgramListen error", { error: response.error }); - } - - const results = response.result?.results; - const transcript = results?.channels?.[0]?.alternatives?.[0]?.transcript; - - return { - streamSid, - finalResult: transcript ?? "", - }; - } catch (error) { - throw new Error(`Deepgram TTS error ${error}`); - } -} diff --git a/examples/voice/src/functions/deepgram/speak.ts b/examples/voice/src/functions/deepgram/speak.ts deleted file mode 100644 index d9445ae..0000000 --- a/examples/voice/src/functions/deepgram/speak.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { FunctionFailure, log } from "@restackio/restack-sdk-ts/function"; -import { Buffer } from "node:buffer"; -import "dotenv/config"; -import { deepgramClient } from "./client"; - -const getAudioBuffer = async (stream: ReadableStream) => { - const reader = stream.getReader(); - const chunks = []; - - while (true) { - const { done, value } = await reader.read(); - if (done) break; - - chunks.push(value); - } - - const dataArray = chunks.reduce( - (acc, chunk) => Uint8Array.from([...acc, ...chunk]), - new Uint8Array(0) - ); - - const buffer = Buffer.from(dataArray.buffer); - return buffer; -}; - -export async function deepgramSpeak({ - streamSid, - text, -}: { - streamSid: string; - text: string; -}): Promise<{ streamSid: string; audio: string }> { - if (!text.length) { - log.error("Text is empty"); - throw FunctionFailure.nonRetryable("Text is empty"); - } - const deepgramModel = "aura-arcas-en"; - - try { - const deepgram = deepgramClient(); - const response = await deepgram.speak.request( - { text }, - { - model: deepgramModel, - encoding: "mulaw", - sample_rate: 8000, - container: "none", - } - ); - const stream = await response.getStream(); - - if (!stream) { - log.error("Deepgram speak stream error", { response }); - throw new Error(`Deepgram speak stream error ${response}`); - } - - const buffer = await getAudioBuffer(stream); - if (!buffer) { - log.error("Deepgram audio buffer error", { stream }); - throw new Error(`Deepgram audio buffer error ${stream}`); - } - const base64String = buffer.toString("base64"); - log.info("deepgramSpeak: ", { - audioLength: base64String.length, - }); - return { streamSid, audio: base64String }; - } catch (error) { - log.error("Deepgram TTS error", { error }); - throw new Error(`Deepgram TTS error ${error}`); - } -} diff --git a/examples/voice/src/functions/index.ts b/examples/voice/src/functions/index.ts index 09d3345..d3369aa 100644 --- a/examples/voice/src/functions/index.ts +++ b/examples/voice/src/functions/index.ts @@ -1,6 +1,2 @@ -export * from "./deepgram"; -export * from "./twilio"; -export * from "./openai"; -export * from "./websocket"; export * from "./erp"; export * from "./utils"; diff --git a/examples/voice/src/functions/openai/chat.ts b/examples/voice/src/functions/openai/chat.ts deleted file mode 100644 index eca2142..0000000 --- a/examples/voice/src/functions/openai/chat.ts +++ /dev/null @@ -1,152 +0,0 @@ -import OpenAI from "openai"; -import "dotenv/config"; -import { agentPrompt } from "./prompt"; -import { currentWorkflow, log } from "@restackio/restack-sdk-ts/function"; -import { Answer, answerEvent } from "../../workflows/stream/events"; -import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; -import { toolCallEvent } from "../../workflows/agent/events"; -import { aggregateStreamChunks } from "./utils/aggregateStream"; -import { mergeToolCalls } from "./utils/mergeToolCalls"; -import { ParentWorkflowInfo } from "@temporalio/workflow"; -import Restack from "@restackio/restack-sdk-ts"; -import { openaiClient } from "./client"; - -export async function openaiChat({ - streamSid, - text, - previousMessages, - tools, - workflowToUpdate, -}: { - streamSid: string; - text?: string; - previousMessages?: OpenAI.Chat.Completions.ChatCompletionMessageParam[]; - tools?: OpenAI.Chat.Completions.ChatCompletionTool[]; - workflowToUpdate?: ParentWorkflowInfo; -}) { - const restack = new Restack(); - const { workflowId, runId } = currentWorkflow().workflowExecution; - - let messages = previousMessages ?? []; - if (!previousMessages) { - messages = [...agentPrompt]; - } - - if (text) { - messages.push({ - role: "user", - content: text, - }); - } - - const openai = openaiClient(); - const stream = await openai.chat.completions.create({ - model: "gpt-4o-mini", - messages, - tools, - stream: true, - user: streamSid, - }); - - let finishReason: ChatCompletionChunk.Choice["finish_reason"]; - let response: ChatCompletionChunk.Choice.Delta["content"] = ""; - - const [stream1, stream2] = stream.tee(); - const readableStream = stream1.toReadableStream(); - const aggregatedStream = await aggregateStreamChunks(readableStream); - - for await (const chunk of stream2) { - let content = chunk.choices[0]?.delta?.content || ""; - finishReason = chunk.choices[0].finish_reason; - - if (finishReason === "tool_calls") { - const { toolCalls } = mergeToolCalls(aggregatedStream); - - await Promise.all( - toolCalls.map((toolCall) => { - log.info("Tool Call", { toolCall }); - - const toolAnswer = `Sure, give me a minute to ${toolCall?.function?.name}...`; - const toolMessage: OpenAI.Chat.Completions.ChatCompletionMessageParam = - { - content: toolAnswer, - role: "assistant", - }; - messages.push(toolMessage); - const inputAnswer: Answer = { - streamSid, - response: toolAnswer, - isLast: true, - }; - log.info("inputAnswer", { inputAnswer }); - if (workflowToUpdate) { - restack.sendWorkflowEvent({ - workflowId: workflowToUpdate.workflowId, - runId: workflowToUpdate.runId, - eventName: answerEvent.name, - input: inputAnswer, - }); - } - - log.info("functionArguments", { - functionArguments: toolCall.function?.arguments, - }); - const functionArguments = JSON.parse( - toolCall.function?.arguments ?? "" - ); - - restack.sendWorkflowEvent({ - workflowId, - runId, - eventName: toolCallEvent.name, - input: { - ...toolCall, - function: { - name: toolCall.function?.name, - arguments: functionArguments, - }, - }, - }); - }) - ); - return { - streamSid, - messages, - }; - } else { - response += content; - if (content.trim().slice(-1) === "•" || finishReason === "stop") { - if (response.length) { - const input: Answer = { - streamSid, - response: response, - isLast: finishReason === "stop", - }; - log.info("input", { input }); - if (workflowToUpdate) { - restack.sendWorkflowEvent({ - workflowId: workflowToUpdate.workflowId, - runId: workflowToUpdate.runId, - eventName: answerEvent.name, - input, - }); - } - } - } - - if (finishReason === "stop") { - const newMessage: OpenAI.Chat.Completions.ChatCompletionMessageParam = { - content: response, - role: "assistant", - }; - - messages.push(newMessage); - - return { - streamSid, - messages, - }; - } - } - } -} diff --git a/examples/voice/src/functions/openai/client.ts b/examples/voice/src/functions/openai/client.ts deleted file mode 100644 index 851a20b..0000000 --- a/examples/voice/src/functions/openai/client.ts +++ /dev/null @@ -1,10 +0,0 @@ -import OpenAI from "openai"; - -let clientOpenai: OpenAI | null = null; - -export function openaiClient() { - if (!clientOpenai) { - clientOpenai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); - } - return clientOpenai; -} diff --git a/examples/voice/src/functions/openai/index.ts b/examples/voice/src/functions/openai/index.ts deleted file mode 100644 index d27da0d..0000000 --- a/examples/voice/src/functions/openai/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./chat"; diff --git a/examples/voice/src/functions/openai/prompt.ts b/examples/voice/src/functions/openai/prompt.ts index 391b7ac..7e2af4f 100644 --- a/examples/voice/src/functions/openai/prompt.ts +++ b/examples/voice/src/functions/openai/prompt.ts @@ -20,9 +20,4 @@ export const agentPrompt: OpenAI.Chat.Completions.ChatCompletionMessageParam[] = You must add a '•' symbol every 5 to 10 words at natural pauses where your response can be split for text to speech. `, }, - { - role: "assistant", - content: - "Hello! I understand you're looking for a pair of AirPods, is that correct?", - }, ]; diff --git a/examples/voice/src/functions/openai/utils/aggregateStream.ts b/examples/voice/src/functions/openai/utils/aggregateStream.ts deleted file mode 100644 index 18a7d74..0000000 --- a/examples/voice/src/functions/openai/utils/aggregateStream.ts +++ /dev/null @@ -1,26 +0,0 @@ -export async function aggregateStreamChunks(stream: ReadableStream) { - const reader = stream.getReader(); - const chunks: Uint8Array[] = []; - - while (true) { - const { done, value } = await reader.read(); - if (done) break; - if (value) chunks.push(value); - } - - const aggregated = new Uint8Array( - chunks.reduce((acc, chunk) => acc + chunk.length, 0) - ); - let offset = 0; - for (const chunk of chunks) { - aggregated.set(chunk, offset); - offset += chunk.length; - } - - const textContent = new TextDecoder().decode(aggregated); - const jsonObjects = textContent - .split("\n") - .filter((line) => line.trim()) - .map((line) => JSON.parse(line)); - return jsonObjects; -} diff --git a/examples/voice/src/functions/openai/utils/mergeToolCalls.ts b/examples/voice/src/functions/openai/utils/mergeToolCalls.ts deleted file mode 100644 index 3f51c2c..0000000 --- a/examples/voice/src/functions/openai/utils/mergeToolCalls.ts +++ /dev/null @@ -1,31 +0,0 @@ -import OpenAI from "openai"; -import { ChatCompletionChunk } from "openai/resources/chat/completions.mjs"; - -export function mergeToolCalls(aggregatedStream: ChatCompletionChunk[]) { - const toolCalls: OpenAI.Chat.Completions.ChatCompletionChunk.Choice.Delta.ToolCall[] = - []; - - aggregatedStream.forEach((chunk) => { - chunk.choices.forEach((choice) => { - if (choice.delta.tool_calls) { - choice.delta.tool_calls.forEach((toolCall) => { - const lastToolCall = toolCalls[toolCalls.length - 1]; - if (toolCall.id) { - toolCalls.push({ - ...toolCall, - function: { ...toolCall.function, arguments: "" }, - }); - } else if ( - lastToolCall && - lastToolCall.function && - toolCall.function?.arguments - ) { - lastToolCall.function.arguments += toolCall.function.arguments; - } - }); - } - }); - }); - - return { toolCalls }; -} diff --git a/examples/voice/src/functions/twilio/index.ts b/examples/voice/src/functions/twilio/index.ts deleted file mode 100644 index 1850252..0000000 --- a/examples/voice/src/functions/twilio/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./twilioCall"; diff --git a/examples/voice/src/functions/twilio/twilioCall.ts b/examples/voice/src/functions/twilio/twilioCall.ts deleted file mode 100644 index 976534d..0000000 --- a/examples/voice/src/functions/twilio/twilioCall.ts +++ /dev/null @@ -1,36 +0,0 @@ -import twilio from "twilio"; -import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; -import "dotenv/config"; - -interface Output { - sid: string; -} - -export async function twilioCall(): Promise { - const accountSid = process.env.TWILIO_ACCOUNT_SID; - const authToken = process.env.TWILIO_AUTH_TOKEN; - - const from = process.env.FROM_NUMBER; - const to = process.env.YOUR_NUMBER; - - const client = twilio(accountSid, authToken); - - if (!accountSid || !authToken) { - throw FunctionFailure.nonRetryable("Twilio credentials are missing"); - } - - try { - if (to && from) { - const { sid } = await client.calls.create({ - url: `https://${process.env.SERVER}/incoming`, - to, - from, - }); - return { sid }; - } else { - throw FunctionFailure.nonRetryable(`No number`); - } - } catch (error) { - throw FunctionFailure.nonRetryable(`Error Twilio call create: ${error}`); - } -} diff --git a/examples/voice/src/functions/utils/sendEventToWorkflow.ts b/examples/voice/src/functions/utils/sendEventToWorkflow.ts index 59f7a60..2258f0f 100644 --- a/examples/voice/src/functions/utils/sendEventToWorkflow.ts +++ b/examples/voice/src/functions/utils/sendEventToWorkflow.ts @@ -1,27 +1,14 @@ -import "dotenv/config"; import Restack from "@restackio/restack-sdk-ts"; - -interface SendEventToWorkflowInput { - workflowId: string; - runId: string; - eventName: string; - input: { - [key: string]: any; - }; -} +import { SendWorkflowEvent } from "@restackio/restack-sdk-ts/event"; export async function workflowSendEvent({ - workflowId, - runId, - eventName, - input, -}: SendEventToWorkflowInput) { + event, + workflow, +}: SendWorkflowEvent) { const restack = new Restack(); return restack.sendWorkflowEvent({ - workflowId, - runId, - eventName, - input, + event, + workflow, }); } diff --git a/examples/voice/src/functions/websocket/connect.ts b/examples/voice/src/functions/websocket/connect.ts deleted file mode 100644 index 773600d..0000000 --- a/examples/voice/src/functions/websocket/connect.ts +++ /dev/null @@ -1,28 +0,0 @@ -import WebSocket from "ws"; -import "dotenv/config"; -import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; - -export function websocketConnect(): Promise { - return new Promise((resolve, reject) => { - try { - const websocketAddress = `ws://localhost:4000/connection`; - const ws = new WebSocket(websocketAddress); - - ws.on("open", () => { - resolve(ws); - }); - - ws.on("error", (error) => { - reject( - FunctionFailure.nonRetryable( - `Error connecting to WebSocket: ${error}` - ) - ); - }); - } catch (error) { - reject( - FunctionFailure.nonRetryable(`Error connecting to WebSocket: ${error}`) - ); - } - }); -} diff --git a/examples/voice/src/functions/websocket/index.ts b/examples/voice/src/functions/websocket/index.ts deleted file mode 100644 index fbc6508..0000000 --- a/examples/voice/src/functions/websocket/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./listenMedia"; -export * from "./sendAudio"; -export * from "./sendEvent"; diff --git a/examples/voice/src/functions/websocket/listenMedia.ts b/examples/voice/src/functions/websocket/listenMedia.ts deleted file mode 100644 index 1236c28..0000000 --- a/examples/voice/src/functions/websocket/listenMedia.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { - heartbeat, - currentWorkflow, - log, -} from "@restackio/restack-sdk-ts/function"; -import { websocketConnect } from "./connect"; -import Restack from "@restackio/restack-sdk-ts"; -import { - AudioIn, - audioInEvent, - streamEndEvent, -} from "../../workflows/stream/events"; - -type StreamInput = { - streamSid: string; -}; - -export async function websocketListenMedia({ streamSid }: StreamInput) { - return new Promise(async (resolve) => { - const ws = await websocketConnect(); - const restack = new Restack(); - const { workflowId, runId } = currentWorkflow().workflowExecution; - ws.on("message", (data) => { - const message = JSON.parse(data.toString()); - if (message.streamSid === streamSid) { - if (message.event === "media") { - if (message.media.track === "inbound") { - // Clean Twilio empty noise - const cleanedPayload = message.media.payload?.replace( - /(\+\/[a-zA-Z0-9+\/]{2,}==)/g, - "" - ); - if (!cleanedPayload) { - return; - } - log.info("send payload", { - streamSid, - payload: message.media.payload.length, - }); - const input: AudioIn = { - streamSid, - payload: message.media.payload, - }; - restack.sendWorkflowEvent({ - workflowId, - runId, - eventName: audioInEvent.name, - input, - }); - } - } - } - heartbeat(message.streamSid); - if (message.event === "stop") { - restack.sendWorkflowEvent({ - workflowId, - runId, - eventName: streamEndEvent.name, - }); - resolve(); - } - }); - }); -} diff --git a/examples/voice/src/functions/websocket/sendAudio.ts b/examples/voice/src/functions/websocket/sendAudio.ts deleted file mode 100644 index 9cf658b..0000000 --- a/examples/voice/src/functions/websocket/sendAudio.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { websocketConnect } from "./connect"; - -export async function websocketSendAudio({ - streamSid, - audio, -}: { - streamSid: string; - audio: string; -}) { - const ws = await websocketConnect(); - - const audioEvent = { - streamSid: streamSid, - event: "media", - media: { - payload: audio, - }, - }; - ws.send(JSON.stringify(audioEvent)); - ws.close(); - return true; -} diff --git a/examples/voice/src/functions/websocket/sendEvent.ts b/examples/voice/src/functions/websocket/sendEvent.ts deleted file mode 100644 index a4d42de..0000000 --- a/examples/voice/src/functions/websocket/sendEvent.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { websocketConnect } from "./connect"; - -export async function websocketSendEvent({ - streamSid, - eventName, - data, -}: { - streamSid: string; - eventName: string; - data: { text?: string }; -}) { - const ws = await websocketConnect(); - - const audioEvent = { - streamSid: streamSid, - event: eventName, - data: data, - }; - - ws.send(JSON.stringify(audioEvent)); - ws.close(); - return true; -} diff --git a/examples/voice/src/operator.ts b/examples/voice/src/operator.ts new file mode 100644 index 0000000..33af2ac --- /dev/null +++ b/examples/voice/src/operator.ts @@ -0,0 +1,48 @@ +import Restack from "@restackio/restack-sdk-ts"; +import { + workflowSendEvent, + erpGetTools, + erpPlaceOrder, + erpCheckInventory, + erpCheckPrice, +} from "./functions"; +import { websocketService } from "@restackio/integrations-websocket"; +import { twilioService } from "@restackio/integrations-twilio"; +import { openaiService } from "@restackio/integrations-openai"; +import { deepgramService } from "@restackio/integrations-deepgram"; + +async function main() { + const workflowsPath = require.resolve("./Workflows"); + + try { + const restack = new Restack(); + + await Promise.all([ + restack.startService({ + workflowsPath, + functions: { workflowSendEvent }, + }), + restack.startService({ + taskQueue: "erp", + functions: { + erpGetTools, + erpCheckPrice, + erpCheckInventory, + erpPlaceOrder, + }, + }), + websocketService(), + twilioService(), + openaiService(), + deepgramService(), + ]); + + console.log("Services running successfully."); + } catch (e) { + console.error("Failed to run worker", e); + } +} + +main().catch((err) => { + console.error("Error in main:", err); +}); diff --git a/examples/voice/src/server.ts b/examples/voice/src/server.ts index d271180..a193352 100644 --- a/examples/voice/src/server.ts +++ b/examples/voice/src/server.ts @@ -12,7 +12,7 @@ const app = express(); const server = createServer(app); const wss = new WebSocketServer({ server }); const PORT = process.env.PORT || 4000; -export const websocketAddress = `wss://${process.env.SERVER}/connection`; +export const websocketAddress = `ws://localhost:${PORT}/connection`; app.use(cors()); app.use(express.json()); @@ -26,19 +26,19 @@ app.post("/start", async (req, res) => { const workflowRunId = await restack.scheduleWorkflow({ workflowName: streamWorkflow.name, workflowId, + input: { address: websocketAddress }, }); - - console.log("workflowRunId", workflowRunId); - if (workflowRunId) { - console.log("update"); try { - console.log("update"); restack.sendWorkflowEvent({ - workflowId, - runId: workflowRunId, - eventName: streamInfoEvent.name, - input: { streamSid: workflowRunId }, + event: { + name: streamInfoEvent.name, + input: { streamSid: workflowRunId }, + }, + workflow: { + workflowId, + runId: workflowRunId, + }, }); } catch (error) { console.log("update error", error); @@ -62,7 +62,7 @@ app.post("/incoming", async (req, res) => { const runId = await restack.scheduleWorkflow({ workflowName: streamWorkflow.name, workflowId, - input: {}, + input: { address: websocketAddress }, }); console.log(`Started workflow with runId: ${runId}`); @@ -105,7 +105,7 @@ wss.on("connection", (ws) => { const streamSid = message.streamSid; if (message.event === "start") { - console.log(`Twilio -> Starting Media Stream for ${streamSid}`); + console.log(`Starting stream ${streamSid}`); runId = message.start.customParameters.runId; workflowId = message.start.customParameters.workflowId; if (runId) { @@ -113,13 +113,17 @@ wss.on("connection", (ws) => { if (streamSid) { const input: StreamInfo = { streamSid }; await restack.sendWorkflowEvent({ - workflowId, - runId, - eventName: streamInfoEvent.name, - input, + event: { + name: streamInfoEvent.name, + input, + }, + workflow: { + workflowId, + runId, + }, }); console.log( - `Signaled workflow ${workflowId} runId ${runId} with Twilio streamSid: ${streamSid}` + `Sent workflow ${workflowId} runId ${runId} streamSid: ${streamSid}` ); } } catch (error) { @@ -129,7 +133,7 @@ wss.on("connection", (ws) => { } if (message.event === "stop") { - console.log(`Twilio -> Media stream ${streamSid} ended.`); + console.log(`Websocket stream ${streamSid} ended.`); } }); }); diff --git a/examples/voice/src/worker.ts b/examples/voice/src/worker.ts deleted file mode 100644 index 66e995d..0000000 --- a/examples/voice/src/worker.ts +++ /dev/null @@ -1,76 +0,0 @@ -import Restack from "@restackio/restack-sdk-ts"; -import { - workflowSendEvent, - twilioCall, - deepgramListen, - deepgramSpeak, - openaiChat, - websocketListenMedia, - websocketSendAudio, - websocketSendEvent, - erpGetTools, - erpPlaceOrder, - erpCheckInventory, - erpCheckPrice, -} from "./functions"; - -async function main() { - const workflowsPath = require.resolve("./Workflows"); - - try { - const restack = new Restack(); - - await Promise.all([ - restack.startWorker({ - taskQueue: "restack", - workflowsPath, - functions: { workflowSendEvent }, - }), - restack.startWorker({ - taskQueue: "websocket", - workflowsPath, - functions: { - websocketListenMedia, - websocketSendAudio, - websocketSendEvent, - }, - }), - restack.startWorker({ - taskQueue: "twilio", - workflowsPath, - functions: { twilioCall }, - rateLimit: 200, - }), - restack.startWorker({ - taskQueue: "openai", - workflowsPath, - functions: { openaiChat }, - rateLimit: 10000, - }), - restack.startWorker({ - taskQueue: "deepgram", - workflowsPath, - functions: { deepgramSpeak, deepgramListen }, - rateLimit: 10000, - }), - restack.startWorker({ - taskQueue: "erp", - workflowsPath, - functions: { - erpGetTools, - erpCheckPrice, - erpCheckInventory, - erpPlaceOrder, - }, - }), - ]); - - console.log("Workers running successfully."); - } catch (e) { - console.error("Failed to run worker", e); - } -} - -main().catch((err) => { - console.error("Error in main:", err); -}); diff --git a/examples/voice/src/workflows/agent/agent.ts b/examples/voice/src/workflows/agent/agent.ts index 8bdd73c..f6786fc 100644 --- a/examples/voice/src/workflows/agent/agent.ts +++ b/examples/voice/src/workflows/agent/agent.ts @@ -6,13 +6,25 @@ import { } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../../functions"; import { onEvent } from "@restackio/restack-sdk-ts/event"; -import { agentEnd, Reply, replyEvent, ToolCall, toolCallEvent } from "./events"; +import { agentEnd, assistantEvent, toolCallEvent } from "./events"; +import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; +import * as openaiFunctions from "@restackio/integrations-openai/functions"; +import { UserEvent, userEvent } from "../stream/events"; + +import { + StreamEvent, + ToolCallEvent, +} from "@restackio/integrations-openai/types"; +import { agentPrompt } from "../../functions/openai/prompt"; +import { ChatCompletionAssistantMessageParam } from "openai/resources/index"; export async function agentWorkflow({ - streamSid, + assistantName, + userName, message, }: { - streamSid: string; + assistantName: string; + userName: string; message: string; }) { try { @@ -27,85 +39,132 @@ export async function agentWorkflow({ taskQueue: "erp", }).erpGetTools(); - const initialMessages = await step({ - taskQueue: "openai", - }).openaiChat({ - streamSid, - text: message, + const commonOpenaiOptions = { + assistantName, tools, - workflowToUpdate: parentWorkflow, + streamAtCharacter: "•", + streamEvent: { + workflowEventName: assistantEvent.name, + workflow: parentWorkflow, + }, + toolEvent: { + workflowEventName: toolCallEvent.name, + }, + }; + + const { result } = await step({ + taskQueue: openaiTaskQueue, + }).openaiChatCompletionsStream({ + userName, + newMessage: message, + messages: agentPrompt, + ...commonOpenaiOptions, }); - if (initialMessages?.messages) { - openaiChatMessages = initialMessages.messages; + if (result.messages) { + openaiChatMessages = result.messages; } - // On user reply, send it to AI chat with previous messages to continue conversation. - - onEvent(replyEvent, async ({ streamSid, text }: Reply) => { - const replyMessage = await step({ - taskQueue: "openai", - }).openaiChat({ - streamSid, - text, - tools, - previousMessages: openaiChatMessages, - workflowToUpdate: parentWorkflow, + // On user event, send it to AI chat with previous messages to continue conversation. + + onEvent(userEvent, async ({ message, userName }: UserEvent) => { + const { result } = await step({ + taskQueue: openaiTaskQueue, + }).openaiChatCompletionsStream({ + newMessage: message, + userName, + messages: openaiChatMessages, + ...commonOpenaiOptions, }); - if (replyMessage?.messages) { - openaiChatMessages = replyMessage.messages; + if (result.messages) { + openaiChatMessages = result.messages; } - return { text }; + if (result.toolCalls) { + result.toolCalls.map(async (toolCall) => { + const toolResponse = `Sure, let me ${toolCall?.function?.name}...`; + const toolMessage: ChatCompletionAssistantMessageParam = { + content: toolResponse, + role: "assistant", + }; + openaiChatMessages.push(toolMessage); + + const input: StreamEvent = { + response: toolResponse, + assistantName, + isLast: true, + }; + + log.info("toolCall ", { input }); + + await step({}).workflowSendEvent({ + event: { + name: assistantEvent.name, + input, + }, + workflow: parentWorkflow, + }); + }); + } + + return { message }; }); // When AI answer is a tool call, execute function and push results to conversation. - onEvent(toolCallEvent, async ({ function: toolFunction }: ToolCall) => { - log.info("toolCallEvent", { toolFunction }); - - async function callERPFunction(toolFunction: ToolCall["function"]) { - const erpStep = step({ - taskQueue: "erp", - }); - - switch (toolFunction.name) { - case "checkPrice": - return erpStep.erpCheckPrice({ ...toolFunction.arguments }); - case "checkInventory": - return erpStep.erpCheckInventory({ ...toolFunction.arguments }); - case "placeOrder": - return erpStep.erpPlaceOrder({ - ...(toolFunction.arguments as functions.OrderInput), - }); - default: - throw new Error(`Unknown function name: ${toolFunction.name}`); + onEvent( + toolCallEvent, + async ({ function: toolFunction }: ToolCallEvent) => { + log.info("toolCallEvent", { toolFunction }); + + async function callERPFunction( + toolFunction: ToolCallEvent["function"] + ) { + const erpStep = step({ + taskQueue: "erp", + }); + + switch (toolFunction.name) { + case "checkPrice": + return erpStep.erpCheckPrice( + toolFunction.input as unknown as functions.PriceInput + ); + case "checkInventory": + return erpStep.erpCheckInventory( + toolFunction.input as unknown as functions.InventoryInput + ); + case "placeOrder": + return erpStep.erpPlaceOrder( + toolFunction.input as unknown as functions.OrderInput + ); + default: + throw new Error(`Unknown function name: ${toolFunction.name}`); + } } - } - const toolResult = await callERPFunction(toolFunction); + const toolResult = await callERPFunction(toolFunction); - openaiChatMessages.push({ - content: JSON.stringify(toolResult), - role: "function", - name: toolFunction.name, - }); + openaiChatMessages.push({ + content: JSON.stringify(toolResult), + role: "function", + name: toolFunction.name, + }); - const toolMessage = await step({ - taskQueue: "openai", - }).openaiChat({ - streamSid, - previousMessages: openaiChatMessages, - workflowToUpdate: parentWorkflow, - }); + const { result } = await step({ + taskQueue: openaiTaskQueue, + }).openaiChatCompletionsStream({ + messages: openaiChatMessages, + ...commonOpenaiOptions, + }); - if (toolMessage?.messages) { - openaiChatMessages = toolMessage.messages; - } + if (result.messages) { + openaiChatMessages = result.messages; + } - return { function: toolFunction }; - }); + return { function: toolFunction }; + } + ); // Terminate AI agent workflow. diff --git a/examples/voice/src/workflows/agent/events.ts b/examples/voice/src/workflows/agent/events.ts index c5e8624..88717a1 100644 --- a/examples/voice/src/workflows/agent/events.ts +++ b/examples/voice/src/workflows/agent/events.ts @@ -1,23 +1,9 @@ -import * as functions from "../../functions"; import { defineEvent } from "@restackio/restack-sdk-ts/event"; +import { + StreamEvent, + ToolCallEvent, +} from "@restackio/integrations-openai/types"; -export type ToolCall = { - index: number; - function: { - name: string; - arguments: - | functions.OrderInput - | functions.InventoryInput - | functions.PriceInput; - }; - id?: string; -}; - -export type Reply = { - streamSid: string; - text: string; -}; - -export const toolCallEvent = defineEvent("toolCall"); -export const replyEvent = defineEvent("reply"); +export const assistantEvent = defineEvent("assistant"); +export const toolCallEvent = defineEvent("toolCall"); export const agentEnd = defineEvent("agentEnd"); diff --git a/examples/voice/src/workflows/stream/events.ts b/examples/voice/src/workflows/stream/events.ts index 03cdcb8..0b043c3 100644 --- a/examples/voice/src/workflows/stream/events.ts +++ b/examples/voice/src/workflows/stream/events.ts @@ -1,28 +1,19 @@ import { defineEvent } from "@restackio/restack-sdk-ts/event"; +import { WebsocketEvent } from "@restackio/integrations-websocket/types"; export type StreamInfo = { streamSid: string; }; -export type AudioIn = { - streamSid: string; - payload: string; -}; - -export type Answer = { - streamSid: string; - response: string; - isLast?: boolean; +export type UserEvent = { + message: string; + userName?: string; }; export const streamInfoEvent = defineEvent("streamInfo"); -export const audioInEvent = defineEvent("audioIn"); +export const audioInEvent = defineEvent("audioIn"); -export const answerEvent = defineEvent("answer"); +export const userEvent = defineEvent("user"); export const streamEndEvent = defineEvent("streamEnd"); - -// use for websocket event shown to show transcript in frontend for ex. - -export const questionEvent = defineEvent("question"); diff --git a/examples/voice/src/workflows/stream/stream.ts b/examples/voice/src/workflows/stream/stream.ts index 85813ba..facc7e1 100644 --- a/examples/voice/src/workflows/stream/stream.ts +++ b/examples/voice/src/workflows/stream/stream.ts @@ -3,61 +3,94 @@ import { log, condition, startChild, + workflowInfo, } from "@restackio/restack-sdk-ts/workflow"; import { onEvent } from "@restackio/restack-sdk-ts/event"; import * as functions from "../../functions"; import { agentWorkflow } from "../agent/agent"; import { - Answer, - answerEvent, - AudioIn, audioInEvent, - questionEvent, + userEvent, streamEndEvent, StreamInfo, streamInfoEvent, + UserEvent, } from "./events"; -import { Reply, replyEvent } from "../agent/events"; - -export async function streamWorkflow() { +import { assistantEvent } from "../agent/events"; +import { websocketTaskQueue } from "@restackio/integrations-websocket/taskQueue"; +import * as websocketFunctions from "@restackio/integrations-websocket/functions"; +import { deepgramTaskQueue } from "@restackio/integrations-deepgram/taskQueue"; +import * as deepgramFunctions from "@restackio/integrations-deepgram/functions"; +import { StreamEvent } from "@restackio/integrations-openai/types"; +import { WebsocketEvent } from "@restackio/integrations-websocket/types"; + +export async function streamWorkflow({ address }: { address?: string }) { try { let currentstreamSid: string; let interactionCount = 0; let audioQueue: { - streamSid: string; audio: string; text: string; }[] = []; let isSendingAudio = false; let childAgentRunId = ""; + const assistantName = "agent"; + // Start long running websocket and stream welcome message to websocket. onEvent(streamInfoEvent, async ({ streamSid }: StreamInfo) => { log.info(`Workflow update with streamSid: ${streamSid}`); - step({ - taskQueue: `websocket`, - scheduleToCloseTimeout: "30 minutes", - }).websocketListenMedia({ streamSid }); - - const welcomeMessage = - "Hello! I am Pete from Apple. Are you thinking about getting AirPods?"; - const { audio } = await step({ - taskQueue: `deepgram`, - }).deepgramSpeak({ + step({ + taskQueue: websocketTaskQueue, + scheduleToCloseTimeout: "1 hour", + heartbeatTimeout: "2 minutes", + }).websocketListen({ streamSid, + address, + events: [ + { + websocketEventName: "media", + workflowEventName: audioInEvent.name, + }, + { + websocketEventName: "stop", + workflowEventName: streamEndEvent.name, + }, + ], + }); + + const welcomeMessage = "Hello! I am Pete from Apple."; + + const { media } = await step({ + taskQueue: deepgramTaskQueue, + }).deepgramSpeak({ text: welcomeMessage, + twilioEncoding: true, }); - await step({ - taskQueue: `websocket`, - }).websocketSendAudio({ streamSid, audio }); + await step({ + taskQueue: websocketTaskQueue, + }).websocketSend({ + name: "media", + input: { + streamSid, + media: { + trackId: assistantName, + payload: media.payload, + }, + }, + address, + }); - await step({ - taskQueue: `websocket`, - }).websocketSendEvent({ - streamSid, - eventName: answerEvent.name, - data: { text: welcomeMessage }, + await step({ + taskQueue: websocketTaskQueue, + }).websocketSend({ + name: assistantEvent.name, + input: { + streamSid, + data: { trackId: assistantName, text: welcomeMessage }, + }, + address, }); currentstreamSid = streamSid; @@ -66,42 +99,85 @@ export async function streamWorkflow() { // Receives audio, transcribe it and send transcription to AI agent. - onEvent(audioInEvent, async ({ streamSid, payload }: AudioIn) => { + onEvent(audioInEvent, async ({ streamSid, media }: WebsocketEvent) => { log.info(`Workflow update with streamSid: ${streamSid}`); - const { finalResult } = await step({ - taskQueue: `deepgram`, - }).deepgramListen({ streamSid, payload }); + + if (!media?.payload || media.trackId === assistantName) return; + + const { result } = await step({ + taskQueue: deepgramTaskQueue, + }).deepgramListen({ + base64Payload: media?.payload, + twilioEncoding: true, + }); + + const transcript = result.results.channels[0].alternatives[0].transcript; + + if (!transcript.length) { + const input: StreamEvent = { + response: "Sorry i didn't understand. Can you repeat?", + assistantName, + isLast: true, + }; + + log.info("Answer to transcript ", { input }); + + await step({}).workflowSendEvent({ + event: { + name: assistantEvent.name, + input, + }, + workflow: { + workflowId: workflowInfo().workflowId, + runId: workflowInfo().runId, + }, + }); + } interactionCount += 1; - step({ - taskQueue: `websocket`, - }).websocketSendEvent({ - streamSid, - eventName: questionEvent.name, - data: { text: finalResult }, + step({ + taskQueue: websocketTaskQueue, + }).websocketSend({ + name: userEvent.name, + input: { + streamSid, + data: { + trackId: media.trackId, + text: transcript, + }, + }, + address, }); if (!childAgentRunId) { const childAgent = await startChild(agentWorkflow, { args: [ { - streamSid, - message: finalResult, + assistantName, + userName: media.trackId, + message: transcript, }, ], workflowId: `${streamSid}-agentWorkflow`, }); childAgentRunId = childAgent.firstExecutionRunId; } else { - const input: Reply = { streamSid, text: finalResult }; + const input: UserEvent = { + userName: media.trackId, + message: transcript, + }; step({ taskQueue: `restack`, }).workflowSendEvent({ - workflowId: `${streamSid}-agentWorkflow`, - runId: childAgentRunId, - eventName: replyEvent.name, - input, + event: { + name: userEvent.name, + input, + }, + workflow: { + workflowId: `${streamSid}-agentWorkflow`, + runId: childAgentRunId, + }, }); } return { streamSid }; @@ -109,40 +185,56 @@ export async function streamWorkflow() { // Receives AI answer, generates audio and stream it to websocket. - onEvent(answerEvent, async ({ streamSid, response, isLast }: Answer) => { - const { audio } = await step({ - taskQueue: `deepgram`, - }).deepgramSpeak({ - streamSid, - text: response, - }); - - audioQueue.push({ streamSid, audio, text: response }); - - if (!isSendingAudio && isLast) { - isSendingAudio = true; + onEvent( + assistantEvent, + async ({ response, isLast, assistantName }: StreamEvent) => { + const { media } = await step({ + taskQueue: deepgramTaskQueue, + }).deepgramSpeak({ + text: response, + twilioEncoding: true, + }); - while (audioQueue.length > 0) { - const { streamSid, audio } = audioQueue.shift()!; + audioQueue.push({ audio: media.payload, text: response }); + + if (!isSendingAudio && isLast) { + isSendingAudio = true; + + while (audioQueue.length > 0) { + const { audio } = audioQueue.shift()!; + + await step({ + taskQueue: websocketTaskQueue, + }).websocketSend({ + name: "media", + input: { + streamSid: currentstreamSid, + media: { + trackId: assistantName, + payload: audio, + }, + }, + address, + }); + } + + await step({ + taskQueue: websocketTaskQueue, + }).websocketSend({ + name: assistantEvent.name, + input: { + streamSid: currentstreamSid, + data: { trackId: assistantName, text: response }, + }, + address, + }); - await step({ - taskQueue: `websocket`, - }).websocketSendAudio({ streamSid, audio }); + isSendingAudio = false; } - await step({ - taskQueue: `websocket`, - }).websocketSendEvent({ - streamSid, - eventName: answerEvent.name, - data: { text: response }, - }); - - isSendingAudio = false; + return { response }; } - - return { streamSid }; - }); + ); // Terminates stream workflow. From 1e0b040a0bc663146198ca28313b3af3a99aadf7 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 20 Aug 2024 18:11:53 +0200 Subject: [PATCH 044/122] ready refactor Former-commit-id: a6cb13dde3e5d9a143453b824c9dc431094c7642 Former-commit-id: a8ea60eea9137667f2c442b5c588e143662387e4 --- examples/voice/callWorkflow.ts | 5 +++ examples/voice/package.json | 2 +- examples/voice/pnpm-lock.yaml | 10 ++--- examples/voice/src/server.ts | 14 +++---- .../agent.ts => conversation/conversation.ts} | 18 ++++----- .../{agent => conversation}/events.ts | 4 +- examples/voice/src/workflows/index.ts | 4 +- .../src/workflows/{stream => room}/events.ts | 13 +++++-- .../{stream/stream.ts => room/room.ts} | 37 ++++++++++--------- examples/voice/src/workflows/twilioCall.ts | 26 ++++++++++--- 10 files changed, 80 insertions(+), 53 deletions(-) rename examples/voice/src/workflows/{agent/agent.ts => conversation/conversation.ts} (91%) rename examples/voice/src/workflows/{agent => conversation}/events.ts (61%) rename examples/voice/src/workflows/{stream => room}/events.ts (53%) rename examples/voice/src/workflows/{stream/stream.ts => room/room.ts} (86%) diff --git a/examples/voice/callWorkflow.ts b/examples/voice/callWorkflow.ts index 1316fda..66a9f52 100644 --- a/examples/voice/callWorkflow.ts +++ b/examples/voice/callWorkflow.ts @@ -7,6 +7,11 @@ async function scheduleWorkflow() { const workflowRunId = await restack.scheduleWorkflow({ workflowName: "twilioCallWorkflow", workflowId: `${Date.now()}-twilioCallWorkflow`, + input: { + to: process.env.FROM_NUMBER, + from: process.env.YOUR_NUMBER, + url: `https://${process.env.SERVER}/incoming`, + }, }); console.log("Workflow scheduled successfully:", workflowRunId); diff --git a/examples/voice/package.json b/examples/voice/package.json index bcbc39a..addafdd 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -17,7 +17,7 @@ "@deepgram/sdk": "^3.5.1", "@restackio/integrations-deepgram": "^0.0.5", "@restackio/integrations-openai": "^0.0.11", - "@restackio/integrations-twilio": "^0.0.1", + "@restackio/integrations-twilio": "^0.0.2", "@restackio/integrations-websocket": "^0.0.6", "@restackio/restack-sdk-ts": "^0.0.53", "@temporalio/workflow": "1.11.1", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index eb08cc1..853298d 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: ^0.0.11 version: 0.0.11(encoding@0.1.12)(zod@3.23.8) '@restackio/integrations-twilio': - specifier: ^0.0.1 - version: 0.0.1 + specifier: ^0.0.2 + version: 0.0.2 '@restackio/integrations-websocket': specifier: ^0.0.6 version: 0.0.6(bufferutil@4.0.8) @@ -193,8 +193,8 @@ packages: '@restackio/integrations-openai@0.0.11': resolution: {integrity: sha512-vq30Wx3amf6vAhdSUYfpQPMQxex95LBJGbYS9CQCj23R8PitL06jckuR5QF/fGd4C2IOt8rrI8gBNUpM6QIO6A==} - '@restackio/integrations-twilio@0.0.1': - resolution: {integrity: sha512-Xgv8Z4ZGm3TD69Sp+S9RI7v61sLT7TxRKkHmyU707Ng1Zfcz/agjeP7YjO380ye2v1YVPzWqG18+O+iAVlCJ/Q==} + '@restackio/integrations-twilio@0.0.2': + resolution: {integrity: sha512-aEFCM9IQ8ZofAV7qAQGFPSsV9qTSWCHjkMmU/vKGbt0mxwnwkhWXKE5wHRSmyklpwNo8WI6M99FHG8guVdlb1w==} '@restackio/integrations-websocket@0.0.6': resolution: {integrity: sha512-ik6DZF0b1gX/9g+uDo437M7uUClgTm5CoaDd1WlauW/4S+cT0/PJu5q6TKNF2BvKydJZUla61eXDydV3TaScOg==} @@ -1587,7 +1587,7 @@ snapshots: - encoding - zod - '@restackio/integrations-twilio@0.0.1': + '@restackio/integrations-twilio@0.0.2': dependencies: twilio: 5.2.2 transitivePeerDependencies: diff --git a/examples/voice/src/server.ts b/examples/voice/src/server.ts index a193352..b31481e 100644 --- a/examples/voice/src/server.ts +++ b/examples/voice/src/server.ts @@ -4,8 +4,8 @@ import { createServer } from "http"; import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; import Restack from "@restackio/restack-sdk-ts"; -import { streamWorkflow } from "./workflows/stream/stream"; -import { StreamInfo, streamInfoEvent } from "./workflows/stream/events"; +import { roomWorkflow } from "./workflows/room/room"; +import { RoomInfo, streamInfoEvent } from "./workflows/room/events"; import cors from "cors"; const app = express(); @@ -21,10 +21,10 @@ app.post("/start", async (req, res) => { try { const restack = new Restack(); - const workflowId = `${Date.now()}-${streamWorkflow.name}`; + const workflowId = `${Date.now()}-${roomWorkflow.name}`; const workflowRunId = await restack.scheduleWorkflow({ - workflowName: streamWorkflow.name, + workflowName: roomWorkflow.name, workflowId, input: { address: websocketAddress }, }); @@ -57,10 +57,10 @@ app.post("/start", async (req, res) => { app.post("/incoming", async (req, res) => { try { - const workflowId = `${Date.now()}-${streamWorkflow.name}`; + const workflowId = `${Date.now()}-${roomWorkflow.name}`; const restack = new Restack(); const runId = await restack.scheduleWorkflow({ - workflowName: streamWorkflow.name, + workflowName: roomWorkflow.name, workflowId, input: { address: websocketAddress }, }); @@ -111,7 +111,7 @@ wss.on("connection", (ws) => { if (runId) { try { if (streamSid) { - const input: StreamInfo = { streamSid }; + const input: RoomInfo = { streamSid }; await restack.sendWorkflowEvent({ event: { name: streamInfoEvent.name, diff --git a/examples/voice/src/workflows/agent/agent.ts b/examples/voice/src/workflows/conversation/conversation.ts similarity index 91% rename from examples/voice/src/workflows/agent/agent.ts rename to examples/voice/src/workflows/conversation/conversation.ts index f6786fc..2353bb4 100644 --- a/examples/voice/src/workflows/agent/agent.ts +++ b/examples/voice/src/workflows/conversation/conversation.ts @@ -6,10 +6,10 @@ import { } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../../functions"; import { onEvent } from "@restackio/restack-sdk-ts/event"; -import { agentEnd, assistantEvent, toolCallEvent } from "./events"; +import { streamEvent, toolCallEvent, conversationEndEvent } from "./events"; import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; import * as openaiFunctions from "@restackio/integrations-openai/functions"; -import { UserEvent, userEvent } from "../stream/events"; +import { UserEvent, userEvent } from "../room/events"; import { StreamEvent, @@ -18,7 +18,7 @@ import { import { agentPrompt } from "../../functions/openai/prompt"; import { ChatCompletionAssistantMessageParam } from "openai/resources/index"; -export async function agentWorkflow({ +export async function conversationWorkflow({ assistantName, userName, message, @@ -44,7 +44,7 @@ export async function agentWorkflow({ tools, streamAtCharacter: "•", streamEvent: { - workflowEventName: assistantEvent.name, + workflowEventName: streamEvent.name, workflow: parentWorkflow, }, toolEvent: { @@ -100,7 +100,7 @@ export async function agentWorkflow({ await step({}).workflowSendEvent({ event: { - name: assistantEvent.name, + name: streamEvent.name, input, }, workflow: parentWorkflow, @@ -166,11 +166,11 @@ export async function agentWorkflow({ } ); - // Terminate AI agent workflow. + // Terminate conversation workflow. let ended = false; - onEvent(agentEnd, async () => { - log.info(`agentEnd received`); + onEvent(conversationEndEvent, async () => { + log.info(`conversationEndEvent received`); ended = true; }); @@ -178,7 +178,7 @@ export async function agentWorkflow({ return; } catch (error) { - log.error("Error in agentWorkflow", { error }); + log.error("Error in conversationWorkflow", { error }); throw error; } } diff --git a/examples/voice/src/workflows/agent/events.ts b/examples/voice/src/workflows/conversation/events.ts similarity index 61% rename from examples/voice/src/workflows/agent/events.ts rename to examples/voice/src/workflows/conversation/events.ts index 88717a1..a170d0b 100644 --- a/examples/voice/src/workflows/agent/events.ts +++ b/examples/voice/src/workflows/conversation/events.ts @@ -4,6 +4,6 @@ import { ToolCallEvent, } from "@restackio/integrations-openai/types"; -export const assistantEvent = defineEvent("assistant"); +export const streamEvent = defineEvent("stream"); export const toolCallEvent = defineEvent("toolCall"); -export const agentEnd = defineEvent("agentEnd"); +export const conversationEndEvent = defineEvent("conversationEndEvent"); diff --git a/examples/voice/src/workflows/index.ts b/examples/voice/src/workflows/index.ts index d35b9be..b6b143e 100644 --- a/examples/voice/src/workflows/index.ts +++ b/examples/voice/src/workflows/index.ts @@ -1,3 +1,3 @@ export * from "./twilioCall"; -export * from "./stream/stream"; -export * from "./agent/agent"; +export * from "./room/room"; +export * from "./conversation/conversation"; diff --git a/examples/voice/src/workflows/stream/events.ts b/examples/voice/src/workflows/room/events.ts similarity index 53% rename from examples/voice/src/workflows/stream/events.ts rename to examples/voice/src/workflows/room/events.ts index 0b043c3..0251abd 100644 --- a/examples/voice/src/workflows/stream/events.ts +++ b/examples/voice/src/workflows/room/events.ts @@ -1,7 +1,7 @@ import { defineEvent } from "@restackio/restack-sdk-ts/event"; import { WebsocketEvent } from "@restackio/integrations-websocket/types"; -export type StreamInfo = { +export type RoomInfo = { streamSid: string; }; @@ -10,10 +10,17 @@ export type UserEvent = { userName?: string; }; -export const streamInfoEvent = defineEvent("streamInfo"); +export type RoomMessageEvent = { + trackId: string; + text: string; +}; + +export const streamInfoEvent = defineEvent("streamInfo"); export const audioInEvent = defineEvent("audioIn"); -export const userEvent = defineEvent("user"); +export const userEvent = defineEvent("userMessage"); + +export const roomMessageEvent = defineEvent("roomMessage"); export const streamEndEvent = defineEvent("streamEnd"); diff --git a/examples/voice/src/workflows/stream/stream.ts b/examples/voice/src/workflows/room/room.ts similarity index 86% rename from examples/voice/src/workflows/stream/stream.ts rename to examples/voice/src/workflows/room/room.ts index facc7e1..97cee85 100644 --- a/examples/voice/src/workflows/stream/stream.ts +++ b/examples/voice/src/workflows/room/room.ts @@ -7,16 +7,17 @@ import { } from "@restackio/restack-sdk-ts/workflow"; import { onEvent } from "@restackio/restack-sdk-ts/event"; import * as functions from "../../functions"; -import { agentWorkflow } from "../agent/agent"; +import { conversationWorkflow } from "../conversation/conversation"; import { audioInEvent, userEvent, streamEndEvent, - StreamInfo, + RoomInfo, streamInfoEvent, UserEvent, + roomMessageEvent, } from "./events"; -import { assistantEvent } from "../agent/events"; +import { streamEvent } from "../conversation/events"; import { websocketTaskQueue } from "@restackio/integrations-websocket/taskQueue"; import * as websocketFunctions from "@restackio/integrations-websocket/functions"; import { deepgramTaskQueue } from "@restackio/integrations-deepgram/taskQueue"; @@ -24,7 +25,7 @@ import * as deepgramFunctions from "@restackio/integrations-deepgram/functions"; import { StreamEvent } from "@restackio/integrations-openai/types"; import { WebsocketEvent } from "@restackio/integrations-websocket/types"; -export async function streamWorkflow({ address }: { address?: string }) { +export async function roomWorkflow({ address }: { address?: string }) { try { let currentstreamSid: string; let interactionCount = 0; @@ -33,12 +34,12 @@ export async function streamWorkflow({ address }: { address?: string }) { text: string; }[] = []; let isSendingAudio = false; - let childAgentRunId = ""; + let childConversationWorkflowRunId = ""; const assistantName = "agent"; // Start long running websocket and stream welcome message to websocket. - onEvent(streamInfoEvent, async ({ streamSid }: StreamInfo) => { + onEvent(streamInfoEvent, async ({ streamSid }: RoomInfo) => { log.info(`Workflow update with streamSid: ${streamSid}`); step({ taskQueue: websocketTaskQueue, @@ -85,7 +86,7 @@ export async function streamWorkflow({ address }: { address?: string }) { await step({ taskQueue: websocketTaskQueue, }).websocketSend({ - name: assistantEvent.name, + name: roomMessageEvent.name, input: { streamSid, data: { trackId: assistantName, text: welcomeMessage }, @@ -97,7 +98,7 @@ export async function streamWorkflow({ address }: { address?: string }) { return { streamSid }; }); - // Receives audio, transcribe it and send transcription to AI agent. + // Receives audio, transcribe it and send transcription to conversation with AI . onEvent(audioInEvent, async ({ streamSid, media }: WebsocketEvent) => { log.info(`Workflow update with streamSid: ${streamSid}`); @@ -124,7 +125,7 @@ export async function streamWorkflow({ address }: { address?: string }) { await step({}).workflowSendEvent({ event: { - name: assistantEvent.name, + name: roomMessageEvent.name, input, }, workflow: { @@ -150,8 +151,8 @@ export async function streamWorkflow({ address }: { address?: string }) { address, }); - if (!childAgentRunId) { - const childAgent = await startChild(agentWorkflow, { + if (!childConversationWorkflowRunId) { + const childWorkflow = await startChild(conversationWorkflow, { args: [ { assistantName, @@ -159,9 +160,9 @@ export async function streamWorkflow({ address }: { address?: string }) { message: transcript, }, ], - workflowId: `${streamSid}-agentWorkflow`, + workflowId: `${streamSid}-conversationWorkflow`, }); - childAgentRunId = childAgent.firstExecutionRunId; + childConversationWorkflowRunId = childWorkflow.firstExecutionRunId; } else { const input: UserEvent = { userName: media.trackId, @@ -175,8 +176,8 @@ export async function streamWorkflow({ address }: { address?: string }) { input, }, workflow: { - workflowId: `${streamSid}-agentWorkflow`, - runId: childAgentRunId, + workflowId: `${streamSid}-conversationWorkflow`, + runId: childConversationWorkflowRunId, }, }); } @@ -186,7 +187,7 @@ export async function streamWorkflow({ address }: { address?: string }) { // Receives AI answer, generates audio and stream it to websocket. onEvent( - assistantEvent, + streamEvent, async ({ response, isLast, assistantName }: StreamEvent) => { const { media } = await step({ taskQueue: deepgramTaskQueue, @@ -221,7 +222,7 @@ export async function streamWorkflow({ address }: { address?: string }) { await step({ taskQueue: websocketTaskQueue, }).websocketSend({ - name: assistantEvent.name, + name: roomMessageEvent.name, input: { streamSid: currentstreamSid, data: { trackId: assistantName, text: response }, @@ -249,7 +250,7 @@ export async function streamWorkflow({ address }: { address?: string }) { return; } catch (error) { - log.error("Error in streamWorkflow", { error }); + log.error("Error in streamRoom", { error }); throw error; } } diff --git a/examples/voice/src/workflows/twilioCall.ts b/examples/voice/src/workflows/twilioCall.ts index 8ed26e3..71de901 100644 --- a/examples/voice/src/workflows/twilioCall.ts +++ b/examples/voice/src/workflows/twilioCall.ts @@ -1,15 +1,29 @@ import { log, step } from "@restackio/restack-sdk-ts/workflow"; -import * as functions from "../functions"; - +import * as twilioFunctions from "@restackio/integrations-twilio/functions"; +import { twilioTaskQueue } from "@restackio/integrations-twilio/taskQueue"; interface Output { sid: string; } -export async function twilioCallWorkflow(): Promise { - const { sid } = await step({ - taskQueue: `twilio`, +export async function twilioCallWorkflow({ + to, + from, + url, +}: { + to: string; + from: string; + url: string; +}): Promise { + const { sid } = await step({ + taskQueue: twilioTaskQueue, scheduleToCloseTimeout: "1 minute", - }).twilioCall(); + }).twilioCall({ + options: { + to, + from, + url, + }, + }); if (!sid) { throw new Error("Not able to create Twilio call"); From 960588b4e07104e160405199cb51c5bb21706c80 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 20 Aug 2024 18:19:29 +0200 Subject: [PATCH 045/122] hello bump integrations Former-commit-id: 4fc13b2e13ef40c0153f99eb9446ec80c3ad5283 Former-commit-id: f4358d8305bb01122391636c6a08138c60bd6c36 --- examples/hello/package.json | 4 ++-- examples/hello/pnpm-lock.yaml | 20 +++++++++---------- examples/hello/scheduleWorkflow.ts | 6 +++--- examples/hello/src/functions/getOpenaiKey.ts | 11 ---------- examples/hello/src/functions/index.ts | 1 - examples/hello/src/operator.ts | 4 ++-- .../src/workflows/{example.ts => hello.ts} | 9 +++------ examples/voice/.env.example | 8 ++++---- examples/voice/package.json | 2 +- 9 files changed, 25 insertions(+), 40 deletions(-) delete mode 100644 examples/hello/src/functions/getOpenaiKey.ts rename examples/hello/src/workflows/{example.ts => hello.ts} (84%) diff --git a/examples/hello/package.json b/examples/hello/package.json index e25a031..a47e83f 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -7,7 +7,7 @@ "start.watch": "nodemon src/operator.ts", "dev": "pnpm start.watch", "clean": "rm -rf node_modules", - "workflow": "ts-node ./scheduleWorkflow.ts", + "workflow": "ts-node ./scheduleWorkflow.ts" }, "nodemonConfig": { "execMap": { @@ -19,7 +19,7 @@ ] }, "dependencies": { - "@restackio/integrations-openai": "^0.0.2", + "@restackio/integrations-openai": "^0.0.12", "@restackio/restack-sdk-ts": "^0.0.53", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index c1b4695..ccaaaa5 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@restackio/integrations-openai': - specifier: ^0.0.2 - version: 0.0.2(zod@3.23.8) + specifier: ^0.0.12 + version: 0.0.12(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.48 - version: 0.0.48 + specifier: ^0.0.53 + version: 0.0.53 '@temporalio/workflow': specifier: ^1.11.1 version: 1.11.1 @@ -155,15 +155,15 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.2': - resolution: {integrity: sha512-gTckODl8fGTOxiaVuLtqk4cCm+c49Eymnp58uxtWgea/yV8WlOrLygE3i9/FS9RMvWyXjcJB2rnN7M/c43j+yA==} + '@restackio/integrations-openai@0.0.12': + resolution: {integrity: sha512-FqGxPPercgsxE6c2G1Gi2H2FoIWqOEJu8FJUZxgS1zZhvPqutePMk2xIn5TG31mpSsOAfrRLb4qAOanH71PHNA==} '@restackio/restack-sdk-ts@0.0.40': resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.48': - resolution: {integrity: sha512-Vy0ah9QcQRvE7grDmX2hvrc8wjtdRfXX8C+9kerk31rCUY0FEmws55wzZcEeS4UNj1iGSntGGJD4i4ML5U7RWA==} + '@restackio/restack-sdk-ts@0.0.53': + resolution: {integrity: sha512-gtFU4vinWaR8zM6sNH/wFMmA/EMBp+JyL+qszb4ambLd824CijUGwwEmJhIDUTS1L7Eg6Ki6mrNTaWEh8BdaHg==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.11': @@ -1121,7 +1121,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.2(zod@3.23.8)': + '@restackio/integrations-openai@0.0.12(zod@3.23.8)': dependencies: openai: 4.56.0(zod@3.23.8) transitivePeerDependencies: @@ -1140,7 +1140,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-ts@0.0.48': + '@restackio/restack-sdk-ts@0.0.53': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/hello/scheduleWorkflow.ts b/examples/hello/scheduleWorkflow.ts index d1d9c79..d71edf8 100644 --- a/examples/hello/scheduleWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -4,10 +4,10 @@ async function scheduleWorkflow() { try { const restack = new Restack(); - const workflowId = `${Date.now()}-exampleWorkflow`; + const workflowId = `${Date.now()}-helloWorkflow`; const runId = await restack.scheduleWorkflow({ - workflowName: "example", - workflowId: `${Date.now()}-exampleWorkflow`, + workflowName: "helloWorkflow", + workflowId, input: { name: "test", }, diff --git a/examples/hello/src/functions/getOpenaiKey.ts b/examples/hello/src/functions/getOpenaiKey.ts deleted file mode 100644 index b4a4b0f..0000000 --- a/examples/hello/src/functions/getOpenaiKey.ts +++ /dev/null @@ -1,11 +0,0 @@ -import "dotenv/config"; - -import { FunctionFailure } from "@restackio/restack-sdk-ts/function"; - -export async function getOpenaiKey() { - const openaiKey = process.env.OPENAI_API_KEY; - if (!openaiKey) { - throw FunctionFailure.nonRetryable("OPENAI_API_KEY is not set"); - } - return openaiKey; -} diff --git a/examples/hello/src/functions/index.ts b/examples/hello/src/functions/index.ts index 98776fd..06411ee 100644 --- a/examples/hello/src/functions/index.ts +++ b/examples/hello/src/functions/index.ts @@ -1,2 +1 @@ export * from "./goodbye"; -export * from "./getOpenaiKey"; diff --git a/examples/hello/src/operator.ts b/examples/hello/src/operator.ts index e630392..1de1200 100644 --- a/examples/hello/src/operator.ts +++ b/examples/hello/src/operator.ts @@ -1,5 +1,5 @@ import Restack from "@restackio/restack-sdk-ts"; -import { goodbye, getOpenaiKey } from "./functions"; +import { goodbye } from "./functions"; import { openaiService } from "@restackio/integrations-openai"; export const restack = new Restack(); @@ -10,7 +10,7 @@ async function main() { // Start service with current workflows and functions restack.startService({ workflowsPath, - functions: { goodbye, getOpenaiKey }, + functions: { goodbye }, }), // Start the openai service openaiService(), diff --git a/examples/hello/src/workflows/example.ts b/examples/hello/src/workflows/hello.ts similarity index 84% rename from examples/hello/src/workflows/example.ts rename to examples/hello/src/workflows/hello.ts index b3ac0bb..f93be3f 100644 --- a/examples/hello/src/workflows/example.ts +++ b/examples/hello/src/workflows/hello.ts @@ -9,11 +9,7 @@ interface Input { name: string; } -export async function example({ name }: Input) { - // Need to get the openai key from the utils function otherwise breaks determinism - - const openaiKey = await step({}).getOpenaiKey(); - +export async function helloWorkflow({ name }: Input) { const content = `Greet this person: ${name}. In 4 words or less.`; const MessageSchema = z.object({ @@ -25,10 +21,11 @@ export async function example({ name }: Input) { schema: zodToJsonSchema(MessageSchema), }; + // Step 1 create greeting message with openai + const openaiOutput = await step({ taskQueue: openaiTaskQueue, }).openaiChatCompletionsBase({ - apiKey: openaiKey, content, jsonSchema, }); diff --git a/examples/voice/.env.example b/examples/voice/.env.example index e1538e2..6cca7bb 100644 --- a/examples/voice/.env.example +++ b/examples/voice/.env.example @@ -1,6 +1,3 @@ -# Ngrok -SERVER=5756-5-61-150-161.ngrok-free.app - # OpenAI OPENAI_API_KEY= @@ -12,4 +9,7 @@ TWILIO_ACCOUNT_SID= TWILIO_AUTH_TOKEN= FROM_NUMBER= APP_NUMBER= -YOUR_NUMBER= \ No newline at end of file +YOUR_NUMBER= + +# Ngrok +SERVER=5756-5-61-150-161.ngrok-free.app diff --git a/examples/voice/package.json b/examples/voice/package.json index addafdd..03491dc 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -16,7 +16,7 @@ "dependencies": { "@deepgram/sdk": "^3.5.1", "@restackio/integrations-deepgram": "^0.0.5", - "@restackio/integrations-openai": "^0.0.11", + "@restackio/integrations-openai": "^0.0.12", "@restackio/integrations-twilio": "^0.0.2", "@restackio/integrations-websocket": "^0.0.6", "@restackio/restack-sdk-ts": "^0.0.53", From b593ea6f6445899a8c27df1a1019e9c58e38839d Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 20 Aug 2024 18:21:28 +0200 Subject: [PATCH 046/122] fix index Former-commit-id: 69be6386c1376c955284a860f68c23f252bcaf88 Former-commit-id: 480bc22f5934c77b9acb3b0c1fd575985574e30b --- examples/hello/src/workflows/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/hello/src/workflows/index.ts b/examples/hello/src/workflows/index.ts index 884301f..a132395 100644 --- a/examples/hello/src/workflows/index.ts +++ b/examples/hello/src/workflows/index.ts @@ -1 +1 @@ -export * from "./example"; +export * from "./hello"; From 3ca150d1c3a77a439dd51780987a45bdc664153f Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 20 Aug 2024 18:37:38 +0200 Subject: [PATCH 047/122] remove unused Former-commit-id: 1d67074a8c1cd541d6ee0f37a061bfc4e9849cf6 Former-commit-id: 84c56ca0cfbbc2889c151b3258f08135b8ef9588 --- examples/voice/package.json | 3 --- examples/voice/pnpm-lock.yaml | 10 +++++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/examples/voice/package.json b/examples/voice/package.json index 03491dc..f0b3d68 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -21,12 +21,9 @@ "@restackio/integrations-websocket": "^0.0.6", "@restackio/restack-sdk-ts": "^0.0.53", "@temporalio/workflow": "1.11.1", - "axios": "^1.7.4", "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.19.2", - "openai": "^4.56.0", - "twilio": "^5.2.2", "typescript": "^5.5.4", "uuid": "^10.0.0", "ws": "^8.18.0", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 853298d..48a367b 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.0.5 version: 0.0.5(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/integrations-openai': - specifier: ^0.0.11 - version: 0.0.11(encoding@0.1.12)(zod@3.23.8) + specifier: ^0.0.12 + version: 0.0.12(encoding@0.1.12)(zod@3.23.8) '@restackio/integrations-twilio': specifier: ^0.0.2 version: 0.0.2 @@ -190,8 +190,8 @@ packages: '@restackio/integrations-deepgram@0.0.5': resolution: {integrity: sha512-2PQMOcvKYqj7pqEFQsgT3fNhkfgvs1j1Wmv+g9fTUlyfKIbQpLRY56rQRGXs/Nt895rTiaCdM81Y8zR4FhzjPw==} - '@restackio/integrations-openai@0.0.11': - resolution: {integrity: sha512-vq30Wx3amf6vAhdSUYfpQPMQxex95LBJGbYS9CQCj23R8PitL06jckuR5QF/fGd4C2IOt8rrI8gBNUpM6QIO6A==} + '@restackio/integrations-openai@0.0.12': + resolution: {integrity: sha512-FqGxPPercgsxE6c2G1Gi2H2FoIWqOEJu8FJUZxgS1zZhvPqutePMk2xIn5TG31mpSsOAfrRLb4qAOanH71PHNA==} '@restackio/integrations-twilio@0.0.2': resolution: {integrity: sha512-aEFCM9IQ8ZofAV7qAQGFPSsV9qTSWCHjkMmU/vKGbt0mxwnwkhWXKE5wHRSmyklpwNo8WI6M99FHG8guVdlb1w==} @@ -1580,7 +1580,7 @@ snapshots: - encoding - utf-8-validate - '@restackio/integrations-openai@0.0.11(encoding@0.1.12)(zod@3.23.8)': + '@restackio/integrations-openai@0.0.12(encoding@0.1.12)(zod@3.23.8)': dependencies: openai: 4.56.0(encoding@0.1.12)(zod@3.23.8) transitivePeerDependencies: From 522152d171488960f1a39ed4b1c58ef7ad1ad06b Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 20 Aug 2024 18:57:17 +0200 Subject: [PATCH 048/122] revert missing packages Former-commit-id: 8ad77b11ba0c618a762c9cf22fc6a72d0aff281b Former-commit-id: 05ce5d2c75b9dc534887a1e32e6f188816fe6af3 --- examples/voice/package.json | 2 ++ examples/voice/pnpm-lock.yaml | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/examples/voice/package.json b/examples/voice/package.json index f0b3d68..735cd74 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -24,6 +24,8 @@ "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.19.2", + "openai": "^4.56.0", + "twilio": "^5.2.2", "typescript": "^5.5.4", "uuid": "^10.0.0", "ws": "^8.18.0", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 48a367b..e915ab1 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -29,9 +29,6 @@ importers: '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 - axios: - specifier: ^1.7.4 - version: 1.7.4 cors: specifier: ^2.8.5 version: 2.8.5 From 9f117acbdcd37f8d011d367f936b312a8942b17b Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Mon, 9 Sep 2024 23:46:21 +0200 Subject: [PATCH 049/122] example posthog Former-commit-id: bc73f0b7077c153baef57f6be14fecca485fcc3c Former-commit-id: 73026269d7570c00e6e47a12ca01f31197ff3ca9 --- examples/posthog/.env.example | 4 + examples/posthog/package.json | 31 + examples/posthog/pnpm-lock.yaml | 2146 +++++++++++++++++ examples/posthog/readme.md | 13 + examples/posthog/scheduleWorkflow.ts | 28 + examples/posthog/src/functions/index.ts | 2 + .../posthog/src/functions/posthog/index.ts | 5 + .../posthog/sessionRecording/blobChunks.ts | 99 + .../posthog/sessionRecording/queryEvents.ts | 75 + .../posthog/sessionRecording/recordings.ts | 92 + .../posthog/sessionRecording/snapshotBlob.ts | 38 + .../posthog/sessionRecording/snapshots.ts | 56 + examples/posthog/src/functions/utils/index.ts | 1 + .../functions/utils/sendEventToWorkflow.ts | 14 + examples/posthog/src/operator.ts | 51 + examples/posthog/src/workflows/chunk.ts | 104 + examples/posthog/src/workflows/digest.ts | 92 + examples/posthog/src/workflows/index.ts | 3 + examples/posthog/src/workflows/recording.ts | 143 ++ examples/posthog/tsconfig.json | 14 + 20 files changed, 3011 insertions(+) create mode 100644 examples/posthog/.env.example create mode 100644 examples/posthog/package.json create mode 100644 examples/posthog/pnpm-lock.yaml create mode 100644 examples/posthog/readme.md create mode 100644 examples/posthog/scheduleWorkflow.ts create mode 100644 examples/posthog/src/functions/index.ts create mode 100644 examples/posthog/src/functions/posthog/index.ts create mode 100644 examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts create mode 100644 examples/posthog/src/functions/posthog/sessionRecording/queryEvents.ts create mode 100644 examples/posthog/src/functions/posthog/sessionRecording/recordings.ts create mode 100644 examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts create mode 100644 examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts create mode 100644 examples/posthog/src/functions/utils/index.ts create mode 100644 examples/posthog/src/functions/utils/sendEventToWorkflow.ts create mode 100644 examples/posthog/src/operator.ts create mode 100644 examples/posthog/src/workflows/chunk.ts create mode 100644 examples/posthog/src/workflows/digest.ts create mode 100644 examples/posthog/src/workflows/index.ts create mode 100644 examples/posthog/src/workflows/recording.ts create mode 100644 examples/posthog/tsconfig.json diff --git a/examples/posthog/.env.example b/examples/posthog/.env.example new file mode 100644 index 0000000..d0b4c05 --- /dev/null +++ b/examples/posthog/.env.example @@ -0,0 +1,4 @@ +POSTHOG_API_KEY= +POSTHOG_PROJECT_ID= +POSTHOG_HOST=https://us.posthog.com +OPENAI_API_KEY= \ No newline at end of file diff --git a/examples/posthog/package.json b/examples/posthog/package.json new file mode 100644 index 0000000..590a3a1 --- /dev/null +++ b/examples/posthog/package.json @@ -0,0 +1,31 @@ +{ + "name": "restack-posthog", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "dev": "ts-node-dev --respawn --transpile-only src/operator.ts", + "clean": "rm -rf node_modules", + "workflow": "ts-node ./scheduleWorkflow.ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@restackio/integrations-openai": "^0.0.15", + "@restackio/restack-sdk-ts": "^0.0.53", + "@temporalio/workflow": "1.11.1", + "dotenv": "^16.4.5", + "typescript": "^5.5.4", + "uuid": "^10.0.0", + "zod": "^3.23.8", + "zod-to-json-schema": "^3.23.2" + }, + "devDependencies": { + "@types/node": "^22.4.1", + "@types/uuid": "^10.0.0", + "nodemon": "^3.1.4", + "ts-node": "^10.9.2", + "ts-node-dev": "^2.0.0" + } +} diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml new file mode 100644 index 0000000..d15cda1 --- /dev/null +++ b/examples/posthog/pnpm-lock.yaml @@ -0,0 +1,2146 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@restackio/integrations-openai': + specifier: ^0.0.15 + version: 0.0.15(zod@3.23.8) + '@restackio/restack-sdk-ts': + specifier: ^0.0.53 + version: 0.0.53 + '@temporalio/workflow': + specifier: 1.11.1 + version: 1.11.1 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + typescript: + specifier: ^5.5.4 + version: 5.5.4 + uuid: + specifier: ^10.0.0 + version: 10.0.0 + zod: + specifier: ^3.23.8 + version: 3.23.8 + zod-to-json-schema: + specifier: ^3.23.2 + version: 3.23.2(zod@3.23.8) + devDependencies: + '@types/node': + specifier: ^22.4.1 + version: 22.5.4 + '@types/uuid': + specifier: ^10.0.0 + version: 10.0.0 + nodemon: + specifier: ^3.1.4 + version: 3.1.4 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4) + ts-node-dev: + specifier: ^2.0.0 + version: 2.0.0(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4) + +packages: + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@grpc/grpc-js@1.11.2': + resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.3.0': + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@restackio/integrations-openai@0.0.15': + resolution: {integrity: sha512-a0woTiKJTJtBrLu7I+juBxM83S4Fks4tonvuez1sCUnLrT8MjFxqa/ptzrPJ6feuooMmjgdD0Y8Hb2q56xKDcQ==} + + '@restackio/restack-sdk-ts@0.0.53': + resolution: {integrity: sha512-gtFU4vinWaR8zM6sNH/wFMmA/EMBp+JyL+qszb4ambLd824CijUGwwEmJhIDUTS1L7Eg6Ki6mrNTaWEh8BdaHg==} + engines: {node: '>=20'} + + '@swc/core-darwin-arm64@1.7.24': + resolution: {integrity: sha512-s0k09qAcsoa8jIncwgRRd43VApYqXu28R4OmICtDffV4S01HtsRLRarXsMuLutoZk3tbxqitep+A8MPBuqNgdg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.24': + resolution: {integrity: sha512-1dlsulJ/fiOoJoJyQgaCewIEaZ7Sh6aJN4r5Uhl4lIZuNWa27XOb28A3K29/6HDO9JML3IJrvXPnl5o0vxDQuQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.24': + resolution: {integrity: sha512-2ft1NmxyvHCu5CY4r2rNVybPqZtJaxpRSzvCcPlVjN/2D5Q3QgM5kBoo1t+0RCFfk4TS2V0KWJhtqKz0CNX62Q==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.24': + resolution: {integrity: sha512-v/Z8I9tUUNkNHKa1Sw4r1Q7Wp66ezbRhe6xMIxvPNKVJQFaMOsRpe0t8T5qbk5sV2hJGOCKpQynSpZqQXLcJDQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.24': + resolution: {integrity: sha512-0jJx0IcajcyOXaJsx1jXy86lYVrbupyy2VUj/OiJux/ic4oBJLjfL+WOuc8T8/hZj2p6X0X4jvfSCqWSuic4kA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.24': + resolution: {integrity: sha512-2+3aKQpSGjVnWKDTKUPuJzitQlTQrGorg+PVFMRkv6l+RcNCHZQNe/8VYpMhyBhxDMb3LUlbp7776FRevcruxg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.24': + resolution: {integrity: sha512-PMQ6SkCtMoj0Ks77DiishpEmIuHpYjFLDuVOzzJCzGeGoii0yRP5lKy/VeglFYLPqJzmhK9BHlpVehVf/8ZpvA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.24': + resolution: {integrity: sha512-SNdCa4DtGXNWrPVHqctVUxgEVZVETuqERpqF50KFHO0Bvf5V/m1IJ4hFr2BxXlrzgnIW4t1Dpi6YOJbcGbEmnA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.24': + resolution: {integrity: sha512-5p3olHqwibMfrVFg2yVuSIPh9HArDYYlJXNZ9JKqeZk23A19J1pl9MuPmXDw+sxsiPfYJ/nUedIGeUHPF/+EDw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.24': + resolution: {integrity: sha512-gRyPIxDznS8d2ClfmWbytjp2d48bij6swHnDLWhukNuOvXdQkEmaIzjEsionFG/zhcFLnz8zKfTvjEjInAMzxg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.24': + resolution: {integrity: sha512-FzJaai6z6DYdICAY1UKNN5pzTn296ksK2zzEjjaXlpZtoMkGktWT0ttS7hbdBCPGhLOu5Q9TA2zdPejKUFjgig==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + + '@temporalio/activity@1.11.1': + resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} + + '@temporalio/client@1.11.1': + resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} + + '@temporalio/common@1.11.1': + resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} + + '@temporalio/core-bridge@1.11.1': + resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} + + '@temporalio/proto@1.11.1': + resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} + + '@temporalio/worker@1.11.1': + resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} + engines: {node: '>= 16.0.0'} + + '@temporalio/workflow@1.11.1': + resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@18.19.50': + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} + + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + + '@types/strip-bom@3.0.0': + resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} + + '@types/strip-json-comments@0.0.30': + resolution: {integrity: sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + caniuse-lite@1.0.30001659: + resolution: {integrity: sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA==} + + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + hasBin: true + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + dynamic-dedupe@0.3.0: + resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} + + electron-to-chromium@1.5.18: + resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + engines: {node: '>=10.0.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + memfs@4.11.1: + resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} + engines: {node: '>= 4.0.0'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + ms@3.0.0-canary.1: + resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} + engines: {node: '>=12.13'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nodemon@3.1.4: + resolution: {integrity: sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==} + engines: {node: '>=10'} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + openai@4.58.1: + resolution: {integrity: sha512-n9fN4RIjbj4PbZU6IN/FOBBbxHbHEcW18rDZ4nW2cDNfZP2+upm/FM20UCmRNMQTvhOvw/2Tw4vgioQyQb5nlA==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-loader@4.0.2: + resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.32.0: + resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} + engines: {node: '>=10'} + hasBin: true + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-node-dev@2.0.0: + resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==} + engines: {node: '>=0.8.0'} + hasBin: true + peerDependencies: + node-notifier: '*' + typescript: '*' + peerDependenciesMeta: + node-notifier: + optional: true + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 + + tsconfig@7.0.0: + resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unionfs@4.5.4: + resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + zod-to-json-schema@3.23.2: + resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} + peerDependencies: + zod: ^3.23.3 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@grpc/grpc-js@1.11.2': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 + + '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@restackio/integrations-openai@0.0.15(zod@3.23.8)': + dependencies: + openai: 4.58.1(zod@3.23.8) + transitivePeerDependencies: + - encoding + - zod + + '@restackio/restack-sdk-ts@0.0.53': + dependencies: + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1 + '@temporalio/workflow': 1.11.1 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@swc/core-darwin-arm64@1.7.24': + optional: true + + '@swc/core-darwin-x64@1.7.24': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.24': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.24': + optional: true + + '@swc/core-linux-arm64-musl@1.7.24': + optional: true + + '@swc/core-linux-x64-gnu@1.7.24': + optional: true + + '@swc/core-linux-x64-musl@1.7.24': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.24': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.24': + optional: true + + '@swc/core-win32-x64-msvc@1.7.24': + optional: true + + '@swc/core@1.7.24': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.24 + '@swc/core-darwin-x64': 1.7.24 + '@swc/core-linux-arm-gnueabihf': 1.7.24 + '@swc/core-linux-arm64-gnu': 1.7.24 + '@swc/core-linux-arm64-musl': 1.7.24 + '@swc/core-linux-x64-gnu': 1.7.24 + '@swc/core-linux-x64-musl': 1.7.24 + '@swc/core-win32-arm64-msvc': 1.7.24 + '@swc/core-win32-ia32-msvc': 1.7.24 + '@swc/core-win32-x64-msvc': 1.7.24 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.12': + dependencies: + '@swc/counter': 0.1.3 + + '@temporalio/activity@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + abort-controller: 3.0.0 + + '@temporalio/client@1.11.1': + dependencies: + '@grpc/grpc-js': 1.11.2 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/common@1.11.1': + dependencies: + '@temporalio/proto': 1.11.1 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/proto@1.11.1': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/worker@1.11.1': + dependencies: + '@swc/core': 1.7.24 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/common': 1.11.1 + '@temporalio/core-bridge': 1.11.1 + '@temporalio/proto': 1.11.1 + '@temporalio/workflow': 1.11.1 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.11.1 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.24)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)) + unionfs: 4.5.4 + webpack: 5.94.0(@swc/core@1.7.24) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/workflow@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/estree@1.0.5': {} + + '@types/json-schema@7.0.15': {} + + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 22.5.4 + form-data: 4.0.0 + + '@types/node@18.19.50': + dependencies: + undici-types: 5.26.5 + + '@types/node@22.5.4': + dependencies: + undici-types: 6.19.8 + + '@types/qs@6.9.15': {} + + '@types/strip-bom@3.0.0': {} + + '@types/strip-json-comments@0.0.30': {} + + '@types/uuid@10.0.0': {} + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + arg@5.0.2: {} + + asynckit@0.4.0: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001659 + electron-to-chromium: 1.5.18 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + buffer-from@1.1.2: {} + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + caniuse-lite@1.0.30001659: {} + + cargo-cp-artifact@0.1.9: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrome-trace-event@1.0.4: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + create-require@1.1.1: {} + + debug@4.3.7(supports-color@5.5.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + delayed-stream@1.0.0: {} + + diff@4.0.2: {} + + dotenv@16.4.5: {} + + dynamic-dedupe@0.3.0: + dependencies: + xtend: 4.0.2 + + electron-to-chromium@1.5.18: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + + escalade@3.2.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + form-data-encoder@1.7.2: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + fs-monkey@1.0.6: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + heap-js@2.5.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + hyperdyperid@1.2.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore-by-default@1.0.1: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isexe@3.1.1: {} + + jest-worker@27.5.1: + dependencies: + '@types/node': 22.5.4 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + loader-runner@4.3.0: {} + + lodash.camelcase@4.3.0: {} + + long@5.2.3: {} + + make-error@1.3.6: {} + + memfs@4.11.1: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + merge-stream@2.0.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimist@1.2.8: {} + + mkdirp@1.0.4: {} + + ms@2.1.3: {} + + ms@3.0.0-canary.1: {} + + neo-async@2.6.2: {} + + node-domexception@1.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-releases@2.0.18: {} + + nodemon@3.1.4: + dependencies: + chokidar: 3.6.0 + debug: 4.3.7(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 7.6.3 + simple-update-notifier: 2.0.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + + normalize-path@3.0.0: {} + + object-inspect@1.13.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + openai@4.58.1(zod@3.23.8): + dependencies: + '@types/node': 18.19.50 + '@types/node-fetch': 2.6.11 + '@types/qs': 6.9.15 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + qs: 6.13.0 + optionalDependencies: + zod: 3.23.8 + transitivePeerDependencies: + - encoding + + path-is-absolute@1.0.1: {} + + path-parse@1.0.7: {} + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.4.0 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.5.4 + long: 5.2.3 + + pstree.remy@1.1.8: {} + + punycode@2.3.1: {} + + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + require-directory@2.1.1: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + semver@7.6.3: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + simple-update-notifier@2.0.0: + dependencies: + semver: 7.6.3 + + source-map-js@1.2.1: {} + + source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.24)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.94.0(@swc/core@1.7.24) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@3.0.0: {} + + strip-json-comments@2.0.1: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + swc-loader@0.2.6(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)): + dependencies: + '@swc/core': 1.7.24 + '@swc/counter': 0.1.3 + webpack: 5.94.0(@swc/core@1.7.24) + + tapable@2.2.1: {} + + terser-webpack-plugin@5.3.10(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.32.0 + webpack: 5.94.0(@swc/core@1.7.24) + optionalDependencies: + '@swc/core': 1.7.24 + + terser@5.32.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + thingies@1.21.0(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + touch@3.1.1: {} + + tr46@0.0.3: {} + + tree-dump@1.0.2(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + tree-kill@1.2.2: {} + + ts-node-dev@2.0.0(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4): + dependencies: + chokidar: 3.6.0 + dynamic-dedupe: 0.3.0 + minimist: 1.2.8 + mkdirp: 1.0.4 + resolve: 1.22.8 + rimraf: 2.7.1 + source-map-support: 0.5.21 + tree-kill: 1.2.2 + ts-node: 10.9.2(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4) + tsconfig: 7.0.0 + typescript: 5.5.4 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + + ts-node@10.9.2(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.5.4 + acorn: 8.12.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.5.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.24 + + tsconfig@7.0.0: + dependencies: + '@types/strip-bom': 3.0.0 + '@types/strip-json-comments': 0.0.30 + strip-bom: 3.0.0 + strip-json-comments: 2.0.1 + + tslib@2.7.0: {} + + typescript@5.5.4: {} + + undefsafe@2.0.5: {} + + undici-types@5.26.5: {} + + undici-types@6.19.8: {} + + unionfs@4.5.4: + dependencies: + fs-monkey: 1.0.6 + + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + uuid@10.0.0: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + + webpack-sources@3.2.3: {} + + webpack@5.94.0(@swc/core@1.7.24): + dependencies: + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.3 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yn@3.1.1: {} + + zod-to-json-schema@3.23.2(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod@3.23.8: {} diff --git a/examples/posthog/readme.md b/examples/posthog/readme.md new file mode 100644 index 0000000..773747d --- /dev/null +++ b/examples/posthog/readme.md @@ -0,0 +1,13 @@ +# Install dependencies + +pnpm i + +# Add necessary keys from .env.example in .env + +# Run operator + +pnpm dev + +# Schedule digest workflow with + +pnpm workflow diff --git a/examples/posthog/scheduleWorkflow.ts b/examples/posthog/scheduleWorkflow.ts new file mode 100644 index 0000000..a74b59a --- /dev/null +++ b/examples/posthog/scheduleWorkflow.ts @@ -0,0 +1,28 @@ +import Restack from "@restackio/restack-sdk-ts"; +import "dotenv/config"; + +async function scheduleWorkflow() { + try { + const restack = new Restack(); + + const workflowRunId = await restack.scheduleWorkflow({ + workflowName: "digestWorkflow", + workflowId: `${Date.now()}-digestWorkflow`, + input: { + projectId: process.env.POSTHOG_PROJECT_ID, + host: process.env.POSTHOG_HOST, + maxRecordings: 5, // Useful to limit cost when debugging locally. Comment out to run for all recordings + maxChunksPerRecordingBlob: 10, // Useful to limit cost when debugging locally. Comment out to process all chunks + }, + }); + + console.log("Workflow scheduled successfully:", workflowRunId); + + process.exit(0); // Exit the process successfully + } catch (error) { + console.error("Error scheduling workflow:", error); + process.exit(1); // Exit the process with an error code + } +} + +scheduleWorkflow(); diff --git a/examples/posthog/src/functions/index.ts b/examples/posthog/src/functions/index.ts new file mode 100644 index 0000000..f412531 --- /dev/null +++ b/examples/posthog/src/functions/index.ts @@ -0,0 +1,2 @@ +export * from "./posthog"; +export * from "./utils"; diff --git a/examples/posthog/src/functions/posthog/index.ts b/examples/posthog/src/functions/posthog/index.ts new file mode 100644 index 0000000..6cfaca6 --- /dev/null +++ b/examples/posthog/src/functions/posthog/index.ts @@ -0,0 +1,5 @@ +export * from "./sessionRecording/snapshots"; +export * from "./sessionRecording/recordings"; +export * from "./sessionRecording/snapshotBlob"; +export * from "./sessionRecording/blobChunks"; +export * from "./sessionRecording/queryEvents"; diff --git a/examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts b/examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts new file mode 100644 index 0000000..4db32c1 --- /dev/null +++ b/examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts @@ -0,0 +1,99 @@ +import { functionInfo, log } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; +import { posthogGetSnapshotBlob } from "./snapshotBlob"; +import Restack from "@restackio/restack-sdk-ts"; +import { chunkWorkflow } from "../../../workflows/chunk"; + +export async function posthogBlobChunks({ + recordingId, + blobKeys, + projectId, + host, + maxChunks = Infinity, +}: { + recordingId: string; + blobKeys: string[]; + projectId: string; + host: string; + maxChunks?: number; +}) { + const { workflowExecution } = functionInfo(); + + try { + let recordingBlobs: string[] = []; + const restack = new Restack(); + await Promise.all( + blobKeys.map(async (blobKey) => { + const recordingBlob = await posthogGetSnapshotBlob({ + recordingId, + blobKey: blobKey, + projectId, + host, + }); + recordingBlobs.push(recordingBlob); + }) + ); + + if (recordingBlobs.length === 0) { + throw new Error("No recording blobs"); + } + + const maxCharacters = 20000; + + log.info("Recording blobs", { + length: recordingBlobs.length, + chunks: Math.ceil(recordingBlobs[0].length / maxCharacters), + }); + + const schedulePromises = recordingBlobs.map((blob, i) => { + if (blob.length > maxCharacters) { + const chunks = Math.min( + Math.ceil(blob.length / maxCharacters), + maxChunks + ); // Limit chunks + return Promise.all( + Array.from({ length: chunks }, (_, j) => { + const chunk = blob.slice( + j * maxCharacters, + (j + 1) * maxCharacters + ); + return restack.scheduleWorkflow({ + workflowName: chunkWorkflow.name, + workflowId: `${recordingId}-${i}-${j}-chunkWorkflow`, + input: { + recordingId, + chunk, + workflow: workflowExecution, + isLastChunk: j === chunks - 1, + }, + }); + }) + ); + } else { + return restack.scheduleWorkflow({ + workflowName: chunkWorkflow.name, + workflowId: `${recordingId}-${i}-0-chunkWorkflow`, + input: { + recordingId, + chunk: JSON.stringify({ + recordingBlobs: [blob], + }), + workflow: workflowExecution, + isLastChunk: true, + }, + }); + } + }); + + await Promise.all(schedulePromises); + + return { + recordingId, + blobLength: recordingBlobs.length, + blobchunks: Math.ceil(recordingBlobs[0].length / maxCharacters), + }; + } catch (error) { + log.error("Encountered exception. ", { error }); + throw error; + } +} diff --git a/examples/posthog/src/functions/posthog/sessionRecording/queryEvents.ts b/examples/posthog/src/functions/posthog/sessionRecording/queryEvents.ts new file mode 100644 index 0000000..9f84c5d --- /dev/null +++ b/examples/posthog/src/functions/posthog/sessionRecording/queryEvents.ts @@ -0,0 +1,75 @@ +export type PosthogEvent = { + uuid: string; + event: string; + timestamp: string; + elements_chain: string; + window_id?: string; + current_url?: string; + event_type?: string; +}; + +export async function posthogSessionEvents({ + recordingId, + projectId, + host, + apiKey = process.env.POSTHOG_API_KEY, +}: { + recordingId: string; + projectId: string; + host: string; + apiKey?: string; +}): Promise { + const url = `${host}/api/projects/${projectId}/query/`; + const headers = { + "content-type": "application/json", + Authorization: `Bearer ${apiKey}`, + }; + + const query = { + kind: "EventsQuery", + select: [ + "uuid", + "event", + "timestamp", + "elements_chain", + "properties.$window_id", + "properties.$current_url", + "properties.$event_type", + ], + orderBy: ["timestamp ASC"], + limit: 1000000, + properties: [ + { + key: "$session_id", + value: [recordingId], + operator: "exact", + type: "event", + }, + ], + }; + + const payload = { + query: query, + }; + + const response = await fetch(url, { + method: "POST", + headers: headers, + body: JSON.stringify(payload), + }); + + const data = await response.json(); + + // Remap the results to match the Event type + return data.results.map( + (result: any[]): PosthogEvent => ({ + uuid: result[0], + event: result[1], + timestamp: result[2], + elements_chain: result[3], + window_id: result[4], + current_url: result[5], + event_type: result[6], + }) + ); +} diff --git a/examples/posthog/src/functions/posthog/sessionRecording/recordings.ts b/examples/posthog/src/functions/posthog/sessionRecording/recordings.ts new file mode 100644 index 0000000..198edeb --- /dev/null +++ b/examples/posthog/src/functions/posthog/sessionRecording/recordings.ts @@ -0,0 +1,92 @@ +import { log } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; + +export type PosthogRecording = { + id: string; + distinct_id: string; + viewed: boolean; + recording_duration: number; + active_seconds: number; + inactive_seconds: number; + start_time: string; + end_time: string; + click_count: number; + keypress_count: number; + mouse_activity_count: number; + console_log_count: number; + console_warn_count: number; + console_error_count: number; + start_url: string; + person: { + id: number; + name: string; + distinct_ids: string[]; + properties: any; + created_at: string; + uuid: string; + }; + storage: string; + snapshot_source: string; +}; + +type ApiResponse = { + count: number; + next: string | null; + previous: string | null; + results: PosthogRecording[]; +}; + +export async function posthogGetRecordings({ + projectId, + host, + apiKey = process.env.POSTHOG_API_KEY, +}: { + projectId: string; + host: string; + apiKey?: string; +}) { + try { + if (!apiKey) { + throw new Error("Posthog personal api key missing"); + } + + const headers = { Authorization: `Bearer ${apiKey}` }; + const now = new Date(); + const yesterday = new Date(now); + yesterday.setDate(now.getDate() - 1); + + let url = `${host}/api/projects/${projectId}/session_recordings/`; + let allResults: PosthogRecording[] = []; + let hasMore = true; + + while (hasMore) { + const response = await fetch(url, { headers }); + + if (!response.ok) { + throw new Error(`HTTP error ${response.status}`); + } + + const result: ApiResponse = await response.json(); + const filteredResults = result.results.filter( + (recording: PosthogRecording) => + new Date(recording.start_time) >= yesterday + ); + + allResults = allResults.concat(filteredResults); + + if (result.next && filteredResults.length === result.results.length) { + url = result.next; + } else { + hasMore = false; + } + } + + return { + count: allResults.length, + results: allResults, + }; + } catch (error) { + log.error("Encountered exception. ", { error }); + throw error; + } +} diff --git a/examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts b/examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts new file mode 100644 index 0000000..6623a09 --- /dev/null +++ b/examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts @@ -0,0 +1,38 @@ +import { log } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; + +export async function posthogGetSnapshotBlob({ + recordingId, + blobKey, + apiKey = process.env.POSTHOG_API_KEY, + projectId, + host, +}: { + recordingId: string; + blobKey: string; + apiKey?: string; + projectId: string; + host: string; +}) { + try { + if (!apiKey) { + throw new Error("Posthog personal api key missing"); + } + + const headers = { Authorization: `Bearer ${apiKey}` }; + const url = `${host}/api/projects/${projectId}/session_recordings/${recordingId}/snapshots?blob_key=${blobKey}&source=blob`; + + const response = await fetch(url, { headers }); + + if (!response.ok) { + throw new Error(`HTTP error ${response.status}`); + } + + const result = await response.text(); + + return result; + } catch (error) { + log.error("Encountered exception. ", { error }); + throw error; + } +} diff --git a/examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts b/examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts new file mode 100644 index 0000000..0e17bc9 --- /dev/null +++ b/examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts @@ -0,0 +1,56 @@ +import { log } from "@restackio/restack-sdk-ts/function"; +import "dotenv/config"; + +export type PosthogSnapshot = { + source: "blob" | "realtime"; + start_timestamp: string; + end_timestamp: string; + blob_key: string; +}; + +export type ApiResponse = { + sources: PosthogSnapshot[]; +}; + +export async function posthogGetSnapshots({ + recordingId, + apiKey = process.env.POSTHOG_API_KEY, + projectId, + host, +}: { + recordingId: string; + apiKey?: string; + projectId: string; + host: string; +}) { + try { + if (!apiKey) { + throw new Error("Posthog personal api key missing"); + } + + const headers = { Authorization: `Bearer ${apiKey}` }; + const url = `${host}/api/projects/${projectId}/session_recordings/${recordingId}/snapshots`; + + const response = await fetch(url, { headers }); + + if (!response.ok) { + throw new Error(`HTTP error ${response.status}`); + } + + const result: ApiResponse = await response.json(); + + const blobKeys = result.sources + .filter((source) => source.source === "blob" && source.blob_key) + .map((source) => source.blob_key ?? ""); + + log.info("blobKeys", { blobKeys }); + + return { + snapshots: result.sources, + blobKeys: blobKeys, + }; + } catch (error) { + log.error("Encountered exception. ", { error }); + throw error; + } +} diff --git a/examples/posthog/src/functions/utils/index.ts b/examples/posthog/src/functions/utils/index.ts new file mode 100644 index 0000000..6ca9d6d --- /dev/null +++ b/examples/posthog/src/functions/utils/index.ts @@ -0,0 +1 @@ +export * from "./sendEventToWorkflow"; diff --git a/examples/posthog/src/functions/utils/sendEventToWorkflow.ts b/examples/posthog/src/functions/utils/sendEventToWorkflow.ts new file mode 100644 index 0000000..2258f0f --- /dev/null +++ b/examples/posthog/src/functions/utils/sendEventToWorkflow.ts @@ -0,0 +1,14 @@ +import Restack from "@restackio/restack-sdk-ts"; +import { SendWorkflowEvent } from "@restackio/restack-sdk-ts/event"; + +export async function workflowSendEvent({ + event, + workflow, +}: SendWorkflowEvent) { + const restack = new Restack(); + + return restack.sendWorkflowEvent({ + event, + workflow, + }); +} diff --git a/examples/posthog/src/operator.ts b/examples/posthog/src/operator.ts new file mode 100644 index 0000000..99d8af9 --- /dev/null +++ b/examples/posthog/src/operator.ts @@ -0,0 +1,51 @@ +import Restack from "@restackio/restack-sdk-ts"; +import { + posthogGetRecordings, + posthogGetSnapshotBlob, + posthogGetSnapshots, + posthogBlobChunks, + posthogSessionEvents, + workflowSendEvent, +} from "./functions"; +import { openaiService } from "@restackio/integrations-openai"; + +async function main() { + const workflowsPath = require.resolve("./Workflows"); + + try { + const restack = new Restack(); + + // https://posthog.com/docs/api#rate-limiting + + await Promise.all([ + restack.startService({ + workflowsPath, + functions: { + workflowSendEvent, + }, + }), + restack.startService({ + taskQueue: "posthog", + functions: { + posthogGetRecordings, + posthogGetSnapshotBlob, + posthogGetSnapshots, + posthogBlobChunks, + posthogSessionEvents, + }, + options: { + rateLimit: 240 * 60, + }, + }), + openaiService(), + ]); + + console.log("Services running successfully."); + } catch (e) { + console.error("Failed to run worker", e); + } +} + +main().catch((err) => { + console.error("Error in main:", err); +}); diff --git a/examples/posthog/src/workflows/chunk.ts b/examples/posthog/src/workflows/chunk.ts new file mode 100644 index 0000000..1657a37 --- /dev/null +++ b/examples/posthog/src/workflows/chunk.ts @@ -0,0 +1,104 @@ +import { log, step } from "@restackio/restack-sdk-ts/workflow"; +import * as functions from "../functions"; +import z from "zod"; +import zodToJsonSchema from "zod-to-json-schema"; +import { + chunkSummaryEvent, + ChunkSummaryEvent, + summaryEndEvent, +} from "./recording"; + +const chunkSummarySchema = z.object({ + recordingId: z.string().describe("The id of the recording."), + fromTimestamp: z + .string() + .describe("The start timestamp of this recording chunk."), + toTimestamp: z + .string() + .describe("The end timestamp of this recording chunk."), + summary: z.string().describe("The summary of this recording chunk."), +}); + +export type ChunkSummary = z.infer; + +export async function chunkWorkflow({ + recordingId, + chunk, + workflow, + isLastChunk, +}: { + recordingId: string; + chunk: string; + workflow: { + workflowId: string; + runId: string; + }; + isLastChunk?: boolean; +}) { + const chunkSummaryJsonSchema = { + name: "chunkSummary", + schema: zodToJsonSchema(chunkSummarySchema), + }; + + const { cost, result } = await step({ + taskQueue: "openai", + }).openaiChatCompletionsBase({ + systemPrompt: + "You are a helpful assistant that summarizes posthog recordings. Here is the snapshot blob of it", + model: "gpt-4o-mini", + content: ` + Here is a chunk of the recording blob: + ${chunk} + For the particular extract the behavior of the user and summarize it. + Highlight if the user is doing something interesting or unexpected. + If nothing interesting, just write "No interesting behavior". + `, + jsonSchema: chunkSummaryJsonSchema, + price: { + input: 0.00000015, + output: 0.0000006, + }, + }); + + const summaryResult = result.choices[0].message.content; + + if (!summaryResult) { + throw new Error("No summary result"); + } + + const summary = JSON.parse(summaryResult) as ChunkSummary; + + const input: ChunkSummaryEvent = { + recordingId, + summary, + cost, + }; + + try { + await step({ + taskQueue: "restack", + }).workflowSendEvent({ + event: { + name: chunkSummaryEvent.name, + input, + }, + workflow, + }); + + if (isLastChunk) { + await step({ + taskQueue: "restack", + }).workflowSendEvent({ + event: { + name: summaryEndEvent.name, + }, + workflow, + }); + } + } catch (error) { + log.error("Encountered exception. ", { error }); + throw error; + } + + return input; +} diff --git a/examples/posthog/src/workflows/digest.ts b/examples/posthog/src/workflows/digest.ts new file mode 100644 index 0000000..5bee6bc --- /dev/null +++ b/examples/posthog/src/workflows/digest.ts @@ -0,0 +1,92 @@ +import { executeChild, step } from "@restackio/restack-sdk-ts/workflow"; +import { recordingWorkflow } from "./recording"; +import * as functions from "../functions"; +import z from "zod"; + +export async function digestWorkflow({ + projectId, + host, + maxRecordings, + maxChunksPerRecordingBlob, +}: { + projectId: string; + host: string; + maxRecordings?: number; + maxChunksPerRecordingBlob?: number; +}) { + let totalCost = 0; + // Get last 24h recordings + const { results: recordings } = await step({ + taskQueue: "posthog", + }).posthogGetRecordings({ projectId, host }); + + let summaries: Awaited>[] = []; + + await Promise.all( + recordings.slice(0, maxRecordings).map(async (recording) => { + // Get snapshots for recording + const { blobKeys } = await step({ + taskQueue: "posthog", + }).posthogGetSnapshots({ + recordingId: recording.id, + projectId, + host, + }); + + if (blobKeys.length > 0) { + // Get recording summary + const recordingData = await executeChild(recordingWorkflow, { + workflowId: `${recording.id}-recordingWorkflow`, + args: [ + { + recordingId: recording.id, + blobKeys, + projectId, + host, + maxChunks: maxChunksPerRecordingBlob, + }, + ], + }); + totalCost += recordingData.totalCost; + summaries.push(recordingData); + } + }) + ); + + // Create a digest from all the chunks summaries + + const { cost, result } = await step({ + taskQueue: "openai", + }).openaiChatCompletionsBase({ + systemPrompt: + "You are a helpful assistant that summarizes posthog recordings.", + model: "gpt-4o-mini", + content: ` + Summarize the following PostHog recordings analysis into a digestible email, following the structure: + + • 10-second overview: Briefly mention the most urgent and critical user behavior or anomalies. + • 30-second summary: Highlight key user interactions and events, such as network requests, page views, and modal interactions. Focus on patterns or significant moments. + • 1-minute deep dive: Provide a more detailed breakdown of the user’s behavior, including network activity, UI interactions, and any potential anomalies. Include timestamps or specific event details when relevant. + Finally, end the email with a brief call to action or recommendation. + Include the url to the recordings when necessary so user can easily access them. + To make the recording url replace the RECORDING_ID in: ${host}/project/${projectId}/replay/RECORDING_ID + + Here is the data: + ${JSON.stringify(summaries)} + `, + price: { + input: 0.00000015, + output: 0.0000006, + }, + }); + + totalCost += cost; + + const digest = result.choices[0].message.content; + + return { + digest, + totalCost, + summaries, + }; +} diff --git a/examples/posthog/src/workflows/index.ts b/examples/posthog/src/workflows/index.ts new file mode 100644 index 0000000..fd6d969 --- /dev/null +++ b/examples/posthog/src/workflows/index.ts @@ -0,0 +1,3 @@ +export * from "./digest"; +export * from "./recording"; +export * from "./chunk"; diff --git a/examples/posthog/src/workflows/recording.ts b/examples/posthog/src/workflows/recording.ts new file mode 100644 index 0000000..855ae1a --- /dev/null +++ b/examples/posthog/src/workflows/recording.ts @@ -0,0 +1,143 @@ +import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; +import * as functions from "../functions"; +import { condition, log, step } from "@restackio/restack-sdk-ts/workflow"; +import z from "zod"; +import { ChunkSummary } from "./chunk"; +import zodToJsonSchema from "zod-to-json-schema"; + +export type ChunkSummaryEvent = { + recordingId: string; + summary: ChunkSummary; + cost: number; +}; + +export const chunkSummaryEvent = defineEvent("chunkSummary"); + +export const summaryEndEvent = defineEvent("summaryEnd"); + +export async function recordingWorkflow({ + recordingId, + blobKeys, + projectId, + host, + maxChunks, +}: { + recordingId: string; + blobKeys: string[]; + projectId: string; + host: string; + maxChunks?: number; +}) { + const events = await step({ + taskQueue: "posthog", + }).posthogSessionEvents({ + recordingId, + projectId, + host, + }); + + let summaries: ChunkSummaryEvent[] = []; + let totalCost = 0; + + // Get chunks and create unique workflow for each and stream back event summary + + await step({ + taskQueue: "posthog", + }).posthogBlobChunks({ + recordingId, + blobKeys, + projectId, + host, + maxChunks, + }); + + // Push summary to check + + onEvent( + chunkSummaryEvent, + async ({ recordingId, summary, cost }: ChunkSummaryEvent) => { + summaries.push({ + recordingId, + summary, + cost, + }); + totalCost += cost; + return { + recordingId, + summary, + cost, + }; + } + ); + + let ended = false; + + // When all summaries are done, continue. + + onEvent(summaryEndEvent, async () => { + log.info(`summaryEnd received`); + ended = true; + }); + + await condition(() => ended); + + // Create a summary from all the chunks summaries + + const recordingSummarySchema = z.object({ + recordingId: z.string().describe("The id of the recording."), + summary: z.string().describe("The summary of the recording."), + highlights: z + .array( + z.object({ + name: z.string().describe("The name of the behavior highlight."), + timestamp: z + .string() + .describe("The timestamp of the behavior highlight."), + }) + ) + .describe("Noticeable user behavior to be highlighted."), + }); + + type RecordingSummary = z.infer; + + const recordingSummaryJsonSchema = { + name: "recordingSummary", + schema: zodToJsonSchema(recordingSummarySchema), + }; + + const { cost, result } = await step({ + taskQueue: "openai", + }).openaiChatCompletionsBase({ + systemPrompt: + "You are a helpful assistant that summarizes posthog recordings.", + model: "gpt-4o-mini", + content: ` + Here are summaries of each chunk of the recording blob: + ${summaries} + The users events are ${JSON.stringify(events)} + Group all this data, make a summary and highlight particular interesting or unexpected user behavior. + `, + jsonSchema: recordingSummaryJsonSchema, + price: { + input: 0.00000015, + output: 0.0000006, + }, + }); + + totalCost += cost; + + const summaryResult = result.choices[0].message.content; + + if (!summaryResult) { + throw new Error("No summary result"); + } + + const summary = JSON.parse(summaryResult) as RecordingSummary; + + return { + summary, + totalCost, + events, + summaries, + }; +} diff --git a/examples/posthog/tsconfig.json b/examples/posthog/tsconfig.json new file mode 100644 index 0000000..a544b3a --- /dev/null +++ b/examples/posthog/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "Node16", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "resolveJsonModule": true + }, + "include": ["src/**/*.ts", "src/server"], + "exclude": ["node_modules"] +} \ No newline at end of file From 44612b8c7dfbe397a0e7d63041af094a12dc1095 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Tue, 10 Sep 2024 00:14:32 +0200 Subject: [PATCH 050/122] fix openai types on posthog example Former-commit-id: fc02b3b1c41c997fc6284c70b5a6ebdc6de78c7e Former-commit-id: 2ff5c665a6d5e40b340b09ddb8a76702e466037a --- examples/posthog/src/workflows/chunk.ts | 6 ++++-- examples/posthog/src/workflows/digest.ts | 7 ++++--- examples/posthog/src/workflows/recording.ts | 6 ++++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/examples/posthog/src/workflows/chunk.ts b/examples/posthog/src/workflows/chunk.ts index 1657a37..9545ae4 100644 --- a/examples/posthog/src/workflows/chunk.ts +++ b/examples/posthog/src/workflows/chunk.ts @@ -1,5 +1,7 @@ import { log, step } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../functions"; +import * as openaiFunctions from "@restackio/integrations-openai/functions"; +import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; import z from "zod"; import zodToJsonSchema from "zod-to-json-schema"; import { @@ -40,8 +42,8 @@ export async function chunkWorkflow({ schema: zodToJsonSchema(chunkSummarySchema), }; - const { cost, result } = await step({ - taskQueue: "openai", + const { cost, result } = await step({ + taskQueue: openaiTaskQueue, }).openaiChatCompletionsBase({ systemPrompt: "You are a helpful assistant that summarizes posthog recordings. Here is the snapshot blob of it", diff --git a/examples/posthog/src/workflows/digest.ts b/examples/posthog/src/workflows/digest.ts index 5bee6bc..01d5545 100644 --- a/examples/posthog/src/workflows/digest.ts +++ b/examples/posthog/src/workflows/digest.ts @@ -1,7 +1,8 @@ import { executeChild, step } from "@restackio/restack-sdk-ts/workflow"; import { recordingWorkflow } from "./recording"; import * as functions from "../functions"; -import z from "zod"; +import * as openaiFunctions from "@restackio/integrations-openai/functions"; +import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; export async function digestWorkflow({ projectId, @@ -55,8 +56,8 @@ export async function digestWorkflow({ // Create a digest from all the chunks summaries - const { cost, result } = await step({ - taskQueue: "openai", + const { cost, result } = await step({ + taskQueue: openaiTaskQueue, }).openaiChatCompletionsBase({ systemPrompt: "You are a helpful assistant that summarizes posthog recordings.", diff --git a/examples/posthog/src/workflows/recording.ts b/examples/posthog/src/workflows/recording.ts index 855ae1a..70518b4 100644 --- a/examples/posthog/src/workflows/recording.ts +++ b/examples/posthog/src/workflows/recording.ts @@ -4,6 +4,8 @@ import { condition, log, step } from "@restackio/restack-sdk-ts/workflow"; import z from "zod"; import { ChunkSummary } from "./chunk"; import zodToJsonSchema from "zod-to-json-schema"; +import * as openaiFunctions from "@restackio/integrations-openai/functions"; +import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; export type ChunkSummaryEvent = { recordingId: string; @@ -105,8 +107,8 @@ export async function recordingWorkflow({ schema: zodToJsonSchema(recordingSummarySchema), }; - const { cost, result } = await step({ - taskQueue: "openai", + const { cost, result } = await step({ + taskQueue: openaiTaskQueue, }).openaiChatCompletionsBase({ systemPrompt: "You are a helpful assistant that summarizes posthog recordings.", From a856e242df790b5513de3b6db095981e5c678b83 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 12 Sep 2024 14:59:52 +0200 Subject: [PATCH 051/122] connect services to cloud client Former-commit-id: 6cd7b992bd4c8cf291ea3ba802f38a6b8feffe36 Former-commit-id: 9afc4af28dc84fb85231b6412bd8e96d568b03d2 --- .gitignore | 1 + docker-compose.yaml | 2 +- examples/hello/package.json | 12 +- examples/hello/pnpm-lock.yaml | 556 +++++++++++------- examples/hello/scheduleWorkflow.ts | 8 +- examples/hello/src/client.ts | 14 + .../hello/src/{operator.ts => services.ts} | 7 +- examples/posthog/package.json | 12 +- examples/posthog/pnpm-lock.yaml | 196 +++--- examples/posthog/scheduleWorkflow.ts | 6 +- examples/posthog/src/client.ts | 14 + .../posthog/src/{operator.ts => services.ts} | 10 +- examples/posthog/src/workflows/chunk.ts | 16 +- examples/voice/callWorkflow.ts | 6 +- examples/voice/package.json | 24 +- examples/voice/pnpm-lock.yaml | 554 +++++++++-------- examples/voice/readme.md | 2 +- examples/voice/src/client.ts | 14 + .../voice/src/{operator.ts => services.ts} | 16 +- 19 files changed, 812 insertions(+), 658 deletions(-) create mode 100644 examples/hello/src/client.ts rename examples/hello/src/{operator.ts => services.ts} (80%) create mode 100644 examples/posthog/src/client.ts rename examples/posthog/src/{operator.ts => services.ts} (85%) create mode 100644 examples/voice/src/client.ts rename examples/voice/src/{operator.ts => services.ts} (79%) diff --git a/.gitignore b/.gitignore index bd87338..a1c131a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ node_modules dist .env +.env* .npmrc \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 57f5281..0c5d050 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ services: app: - container_name: restack-backend + container_name: restack-engine image: ghcr.io/restackio/local-operator:main ports: - "5233:5233" diff --git a/examples/hello/package.json b/examples/hello/package.json index a47e83f..66193ce 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "start.watch": "nodemon src/operator.ts", + "start.watch": "nodemon src/services.ts", "dev": "pnpm start.watch", "clean": "rm -rf node_modules", "workflow": "ts-node ./scheduleWorkflow.ts" @@ -19,16 +19,16 @@ ] }, "dependencies": { - "@restackio/integrations-openai": "^0.0.12", - "@restackio/restack-sdk-ts": "^0.0.53", + "@restackio/integrations-openai": "^0.0.18", + "@restackio/restack-sdk-ts": "^0.0.58", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", "zod": "^3.23.8", - "zod-to-json-schema": "^3.23.2" + "zod-to-json-schema": "^3.23.3" }, "devDependencies": { - "@types/node": "^20.11.1", - "nodemon": "^2.0.12", + "@types/node": "^20.16.5", + "nodemon": "^2.0.22", "ts-node": "^10.9.2" } } diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index ccaaaa5..43b7a60 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@restackio/integrations-openai': - specifier: ^0.0.12 - version: 0.0.12(zod@3.23.8) + specifier: ^0.0.18 + version: 0.0.18(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.53 - version: 0.0.53 + specifier: ^0.0.58 + version: 0.0.58 '@temporalio/workflow': specifier: ^1.11.1 version: 1.11.1 @@ -24,18 +24,18 @@ importers: specifier: ^3.23.8 version: 3.23.8 zod-to-json-schema: - specifier: ^3.23.2 - version: 3.23.2(zod@3.23.8) + specifier: ^3.23.3 + version: 3.23.3(zod@3.23.8) devDependencies: '@types/node': - specifier: ^20.11.1 - version: 20.14.12 + specifier: ^20.16.5 + version: 20.16.5 nodemon: - specifier: ^2.0.12 + specifier: ^2.0.22 version: 2.0.22 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.5.4) integrations/openai: dependencies: @@ -71,8 +71,8 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@grpc/grpc-js@1.11.1': - resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} + '@grpc/grpc-js@1.11.2': + resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -155,33 +155,27 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.12': - resolution: {integrity: sha512-FqGxPPercgsxE6c2G1Gi2H2FoIWqOEJu8FJUZxgS1zZhvPqutePMk2xIn5TG31mpSsOAfrRLb4qAOanH71PHNA==} + '@restackio/integrations-openai@0.0.18': + resolution: {integrity: sha512-UyLl1kKV1xR9VJfH11sR+LFiXf5XGdwEkfCi+Ba5ORx6qo8UG1g9wEYYUua99hH3l/j5ReEK/fI6GvxFGW8lcg==} '@restackio/restack-sdk-ts@0.0.40': resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.53': - resolution: {integrity: sha512-gtFU4vinWaR8zM6sNH/wFMmA/EMBp+JyL+qszb4ambLd824CijUGwwEmJhIDUTS1L7Eg6Ki6mrNTaWEh8BdaHg==} + '@restackio/restack-sdk-ts@0.0.58': + resolution: {integrity: sha512-SC/sZIBl5KrpLx7S44DQMYmK24N3ClZB3njLd+1/7PJ/7d2TzBKh/s1w9xOt8/c4msDNuRSWyV2iiywgrO6dAg==} engines: {node: '>=20'} - '@swc/core-darwin-arm64@1.7.11': - resolution: {integrity: sha512-HRQv4qIeMBPThZ6Y/4yYW52rGsS6yrpusvuxLGyoFo45Y0y12/V2yXkOIA/0HIQyrqoUAxn1k4zQXpPaPNCmnw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - '@swc/core-darwin-arm64@1.7.2': resolution: {integrity: sha512-Zb8KiGaESzOgh5HBnp6Vhs2fRpngHIT81JOfIo0oaGlzAckamnG7UAXC/yK6cQ8q2KXc78utJ/yq/NM2yVKLqw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.11': - resolution: {integrity: sha512-vtMQj0F3oYwDu5yhO7SKDRg1XekRSi6/TbzHAbBXv+dBhlGGvcZZynT1H90EVFTv+7w7Sh+lOFvRv5Z4ZTcxow==} + '@swc/core-darwin-arm64@1.7.26': + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} engines: {node: '>=10'} - cpu: [x64] + cpu: [arm64] os: [darwin] '@swc/core-darwin-x64@1.7.2': @@ -190,11 +184,11 @@ packages: cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.11': - resolution: {integrity: sha512-mHtzWKxhtyreI4CSxs+3+ENv8t/Qo35WFoYG66qHEgJz/Z2Lh6jv1E+MYgHdYwnpQHgHbdvAco7HsBu/Dt6xXw==} + '@swc/core-darwin-x64@1.7.26': + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} engines: {node: '>=10'} - cpu: [arm] - os: [linux] + cpu: [x64] + os: [darwin] '@swc/core-linux-arm-gnueabihf@1.7.2': resolution: {integrity: sha512-x2+MOK3RzH3yEkaukKtpDW/udM1x9GoYtXaLNqlq6ovAzZPQ9FDFI0pm1asL4akHUw3s7YTh1aUY7QscstJAHQ==} @@ -202,10 +196,10 @@ packages: cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.11': - resolution: {integrity: sha512-FRwe/x0GfXSQjGP2lIk+NO0pUFS/lI/RorCLBPiK808EVE9JTbh9DKCc/4Bbb4jgScAjNkrFCUVObQYl3YKmpA==} + '@swc/core-linux-arm-gnueabihf@1.7.26': + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} engines: {node: '>=10'} - cpu: [arm64] + cpu: [arm] os: [linux] '@swc/core-linux-arm64-gnu@1.7.2': @@ -214,8 +208,8 @@ packages: cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.11': - resolution: {integrity: sha512-GY/rs0+GUq14Gbnza90KOrQd/9yHd5qQMii5jcSWcUCT5A8QTa8kiicsM2NxZeTJ69xlKmT7sLod5l99lki/2A==} + '@swc/core-linux-arm64-gnu@1.7.26': + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -226,10 +220,10 @@ packages: cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.11': - resolution: {integrity: sha512-QDkGRwSPmp2RBOlSs503IUXlWYlny8DyznTT0QuK0ML2RpDFlXWU94K/EZhS0RBEUkMY/W51OacM8P8aS/dkCg==} + '@swc/core-linux-arm64-musl@1.7.26': + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} engines: {node: '>=10'} - cpu: [x64] + cpu: [arm64] os: [linux] '@swc/core-linux-x64-gnu@1.7.2': @@ -238,8 +232,8 @@ packages: cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.11': - resolution: {integrity: sha512-SBEfKrXy6zQ6ksnyxw1FaCftrIH4fLfA81xNnKb7x/6iblv7Ko6H0aK3P5C86jyqF/82+ONl9C7ImGkUFQADig==} + '@swc/core-linux-x64-gnu@1.7.26': + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -250,11 +244,11 @@ packages: cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.11': - resolution: {integrity: sha512-a2Y4xxEsLLYHJN7sMnw9+YQJDi3M1BxEr9hklfopPuGGnYLFNnx5CypH1l9ReijEfWjIAHNi7pq3m023lzW1Hg==} + '@swc/core-linux-x64-musl@1.7.26': + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} engines: {node: '>=10'} - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [linux] '@swc/core-win32-arm64-msvc@1.7.2': resolution: {integrity: sha512-eNWAYOalBlFrhv/IVSQ1dxu7qIGuhxlUJZTYa8jsgLnKt93vAFd2cjLtKZ85k1OibBnq9PkKQyo4NKVr4hBavw==} @@ -262,10 +256,10 @@ packages: cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.11': - resolution: {integrity: sha512-ZbZFMwZO+j8ulhegJ7EhJ/QVZPoQ5qc30ylJQSxizizTJaen71Q7/13lXWc6ksuCKvg6dUKrp/TPgoxOOtSrFA==} + '@swc/core-win32-arm64-msvc@1.7.26': + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} engines: {node: '>=10'} - cpu: [ia32] + cpu: [arm64] os: [win32] '@swc/core-win32-ia32-msvc@1.7.2': @@ -274,10 +268,10 @@ packages: cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.11': - resolution: {integrity: sha512-IUohZedSJyDu/ReEBG/mqX6uG29uA7zZ9z6dIAF+p6eFxjXmh9MuHryyM+H8ebUyoq/Ad3rL+rUCksnuYNnI0w==} + '@swc/core-win32-ia32-msvc@1.7.26': + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} engines: {node: '>=10'} - cpu: [x64] + cpu: [ia32] os: [win32] '@swc/core-win32-x64-msvc@1.7.2': @@ -286,8 +280,14 @@ packages: cpu: [x64] os: [win32] - '@swc/core@1.7.11': - resolution: {integrity: sha512-AB+qc45UrJrDfbhPKcUXk+9z/NmFfYYwJT6G7/iur0fCse9kXjx45gi40+u/O2zgarG/30/zV6E3ps8fUvjh7g==} + '@swc/core-win32-x64-msvc@1.7.26': + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.2': + resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -295,8 +295,8 @@ packages: '@swc/helpers': optional: true - '@swc/core@1.7.2': - resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} + '@swc/core@1.7.26': + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -344,12 +344,6 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -365,8 +359,14 @@ packages: '@types/node@18.19.42': resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} - '@types/node@20.14.12': - resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} + '@types/node@18.19.50': + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} + + '@types/node@20.16.5': + resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==} + + '@types/qs@6.9.15': + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -432,6 +432,10 @@ packages: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + acorn@8.12.1: resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} @@ -484,16 +488,20 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - caniuse-lite@1.0.30001643: - resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + caniuse-lite@1.0.30001660: + resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -539,6 +547,10 @@ packages: supports-color: optional: true + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -551,8 +563,8 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - electron-to-chromium@1.5.2: - resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} + electron-to-chromium@1.5.20: + resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -561,11 +573,19 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} eslint-scope@5.1.1: @@ -621,10 +641,17 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -632,6 +659,9 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -643,6 +673,21 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + heap-js@2.5.0: resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} engines: {node: '>=10.0.0'} @@ -761,6 +806,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + openai@4.56.0: resolution: {integrity: sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==} hasBin: true @@ -770,8 +819,17 @@ packages: zod: optional: true - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + openai@4.59.0: + resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -781,8 +839,8 @@ packages: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} - protobufjs@7.3.2: - resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} engines: {node: '>=12.0.0'} pstree.remy@1.1.8: @@ -792,6 +850,10 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -827,12 +889,20 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + simple-update-notifier@1.1.0: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} engines: {node: '>=8.10.0'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-loader@4.0.2: @@ -894,8 +964,8 @@ packages: uglify-js: optional: true - terser@5.31.3: - resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} + terser@5.32.0: + resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} engines: {node: '>=10'} hasBin: true @@ -936,8 +1006,8 @@ packages: '@swc/wasm': optional: true - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} @@ -955,6 +1025,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unionfs@4.5.4: resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} @@ -974,8 +1047,8 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} web-streams-polyfill@4.0.0-beta.3: @@ -989,8 +1062,8 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.93.0: - resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -1027,8 +1100,8 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - zod-to-json-schema@3.23.2: - resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} + zod-to-json-schema@3.23.3: + resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} peerDependencies: zod: ^3.23.3 @@ -1041,7 +1114,7 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@grpc/grpc-js@1.11.1': + '@grpc/grpc-js@1.11.2': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -1050,7 +1123,7 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.2.3 - protobufjs: 7.3.2 + protobufjs: 7.4.0 yargs: 17.7.2 '@jridgewell/gen-mapping@0.3.5': @@ -1082,21 +1155,21 @@ snapshots: '@js-sdsl/ordered-map@4.4.2': {} - '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': + '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': dependencies: - tslib: 2.6.3 + tslib: 2.7.0 - '@jsonjoy.com/json-pack@1.1.0(tslib@2.6.3)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) + '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.6.3) - tslib: 2.6.3 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 - '@jsonjoy.com/util@1.3.0(tslib@2.6.3)': + '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': dependencies: - tslib: 2.6.3 + tslib: 2.7.0 '@protobufjs/aspromise@1.1.2': {} @@ -1121,9 +1194,9 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.12(zod@3.23.8)': + '@restackio/integrations-openai@0.0.18(zod@3.23.8)': dependencies: - openai: 4.56.0(zod@3.23.8) + openai: 4.59.0(zod@3.23.8) transitivePeerDependencies: - encoding - zod @@ -1140,7 +1213,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-ts@0.0.53': + '@restackio/restack-sdk-ts@0.0.58': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 @@ -1152,81 +1225,65 @@ snapshots: - uglify-js - webpack-cli - '@swc/core-darwin-arm64@1.7.11': - optional: true - '@swc/core-darwin-arm64@1.7.2': optional: true - '@swc/core-darwin-x64@1.7.11': + '@swc/core-darwin-arm64@1.7.26': optional: true '@swc/core-darwin-x64@1.7.2': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.11': + '@swc/core-darwin-x64@1.7.26': optional: true '@swc/core-linux-arm-gnueabihf@1.7.2': optional: true - '@swc/core-linux-arm64-gnu@1.7.11': + '@swc/core-linux-arm-gnueabihf@1.7.26': optional: true '@swc/core-linux-arm64-gnu@1.7.2': optional: true - '@swc/core-linux-arm64-musl@1.7.11': + '@swc/core-linux-arm64-gnu@1.7.26': optional: true '@swc/core-linux-arm64-musl@1.7.2': optional: true - '@swc/core-linux-x64-gnu@1.7.11': + '@swc/core-linux-arm64-musl@1.7.26': optional: true '@swc/core-linux-x64-gnu@1.7.2': optional: true - '@swc/core-linux-x64-musl@1.7.11': + '@swc/core-linux-x64-gnu@1.7.26': optional: true '@swc/core-linux-x64-musl@1.7.2': optional: true - '@swc/core-win32-arm64-msvc@1.7.11': + '@swc/core-linux-x64-musl@1.7.26': optional: true '@swc/core-win32-arm64-msvc@1.7.2': optional: true - '@swc/core-win32-ia32-msvc@1.7.11': + '@swc/core-win32-arm64-msvc@1.7.26': optional: true '@swc/core-win32-ia32-msvc@1.7.2': optional: true - '@swc/core-win32-x64-msvc@1.7.11': + '@swc/core-win32-ia32-msvc@1.7.26': optional: true '@swc/core-win32-x64-msvc@1.7.2': optional: true - '@swc/core@1.7.11': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 - optionalDependencies: - '@swc/core-darwin-arm64': 1.7.11 - '@swc/core-darwin-x64': 1.7.11 - '@swc/core-linux-arm-gnueabihf': 1.7.11 - '@swc/core-linux-arm64-gnu': 1.7.11 - '@swc/core-linux-arm64-musl': 1.7.11 - '@swc/core-linux-x64-gnu': 1.7.11 - '@swc/core-linux-x64-musl': 1.7.11 - '@swc/core-win32-arm64-msvc': 1.7.11 - '@swc/core-win32-ia32-msvc': 1.7.11 - '@swc/core-win32-x64-msvc': 1.7.11 + '@swc/core-win32-x64-msvc@1.7.26': + optional: true '@swc/core@1.7.2': dependencies: @@ -1245,6 +1302,22 @@ snapshots: '@swc/core-win32-x64-msvc': 1.7.2 optional: true + '@swc/core@1.7.26': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 + '@swc/counter@0.1.3': {} '@swc/types@0.1.12': @@ -1258,7 +1331,7 @@ snapshots: '@temporalio/client@1.11.1': dependencies: - '@grpc/grpc-js': 1.11.1 + '@grpc/grpc-js': 1.11.2 '@temporalio/common': 1.11.1 '@temporalio/proto': 1.11.1 abort-controller: 3.0.0 @@ -1282,11 +1355,11 @@ snapshots: '@temporalio/proto@1.11.1': dependencies: long: 5.2.3 - protobufjs: 7.3.2 + protobufjs: 7.4.0 '@temporalio/worker@1.11.1': dependencies: - '@swc/core': 1.7.11 + '@swc/core': 1.7.26 '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 '@temporalio/common': 1.11.1 @@ -1298,11 +1371,11 @@ snapshots: memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.11)) + source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.26)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)) + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.11) + webpack: 5.94.0(@swc/core@1.7.26) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1322,23 +1395,13 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.0 - '@types/estree': 1.0.5 - - '@types/eslint@9.6.0': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.5': {} '@types/json-schema@7.0.15': {} '@types/node-fetch@2.6.11': dependencies: - '@types/node': 20.14.12 + '@types/node': 20.16.5 form-data: 4.0.0 '@types/node@14.18.63': {} @@ -1347,10 +1410,16 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@20.14.12': + '@types/node@18.19.50': dependencies: undici-types: 5.26.5 + '@types/node@20.16.5': + dependencies: + undici-types: 6.19.8 + + '@types/qs@6.9.15': {} + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 @@ -1443,6 +1512,10 @@ snapshots: dependencies: acorn: 8.12.1 + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 + acorn@8.12.1: {} agentkeepalive@4.5.0: @@ -1490,16 +1563,24 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.2: + browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001643 - electron-to-chromium: 1.5.2 + caniuse-lite: 1.0.30001660 + electron-to-chromium: 1.5.20 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.2) + update-browserslist-db: 1.1.0(browserslist@4.23.3) buffer-from@1.1.2: {} - caniuse-lite@1.0.30001643: {} + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + caniuse-lite@1.0.30001660: {} cargo-cp-artifact@0.1.9: {} @@ -1545,13 +1626,19 @@ snapshots: optionalDependencies: supports-color: 5.5.0 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + delayed-stream@1.0.0: {} diff@4.0.2: {} dotenv@16.4.5: {} - electron-to-chromium@1.5.2: {} + electron-to-chromium@1.5.20: {} emoji-regex@8.0.0: {} @@ -1560,9 +1647,15 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + es-module-lexer@1.5.4: {} - escalade@3.1.2: {} + escalade@3.2.0: {} eslint-scope@5.1.1: dependencies: @@ -1607,20 +1700,46 @@ snapshots: fsevents@2.3.3: optional: true + function-bind@1.1.2: {} + get-caller-file@2.0.5: {} + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 glob-to-regexp@0.4.1: {} + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + graceful-fs@4.2.11: {} has-flag@3.0.0: {} has-flag@4.0.0: {} + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + heap-js@2.5.0: {} humanize-ms@1.2.1: @@ -1653,7 +1772,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.14.12 + '@types/node': 20.16.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -1671,10 +1790,10 @@ snapshots: memfs@4.11.1: dependencies: - '@jsonjoy.com/json-pack': 1.1.0(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - tree-dump: 1.0.2(tslib@2.6.3) - tslib: 2.6.3 + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 merge-stream@2.0.0: {} @@ -1717,6 +1836,8 @@ snapshots: normalize-path@3.0.0: {} + object-inspect@1.13.2: {} + openai@4.56.0(zod@3.23.8): dependencies: '@types/node': 18.19.42 @@ -1731,15 +1852,31 @@ snapshots: transitivePeerDependencies: - encoding - picocolors@1.0.1: {} + openai@4.59.0(zod@3.23.8): + dependencies: + '@types/node': 18.19.50 + '@types/node-fetch': 2.6.11 + '@types/qs': 6.9.15 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + qs: 6.13.0 + optionalDependencies: + zod: 3.23.8 + transitivePeerDependencies: + - encoding + + picocolors@1.1.0: {} picomatch@2.3.1: {} proto3-json-serializer@2.0.2: dependencies: - protobufjs: 7.3.2 + protobufjs: 7.4.0 - protobufjs@7.3.2: + protobufjs@7.4.0: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -1751,13 +1888,17 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.14.12 + '@types/node': 20.16.5 long: 5.2.3 pstree.remy@1.1.8: {} punycode@2.3.1: {} + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -1770,7 +1911,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.3 + tslib: 2.7.0 safe-buffer@5.2.1: {} @@ -1790,17 +1931,33 @@ snapshots: dependencies: randombytes: 2.1.0 + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + simple-update-notifier@1.1.0: dependencies: semver: 7.0.0 - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.11)): + source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.26)): dependencies: iconv-lite: 0.6.3 - source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.11) + source-map-js: 1.2.1 + webpack: 5.94.0(@swc/core@1.7.26) source-map-support@0.5.21: dependencies: @@ -1829,35 +1986,35 @@ snapshots: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)): + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): dependencies: - '@swc/core': 1.7.11 + '@swc/core': 1.7.26 '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.11) + webpack: 5.94.0(@swc/core@1.7.26) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.3 - webpack: 5.93.0(@swc/core@1.7.11) + terser: 5.32.0 + webpack: 5.94.0(@swc/core@1.7.26) optionalDependencies: - '@swc/core': 1.7.11 + '@swc/core': 1.7.26 - terser@5.31.3: + terser@5.32.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 - thingies@1.21.0(tslib@2.6.3): + thingies@1.21.0(tslib@2.7.0): dependencies: - tslib: 2.6.3 + tslib: 2.7.0 to-regex-range@5.0.1: dependencies: @@ -1867,51 +2024,51 @@ snapshots: tr46@0.0.3: {} - tree-dump@1.0.2(tslib@2.6.3): + tree-dump@1.0.2(tslib@2.7.0): dependencies: - tslib: 2.6.3 + tslib: 2.7.0 - ts-node@10.9.2(@swc/core@1.7.11)(@types/node@20.14.12)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.12 + '@types/node': 14.18.63 acorn: 8.12.1 acorn-walk: 8.3.3 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.11 + '@swc/core': 1.7.2 - ts-node@10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5): + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 14.18.63 + '@types/node': 20.16.5 acorn: 8.12.1 - acorn-walk: 8.3.3 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.2 + '@swc/core': 1.7.26 - tslib@2.6.3: {} + tslib@2.7.0: {} typescript@4.9.5: {} @@ -1921,15 +2078,17 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.19.8: {} + unionfs@4.5.4: dependencies: fs-monkey: 1.0.6 - update-browserslist-db@1.1.0(browserslist@4.23.2): + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 uri-js@4.4.1: dependencies: @@ -1939,7 +2098,7 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - watchpack@2.4.1: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -1950,16 +2109,15 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.93.0(@swc/core@1.7.11): + webpack@5.94.0(@swc/core@1.7.26): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.1 acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.2 + browserslist: 4.23.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 @@ -1973,8 +2131,8 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.11)(webpack@5.93.0(@swc/core@1.7.11)) - watchpack: 2.4.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) + watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -2003,7 +2161,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -2012,7 +2170,7 @@ snapshots: yn@3.1.1: {} - zod-to-json-schema@3.23.2(zod@3.23.8): + zod-to-json-schema@3.23.3(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/examples/hello/scheduleWorkflow.ts b/examples/hello/scheduleWorkflow.ts index d71edf8..41ce8cf 100644 --- a/examples/hello/scheduleWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -1,11 +1,9 @@ -import Restack from "@restackio/restack-sdk-ts"; +import { client } from "./src/client"; async function scheduleWorkflow() { try { - const restack = new Restack(); - const workflowId = `${Date.now()}-helloWorkflow`; - const runId = await restack.scheduleWorkflow({ + const runId = await client.scheduleWorkflow({ workflowName: "helloWorkflow", workflowId, input: { @@ -13,7 +11,7 @@ async function scheduleWorkflow() { }, }); - const result = await restack.getWorkflowResult({ workflowId, runId }); + const result = await client.getWorkflowResult({ workflowId, runId }); console.log("Workflow result:", result); diff --git a/examples/hello/src/client.ts b/examples/hello/src/client.ts new file mode 100644 index 0000000..720402d --- /dev/null +++ b/examples/hello/src/client.ts @@ -0,0 +1,14 @@ +import Restack from "@restackio/restack-sdk-ts"; + +import "dotenv/config"; + +export const connectionOptions = { + stackId: process.env.RESTACK_STACK_ID!, + apiKey: process.env.RESTACK_API_KEY!, + address: process.env.RESTACK_API_ADDRESS!, + temporalNamespace: process.env.RESTACK_TEMPORAL_NAMESPACE!, +}; + +export const client = new Restack( + process.env.RESTACK_API_KEY ? connectionOptions : undefined +); diff --git a/examples/hello/src/operator.ts b/examples/hello/src/services.ts similarity index 80% rename from examples/hello/src/operator.ts rename to examples/hello/src/services.ts index 1de1200..4897e83 100644 --- a/examples/hello/src/operator.ts +++ b/examples/hello/src/services.ts @@ -1,19 +1,18 @@ -import Restack from "@restackio/restack-sdk-ts"; import { goodbye } from "./functions"; import { openaiService } from "@restackio/integrations-openai"; -export const restack = new Restack(); +import { client } from "./client"; async function main() { const workflowsPath = require.resolve("./workflows"); try { await Promise.all([ // Start service with current workflows and functions - restack.startService({ + client.startService({ workflowsPath, functions: { goodbye }, }), // Start the openai service - openaiService(), + openaiService({ client }), ]); console.log("Services running successfully."); diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 590a3a1..cb2e9b9 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "dev": "ts-node-dev --respawn --transpile-only src/operator.ts", + "dev": "ts-node-dev --respawn --transpile-only src/services.ts", "clean": "rm -rf node_modules", "workflow": "ts-node ./scheduleWorkflow.ts" }, @@ -12,17 +12,17 @@ "author": "", "license": "ISC", "dependencies": { - "@restackio/integrations-openai": "^0.0.15", - "@restackio/restack-sdk-ts": "^0.0.53", + "@restackio/integrations-openai": "^0.0.18", + "@restackio/restack-sdk-ts": "^0.0.57", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", - "typescript": "^5.5.4", + "typescript": "^5.6.2", "uuid": "^10.0.0", "zod": "^3.23.8", - "zod-to-json-schema": "^3.23.2" + "zod-to-json-schema": "^3.23.3" }, "devDependencies": { - "@types/node": "^22.4.1", + "@types/node": "^22.5.4", "@types/uuid": "^10.0.0", "nodemon": "^3.1.4", "ts-node": "^10.9.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index d15cda1..c2e78ff 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@restackio/integrations-openai': - specifier: ^0.0.15 - version: 0.0.15(zod@3.23.8) + specifier: ^0.0.18 + version: 0.0.18(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.53 - version: 0.0.53 + specifier: ^0.0.57 + version: 0.0.57 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -21,8 +21,8 @@ importers: specifier: ^16.4.5 version: 16.4.5 typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^5.6.2 + version: 5.6.2 uuid: specifier: ^10.0.0 version: 10.0.0 @@ -30,11 +30,11 @@ importers: specifier: ^3.23.8 version: 3.23.8 zod-to-json-schema: - specifier: ^3.23.2 - version: 3.23.2(zod@3.23.8) + specifier: ^3.23.3 + version: 3.23.3(zod@3.23.8) devDependencies: '@types/node': - specifier: ^22.4.1 + specifier: ^22.5.4 version: 22.5.4 '@types/uuid': specifier: ^10.0.0 @@ -44,10 +44,10 @@ importers: version: 3.1.4 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4) + version: 2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) packages: @@ -139,75 +139,75 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.15': - resolution: {integrity: sha512-a0woTiKJTJtBrLu7I+juBxM83S4Fks4tonvuez1sCUnLrT8MjFxqa/ptzrPJ6feuooMmjgdD0Y8Hb2q56xKDcQ==} + '@restackio/integrations-openai@0.0.18': + resolution: {integrity: sha512-UyLl1kKV1xR9VJfH11sR+LFiXf5XGdwEkfCi+Ba5ORx6qo8UG1g9wEYYUua99hH3l/j5ReEK/fI6GvxFGW8lcg==} - '@restackio/restack-sdk-ts@0.0.53': - resolution: {integrity: sha512-gtFU4vinWaR8zM6sNH/wFMmA/EMBp+JyL+qszb4ambLd824CijUGwwEmJhIDUTS1L7Eg6Ki6mrNTaWEh8BdaHg==} + '@restackio/restack-sdk-ts@0.0.57': + resolution: {integrity: sha512-68p5ua5BgX6eJk2CrCMc0nKeSonCfvQM7F4EAEfc9OfC/vHg5S+IDOzxRxsa+y2/TSzKXwyRNmuDRIv4umjt7Q==} engines: {node: '>=20'} - '@swc/core-darwin-arm64@1.7.24': - resolution: {integrity: sha512-s0k09qAcsoa8jIncwgRRd43VApYqXu28R4OmICtDffV4S01HtsRLRarXsMuLutoZk3tbxqitep+A8MPBuqNgdg==} + '@swc/core-darwin-arm64@1.7.26': + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.24': - resolution: {integrity: sha512-1dlsulJ/fiOoJoJyQgaCewIEaZ7Sh6aJN4r5Uhl4lIZuNWa27XOb28A3K29/6HDO9JML3IJrvXPnl5o0vxDQuQ==} + '@swc/core-darwin-x64@1.7.26': + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.24': - resolution: {integrity: sha512-2ft1NmxyvHCu5CY4r2rNVybPqZtJaxpRSzvCcPlVjN/2D5Q3QgM5kBoo1t+0RCFfk4TS2V0KWJhtqKz0CNX62Q==} + '@swc/core-linux-arm-gnueabihf@1.7.26': + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.24': - resolution: {integrity: sha512-v/Z8I9tUUNkNHKa1Sw4r1Q7Wp66ezbRhe6xMIxvPNKVJQFaMOsRpe0t8T5qbk5sV2hJGOCKpQynSpZqQXLcJDQ==} + '@swc/core-linux-arm64-gnu@1.7.26': + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.24': - resolution: {integrity: sha512-0jJx0IcajcyOXaJsx1jXy86lYVrbupyy2VUj/OiJux/ic4oBJLjfL+WOuc8T8/hZj2p6X0X4jvfSCqWSuic4kA==} + '@swc/core-linux-arm64-musl@1.7.26': + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.24': - resolution: {integrity: sha512-2+3aKQpSGjVnWKDTKUPuJzitQlTQrGorg+PVFMRkv6l+RcNCHZQNe/8VYpMhyBhxDMb3LUlbp7776FRevcruxg==} + '@swc/core-linux-x64-gnu@1.7.26': + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.24': - resolution: {integrity: sha512-PMQ6SkCtMoj0Ks77DiishpEmIuHpYjFLDuVOzzJCzGeGoii0yRP5lKy/VeglFYLPqJzmhK9BHlpVehVf/8ZpvA==} + '@swc/core-linux-x64-musl@1.7.26': + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.24': - resolution: {integrity: sha512-SNdCa4DtGXNWrPVHqctVUxgEVZVETuqERpqF50KFHO0Bvf5V/m1IJ4hFr2BxXlrzgnIW4t1Dpi6YOJbcGbEmnA==} + '@swc/core-win32-arm64-msvc@1.7.26': + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.24': - resolution: {integrity: sha512-5p3olHqwibMfrVFg2yVuSIPh9HArDYYlJXNZ9JKqeZk23A19J1pl9MuPmXDw+sxsiPfYJ/nUedIGeUHPF/+EDw==} + '@swc/core-win32-ia32-msvc@1.7.26': + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.24': - resolution: {integrity: sha512-gRyPIxDznS8d2ClfmWbytjp2d48bij6swHnDLWhukNuOvXdQkEmaIzjEsionFG/zhcFLnz8zKfTvjEjInAMzxg==} + '@swc/core-win32-x64-msvc@1.7.26': + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.24': - resolution: {integrity: sha512-FzJaai6z6DYdICAY1UKNN5pzTn296ksK2zzEjjaXlpZtoMkGktWT0ttS7hbdBCPGhLOu5Q9TA2zdPejKUFjgig==} + '@swc/core@1.7.26': + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -410,8 +410,8 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001659: - resolution: {integrity: sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA==} + caniuse-lite@1.0.30001660: + resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -477,8 +477,8 @@ packages: dynamic-dedupe@0.3.0: resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} - electron-to-chromium@1.5.18: - resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} + electron-to-chromium@1.5.20: + resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -753,8 +753,8 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - openai@4.58.1: - resolution: {integrity: sha512-n9fN4RIjbj4PbZU6IN/FOBBbxHbHEcW18rDZ4nW2cDNfZP2+upm/FM20UCmRNMQTvhOvw/2Tw4vgioQyQb5nlA==} + openai@4.59.0: + resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -986,8 +986,8 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true @@ -1083,8 +1083,8 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - zod-to-json-schema@3.23.2: - resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} + zod-to-json-schema@3.23.3: + resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} peerDependencies: zod: ^3.23.3 @@ -1177,14 +1177,14 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.15(zod@3.23.8)': + '@restackio/integrations-openai@0.0.18(zod@3.23.8)': dependencies: - openai: 4.58.1(zod@3.23.8) + openai: 4.59.0(zod@3.23.8) transitivePeerDependencies: - encoding - zod - '@restackio/restack-sdk-ts@0.0.53': + '@restackio/restack-sdk-ts@0.0.57': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 @@ -1196,51 +1196,51 @@ snapshots: - uglify-js - webpack-cli - '@swc/core-darwin-arm64@1.7.24': + '@swc/core-darwin-arm64@1.7.26': optional: true - '@swc/core-darwin-x64@1.7.24': + '@swc/core-darwin-x64@1.7.26': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.24': + '@swc/core-linux-arm-gnueabihf@1.7.26': optional: true - '@swc/core-linux-arm64-gnu@1.7.24': + '@swc/core-linux-arm64-gnu@1.7.26': optional: true - '@swc/core-linux-arm64-musl@1.7.24': + '@swc/core-linux-arm64-musl@1.7.26': optional: true - '@swc/core-linux-x64-gnu@1.7.24': + '@swc/core-linux-x64-gnu@1.7.26': optional: true - '@swc/core-linux-x64-musl@1.7.24': + '@swc/core-linux-x64-musl@1.7.26': optional: true - '@swc/core-win32-arm64-msvc@1.7.24': + '@swc/core-win32-arm64-msvc@1.7.26': optional: true - '@swc/core-win32-ia32-msvc@1.7.24': + '@swc/core-win32-ia32-msvc@1.7.26': optional: true - '@swc/core-win32-x64-msvc@1.7.24': + '@swc/core-win32-x64-msvc@1.7.26': optional: true - '@swc/core@1.7.24': + '@swc/core@1.7.26': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.24 - '@swc/core-darwin-x64': 1.7.24 - '@swc/core-linux-arm-gnueabihf': 1.7.24 - '@swc/core-linux-arm64-gnu': 1.7.24 - '@swc/core-linux-arm64-musl': 1.7.24 - '@swc/core-linux-x64-gnu': 1.7.24 - '@swc/core-linux-x64-musl': 1.7.24 - '@swc/core-win32-arm64-msvc': 1.7.24 - '@swc/core-win32-ia32-msvc': 1.7.24 - '@swc/core-win32-x64-msvc': 1.7.24 + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 '@swc/counter@0.1.3': {} @@ -1283,7 +1283,7 @@ snapshots: '@temporalio/worker@1.11.1': dependencies: - '@swc/core': 1.7.24 + '@swc/core': 1.7.26 '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 '@temporalio/common': 1.11.1 @@ -1295,11 +1295,11 @@ snapshots: memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.24)) + source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.26)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)) + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) unionfs: 4.5.4 - webpack: 5.94.0(@swc/core@1.7.24) + webpack: 5.94.0(@swc/core@1.7.26) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1485,8 +1485,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001659 - electron-to-chromium: 1.5.18 + caniuse-lite: 1.0.30001660 + electron-to-chromium: 1.5.20 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -1500,7 +1500,7 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - caniuse-lite@1.0.30001659: {} + caniuse-lite@1.0.30001660: {} cargo-cp-artifact@0.1.9: {} @@ -1562,7 +1562,7 @@ snapshots: dependencies: xtend: 4.0.2 - electron-to-chromium@1.5.18: {} + electron-to-chromium@1.5.20: {} emoji-regex@8.0.0: {} @@ -1792,7 +1792,7 @@ snapshots: dependencies: wrappy: 1.0.2 - openai@4.58.1(zod@3.23.8): + openai@4.59.0(zod@3.23.8): dependencies: '@types/node': 18.19.50 '@types/node-fetch': 2.6.11 @@ -1905,11 +1905,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.24)): + source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.26)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.94.0(@swc/core@1.7.24) + webpack: 5.94.0(@swc/core@1.7.26) source-map-support@0.5.21: dependencies: @@ -1944,24 +1944,24 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)): + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): dependencies: - '@swc/core': 1.7.24 + '@swc/core': 1.7.26 '@swc/counter': 0.1.3 - webpack: 5.94.0(@swc/core@1.7.24) + webpack: 5.94.0(@swc/core@1.7.26) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.32.0 - webpack: 5.94.0(@swc/core@1.7.24) + webpack: 5.94.0(@swc/core@1.7.26) optionalDependencies: - '@swc/core': 1.7.24 + '@swc/core': 1.7.26 terser@5.32.0: dependencies: @@ -1988,7 +1988,7 @@ snapshots: tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4): + ts-node-dev@2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -1998,15 +1998,15 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) tsconfig: 7.0.0 - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.7.24)(@types/node@22.5.4)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -2020,11 +2020,11 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 5.6.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.24 + '@swc/core': 1.7.26 tsconfig@7.0.0: dependencies: @@ -2035,7 +2035,7 @@ snapshots: tslib@2.7.0: {} - typescript@5.5.4: {} + typescript@5.6.2: {} undefsafe@2.0.5: {} @@ -2074,7 +2074,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.94.0(@swc/core@1.7.24): + webpack@5.94.0(@swc/core@1.7.26): dependencies: '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 @@ -2096,7 +2096,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.24)(webpack@5.94.0(@swc/core@1.7.24)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -2139,7 +2139,7 @@ snapshots: yn@3.1.1: {} - zod-to-json-schema@3.23.2(zod@3.23.8): + zod-to-json-schema@3.23.3(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/examples/posthog/scheduleWorkflow.ts b/examples/posthog/scheduleWorkflow.ts index a74b59a..e63046d 100644 --- a/examples/posthog/scheduleWorkflow.ts +++ b/examples/posthog/scheduleWorkflow.ts @@ -1,11 +1,9 @@ -import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; +import { client } from "../hello/src/client"; async function scheduleWorkflow() { try { - const restack = new Restack(); - - const workflowRunId = await restack.scheduleWorkflow({ + const workflowRunId = await client.scheduleWorkflow({ workflowName: "digestWorkflow", workflowId: `${Date.now()}-digestWorkflow`, input: { diff --git a/examples/posthog/src/client.ts b/examples/posthog/src/client.ts new file mode 100644 index 0000000..720402d --- /dev/null +++ b/examples/posthog/src/client.ts @@ -0,0 +1,14 @@ +import Restack from "@restackio/restack-sdk-ts"; + +import "dotenv/config"; + +export const connectionOptions = { + stackId: process.env.RESTACK_STACK_ID!, + apiKey: process.env.RESTACK_API_KEY!, + address: process.env.RESTACK_API_ADDRESS!, + temporalNamespace: process.env.RESTACK_TEMPORAL_NAMESPACE!, +}; + +export const client = new Restack( + process.env.RESTACK_API_KEY ? connectionOptions : undefined +); diff --git a/examples/posthog/src/operator.ts b/examples/posthog/src/services.ts similarity index 85% rename from examples/posthog/src/operator.ts rename to examples/posthog/src/services.ts index 99d8af9..c2540aa 100644 --- a/examples/posthog/src/operator.ts +++ b/examples/posthog/src/services.ts @@ -1,4 +1,3 @@ -import Restack from "@restackio/restack-sdk-ts"; import { posthogGetRecordings, posthogGetSnapshotBlob, @@ -8,23 +7,22 @@ import { workflowSendEvent, } from "./functions"; import { openaiService } from "@restackio/integrations-openai"; +import { client } from "./client"; async function main() { const workflowsPath = require.resolve("./Workflows"); try { - const restack = new Restack(); - // https://posthog.com/docs/api#rate-limiting await Promise.all([ - restack.startService({ + client.startService({ workflowsPath, functions: { workflowSendEvent, }, }), - restack.startService({ + client.startService({ taskQueue: "posthog", functions: { posthogGetRecordings, @@ -37,7 +35,7 @@ async function main() { rateLimit: 240 * 60, }, }), - openaiService(), + openaiService({ client }), ]); console.log("Services running successfully."); diff --git a/examples/posthog/src/workflows/chunk.ts b/examples/posthog/src/workflows/chunk.ts index 9545ae4..eff9cef 100644 --- a/examples/posthog/src/workflows/chunk.ts +++ b/examples/posthog/src/workflows/chunk.ts @@ -2,27 +2,13 @@ import { log, step } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../functions"; import * as openaiFunctions from "@restackio/integrations-openai/functions"; import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; -import z from "zod"; -import zodToJsonSchema from "zod-to-json-schema"; + import { chunkSummaryEvent, ChunkSummaryEvent, summaryEndEvent, } from "./recording"; -const chunkSummarySchema = z.object({ - recordingId: z.string().describe("The id of the recording."), - fromTimestamp: z - .string() - .describe("The start timestamp of this recording chunk."), - toTimestamp: z - .string() - .describe("The end timestamp of this recording chunk."), - summary: z.string().describe("The summary of this recording chunk."), -}); - -export type ChunkSummary = z.infer; - export async function chunkWorkflow({ recordingId, chunk, diff --git a/examples/voice/callWorkflow.ts b/examples/voice/callWorkflow.ts index 66a9f52..f046769 100644 --- a/examples/voice/callWorkflow.ts +++ b/examples/voice/callWorkflow.ts @@ -1,10 +1,8 @@ -import Restack from "@restackio/restack-sdk-ts"; +import { client } from "../hello/src/client"; async function scheduleWorkflow() { try { - const restack = new Restack(); - - const workflowRunId = await restack.scheduleWorkflow({ + const workflowRunId = await client.scheduleWorkflow({ workflowName: "twilioCallWorkflow", workflowId: `${Date.now()}-twilioCallWorkflow`, input: { diff --git a/examples/voice/package.json b/examples/voice/package.json index 735cd74..1a1472e 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", - "dev-op": "ts-node-dev --respawn --transpile-only src/operator.ts", + "dev-services": "ts-node-dev --respawn --transpile-only src/services.ts", "clean": "rm -rf node_modules", "call": "ts-node ./callWorkflow.ts", "ngrok": "ngrok http 4000" @@ -14,19 +14,19 @@ "author": "", "license": "ISC", "dependencies": { - "@deepgram/sdk": "^3.5.1", - "@restackio/integrations-deepgram": "^0.0.5", - "@restackio/integrations-openai": "^0.0.12", - "@restackio/integrations-twilio": "^0.0.2", - "@restackio/integrations-websocket": "^0.0.6", - "@restackio/restack-sdk-ts": "^0.0.53", + "@deepgram/sdk": "^3.6.0", + "@restackio/integrations-deepgram": "^0.0.7", + "@restackio/integrations-openai": "^0.0.18", + "@restackio/integrations-twilio": "^0.0.4", + "@restackio/integrations-websocket": "^0.0.11", + "@restackio/restack-sdk-ts": "^0.0.58", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", "dotenv": "^16.4.5", - "express": "^4.19.2", - "openai": "^4.56.0", - "twilio": "^5.2.2", - "typescript": "^5.5.4", + "express": "^4.21.0", + "openai": "^4.59.0", + "twilio": "^5.3.0", + "typescript": "^5.6.2", "uuid": "^10.0.0", "ws": "^8.18.0", "zod": "^3.23.8" @@ -34,7 +34,7 @@ "devDependencies": { "@types/cors": "^2.8.17", "@types/express": "^4.17.21", - "@types/node": "^22.4.1", + "@types/node": "^22.5.4", "@types/uuid": "^10.0.0", "@types/ws": "^8.5.12", "nodemon": "^3.1.4", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index e915ab1..ef5f4f4 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -9,23 +9,23 @@ importers: .: dependencies: '@deepgram/sdk': - specifier: ^3.5.1 - version: 3.5.1(bufferutil@4.0.8)(encoding@0.1.12) + specifier: ^3.6.0 + version: 3.6.0(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/integrations-deepgram': - specifier: ^0.0.5 - version: 0.0.5(bufferutil@4.0.8)(encoding@0.1.12) + specifier: ^0.0.7 + version: 0.0.7(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/integrations-openai': - specifier: ^0.0.12 - version: 0.0.12(encoding@0.1.12)(zod@3.23.8) + specifier: ^0.0.18 + version: 0.0.18(encoding@0.1.12)(zod@3.23.8) '@restackio/integrations-twilio': - specifier: ^0.0.2 - version: 0.0.2 + specifier: ^0.0.4 + version: 0.0.4 '@restackio/integrations-websocket': - specifier: ^0.0.6 - version: 0.0.6(bufferutil@4.0.8) + specifier: ^0.0.11 + version: 0.0.11(bufferutil@4.0.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.53 - version: 0.0.53 + specifier: ^0.0.58 + version: 0.0.58 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -36,17 +36,17 @@ importers: specifier: ^16.4.5 version: 16.4.5 express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.21.0 + version: 4.21.0 openai: - specifier: ^4.56.0 - version: 4.56.0(encoding@0.1.12)(zod@3.23.8) + specifier: ^4.59.0 + version: 4.59.0(encoding@0.1.12)(zod@3.23.8) twilio: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.3.0 + version: 5.3.0 typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^5.6.2 + version: 5.6.2 uuid: specifier: ^10.0.0 version: 10.0.0 @@ -68,8 +68,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^22.4.1 - version: 22.4.1 + specifier: ^22.5.4 + version: 22.5.4 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 @@ -81,10 +81,10 @@ importers: version: 3.1.4 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4) + version: 2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) packages: @@ -96,12 +96,12 @@ packages: resolution: {integrity: sha512-8B1C/oTxTxyHlSFubAhNRgCbQ2SQ5wwvtlByn8sDYZvdDtdn/VE2yEPZ4BvUnrKWmsbTQY6/ooLV+9Ka2qmDSQ==} engines: {node: '>=18.0.0'} - '@deepgram/sdk@3.5.1': - resolution: {integrity: sha512-lcCyvJ1AE5+TkWAyV0iLAFjOCWpjxDf3sAijTQuqVPlbvJuzP6kttqH3kB3/uElu7DOpvQVKw5VE7J6/dn8S+A==} + '@deepgram/sdk@3.6.0': + resolution: {integrity: sha512-uErkoOyBjdk3u4UyowxN6LtjuLv8s1V/29WVeR2Y2M1wKGo93s8dlYFsF3R1SWeMaeJOimpCcwjWvMQbYrmS6Q==} engines: {node: '>=18.0.0'} - '@grpc/grpc-js@1.11.1': - resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} + '@grpc/grpc-js@1.11.2': + resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -184,84 +184,84 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-deepgram@0.0.5': - resolution: {integrity: sha512-2PQMOcvKYqj7pqEFQsgT3fNhkfgvs1j1Wmv+g9fTUlyfKIbQpLRY56rQRGXs/Nt895rTiaCdM81Y8zR4FhzjPw==} + '@restackio/integrations-deepgram@0.0.7': + resolution: {integrity: sha512-Hm0Z//Q46xHQnmpL7dixB8rHP98Rc1Wab5MAG2FoHwSKRhSvDPXLPq2qlGzxBNCWER8yprM+9wJZ7FM9ibTyLA==} - '@restackio/integrations-openai@0.0.12': - resolution: {integrity: sha512-FqGxPPercgsxE6c2G1Gi2H2FoIWqOEJu8FJUZxgS1zZhvPqutePMk2xIn5TG31mpSsOAfrRLb4qAOanH71PHNA==} + '@restackio/integrations-openai@0.0.18': + resolution: {integrity: sha512-UyLl1kKV1xR9VJfH11sR+LFiXf5XGdwEkfCi+Ba5ORx6qo8UG1g9wEYYUua99hH3l/j5ReEK/fI6GvxFGW8lcg==} - '@restackio/integrations-twilio@0.0.2': - resolution: {integrity: sha512-aEFCM9IQ8ZofAV7qAQGFPSsV9qTSWCHjkMmU/vKGbt0mxwnwkhWXKE5wHRSmyklpwNo8WI6M99FHG8guVdlb1w==} + '@restackio/integrations-twilio@0.0.4': + resolution: {integrity: sha512-FA6WDIq7qRgwKEmvzVPoGLRR9dzDueXMn39KtrzkFcS9IKrJF3B+cewoGA2LEHpWNtD6d8hva66hZFipgzl8Wg==} - '@restackio/integrations-websocket@0.0.6': - resolution: {integrity: sha512-ik6DZF0b1gX/9g+uDo437M7uUClgTm5CoaDd1WlauW/4S+cT0/PJu5q6TKNF2BvKydJZUla61eXDydV3TaScOg==} + '@restackio/integrations-websocket@0.0.11': + resolution: {integrity: sha512-MvoXjA6VYA9gYN4r9hjKoYzqsAt9Ogd8HlSgsjyRNy0Bky9OW4enknjpLvM6gP5g8/jJ1CofEa9bif0aoH8uIQ==} - '@restackio/restack-sdk-ts@0.0.53': - resolution: {integrity: sha512-gtFU4vinWaR8zM6sNH/wFMmA/EMBp+JyL+qszb4ambLd824CijUGwwEmJhIDUTS1L7Eg6Ki6mrNTaWEh8BdaHg==} + '@restackio/restack-sdk-ts@0.0.58': + resolution: {integrity: sha512-SC/sZIBl5KrpLx7S44DQMYmK24N3ClZB3njLd+1/7PJ/7d2TzBKh/s1w9xOt8/c4msDNuRSWyV2iiywgrO6dAg==} engines: {node: '>=20'} - '@swc/core-darwin-arm64@1.7.14': - resolution: {integrity: sha512-V0OUXjOH+hdGxDYG8NkQzy25mKOpcNKFpqtZEzLe5V/CpLJPnpg1+pMz70m14s9ZFda9OxsjlvPbg1FLUwhgIQ==} + '@swc/core-darwin-arm64@1.7.26': + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.14': - resolution: {integrity: sha512-9iFvUnxG6FC3An5ogp5jbBfQuUmTTwy8KMB+ZddUoPB3NR1eV+Y9vOh/tfWcenSJbgOKDLgYC5D/b1mHAprsrQ==} + '@swc/core-darwin-x64@1.7.26': + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.14': - resolution: {integrity: sha512-zGJsef9qPivKSH8Vv4F/HiBXBTHZ5Hs3ZjVGo/UIdWPJF8fTL9OVADiRrl34Q7zOZEtGXRwEKLUW1SCQcbDvZA==} + '@swc/core-linux-arm-gnueabihf@1.7.26': + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.14': - resolution: {integrity: sha512-AxV3MPsoI7i4B8FXOew3dx3N8y00YoJYvIPfxelw07RegeCEH3aHp2U2DtgbP/NV1ugZMx0TL2Z2DEvocmA51g==} + '@swc/core-linux-arm64-gnu@1.7.26': + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.14': - resolution: {integrity: sha512-JDLdNjUj3zPehd4+DrQD8Ltb3B5lD8D05IwePyDWw+uR/YPc7w/TX1FUVci5h3giJnlMCJRvi1IQYV7K1n7KtQ==} + '@swc/core-linux-arm64-musl@1.7.26': + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.14': - resolution: {integrity: sha512-Siy5OvPCLLWmMdx4msnEs8HvEVUEigSn0+3pbLjv78iwzXd0qSBNHUPZyC1xeurVaUbpNDxZTpPRIwpqNE2+Og==} + '@swc/core-linux-x64-gnu@1.7.26': + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.14': - resolution: {integrity: sha512-FtEGm9mwtRYQNK43WMtUIadxHs/ja2rnDurB99os0ZoFTGG2IHuht2zD97W0wB8JbqEabT1XwSG9Y5wmN+ciEQ==} + '@swc/core-linux-x64-musl@1.7.26': + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.14': - resolution: {integrity: sha512-Jp8KDlfq7Ntt2/BXr0y344cYgB1zf0DaLzDZ1ZJR6rYlAzWYSccLYcxHa97VGnsYhhPspMpmCvHid97oe2hl4A==} + '@swc/core-win32-arm64-msvc@1.7.26': + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.14': - resolution: {integrity: sha512-I+cFsXF0OU0J9J4zdWiQKKLURO5dvCujH9Jr8N0cErdy54l9d4gfIxdctfTF+7FyXtWKLTCkp+oby9BQhkFGWA==} + '@swc/core-win32-ia32-msvc@1.7.26': + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.14': - resolution: {integrity: sha512-NNrprQCK6d28mG436jVo2TD+vACHseUECacEBGZ9Ef0qfOIWS1XIt2MisQKG0Oea2VvLFl6tF/V4Lnx/H0Sn3Q==} + '@swc/core-win32-x64-msvc@1.7.26': + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.14': - resolution: {integrity: sha512-9aeXeifnyuvc2pcuuhPQgVUwdpGEzZ+9nJu0W8/hNl/aESFsJGR5i9uQJRGu0atoNr01gK092fvmqMmQAPcKow==} + '@swc/core@1.7.26': + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -318,12 +318,6 @@ packages: '@types/cors@2.8.17': resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -345,11 +339,11 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@18.19.45': - resolution: {integrity: sha512-VZxPKNNhjKmaC1SUYowuXSRSMGyQGmQjvvA1xE4QZ0xce2kLtEhPDS+kqpCPBZYgqblCLQ2DAjSzmgCM5auvhA==} + '@types/node@18.19.50': + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.4.1': - resolution: {integrity: sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==} + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} '@types/qs@6.9.15': resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} @@ -439,8 +433,8 @@ packages: peerDependencies: acorn: ^8 - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} acorn@8.12.1: @@ -488,8 +482,8 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - axios@1.7.4: - resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -498,8 +492,8 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} brace-expansion@1.1.11: @@ -532,8 +526,8 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} + caniuse-lite@1.0.30001660: + resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -593,8 +587,8 @@ packages: cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} - dayjs@1.11.12: - resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==} + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -604,8 +598,8 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -650,8 +644,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.11: - resolution: {integrity: sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==} + electron-to-chromium@1.5.20: + resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -660,6 +654,10 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + encoding@0.1.12: resolution: {integrity: sha512-bl1LAgiQc4ZWr++pNYUdRe/alecaHFeHxIJ/pNciqGdKXghaTCOwKkbKp6ye7pKZGu/GcaSXFk8PBVhgs+dJdA==} @@ -678,8 +676,8 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-html@1.0.3: @@ -713,8 +711,8 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + express@4.21.0: + resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} engines: {node: '>= 0.10.0'} fast-deep-equal@3.1.3: @@ -727,12 +725,12 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -866,8 +864,8 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -952,8 +950,8 @@ packages: resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} engines: {node: '>= 4.0.0'} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -989,9 +987,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -1019,8 +1014,8 @@ packages: encoding: optional: true - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true node-releases@2.0.18: @@ -1050,8 +1045,8 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - openai@4.56.0: - resolution: {integrity: sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==} + openai@4.59.0: + resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -1070,11 +1065,11 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1084,8 +1079,8 @@ packages: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} - protobufjs@7.3.2: - resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} engines: {node: '>=12.0.0'} proxy-addr@2.0.7: @@ -1102,10 +1097,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} @@ -1159,15 +1150,15 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} set-function-length@1.2.2: @@ -1185,8 +1176,8 @@ packages: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-loader@4.0.2: @@ -1264,8 +1255,8 @@ packages: uglify-js: optional: true - terser@5.31.6: - resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + terser@5.32.0: + resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} engines: {node: '>=10'} hasBin: true @@ -1328,19 +1319,19 @@ packages: tsconfig@7.0.0: resolution: {integrity: sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - twilio@5.2.2: - resolution: {integrity: sha512-t2Nd8CvqAc0YxbJghKYQl1Vxc7e6SrWk4U28wwkarUohGcsUMLsGpYeGXKw1Va0KB9TGVZYCs8dcP4TdLJUN9Q==} + twilio@5.3.0: + resolution: {integrity: sha512-bwveAxChPPFR2umttraRjUJdq/WY0OJCCgetzuKqLoGYqYSyYGsiFYYFAB5EOL/XnzCQNwAvq5622u+jqMTLOA==} engines: {node: '>=14.0'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true @@ -1403,8 +1394,8 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.93.0: - resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -1475,9 +1466,9 @@ snapshots: '@deepgram/captions@1.2.0': dependencies: - dayjs: 1.11.12 + dayjs: 1.11.13 - '@deepgram/sdk@3.5.1(bufferutil@4.0.8)(encoding@0.1.12)': + '@deepgram/sdk@3.6.0(bufferutil@4.0.8)(encoding@0.1.12)': dependencies: '@deepgram/captions': 1.2.0 cross-fetch: 3.1.8(encoding@0.1.12) @@ -1489,7 +1480,7 @@ snapshots: - encoding - utf-8-validate - '@grpc/grpc-js@1.11.1': + '@grpc/grpc-js@1.11.2': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -1498,7 +1489,7 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.2.3 - protobufjs: 7.3.2 + protobufjs: 7.4.0 yargs: 17.7.2 '@jridgewell/gen-mapping@0.3.5': @@ -1530,21 +1521,21 @@ snapshots: '@js-sdsl/ordered-map@4.4.2': {} - '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': + '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': dependencies: - tslib: 2.6.3 + tslib: 2.7.0 - '@jsonjoy.com/json-pack@1.1.0(tslib@2.6.3)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) + '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.6.3) - tslib: 2.6.3 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 - '@jsonjoy.com/util@1.3.0(tslib@2.6.3)': + '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': dependencies: - tslib: 2.6.3 + tslib: 2.7.0 '@protobufjs/aspromise@1.1.2': {} @@ -1569,36 +1560,36 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-deepgram@0.0.5(bufferutil@4.0.8)(encoding@0.1.12)': + '@restackio/integrations-deepgram@0.0.7(bufferutil@4.0.8)(encoding@0.1.12)': dependencies: - '@deepgram/sdk': 3.5.1(bufferutil@4.0.8)(encoding@0.1.12) + '@deepgram/sdk': 3.6.0(bufferutil@4.0.8)(encoding@0.1.12) transitivePeerDependencies: - bufferutil - encoding - utf-8-validate - '@restackio/integrations-openai@0.0.12(encoding@0.1.12)(zod@3.23.8)': + '@restackio/integrations-openai@0.0.18(encoding@0.1.12)(zod@3.23.8)': dependencies: - openai: 4.56.0(encoding@0.1.12)(zod@3.23.8) + openai: 4.59.0(encoding@0.1.12)(zod@3.23.8) transitivePeerDependencies: - encoding - zod - '@restackio/integrations-twilio@0.0.2': + '@restackio/integrations-twilio@0.0.4': dependencies: - twilio: 5.2.2 + twilio: 5.3.0 transitivePeerDependencies: - debug - supports-color - '@restackio/integrations-websocket@0.0.6(bufferutil@4.0.8)': + '@restackio/integrations-websocket@0.0.11(bufferutil@4.0.8)': dependencies: ws: 8.18.0(bufferutil@4.0.8) transitivePeerDependencies: - bufferutil - utf-8-validate - '@restackio/restack-sdk-ts@0.0.53': + '@restackio/restack-sdk-ts@0.0.58': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 @@ -1610,51 +1601,51 @@ snapshots: - uglify-js - webpack-cli - '@swc/core-darwin-arm64@1.7.14': + '@swc/core-darwin-arm64@1.7.26': optional: true - '@swc/core-darwin-x64@1.7.14': + '@swc/core-darwin-x64@1.7.26': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.14': + '@swc/core-linux-arm-gnueabihf@1.7.26': optional: true - '@swc/core-linux-arm64-gnu@1.7.14': + '@swc/core-linux-arm64-gnu@1.7.26': optional: true - '@swc/core-linux-arm64-musl@1.7.14': + '@swc/core-linux-arm64-musl@1.7.26': optional: true - '@swc/core-linux-x64-gnu@1.7.14': + '@swc/core-linux-x64-gnu@1.7.26': optional: true - '@swc/core-linux-x64-musl@1.7.14': + '@swc/core-linux-x64-musl@1.7.26': optional: true - '@swc/core-win32-arm64-msvc@1.7.14': + '@swc/core-win32-arm64-msvc@1.7.26': optional: true - '@swc/core-win32-ia32-msvc@1.7.14': + '@swc/core-win32-ia32-msvc@1.7.26': optional: true - '@swc/core-win32-x64-msvc@1.7.14': + '@swc/core-win32-x64-msvc@1.7.26': optional: true - '@swc/core@1.7.14': + '@swc/core@1.7.26': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.14 - '@swc/core-darwin-x64': 1.7.14 - '@swc/core-linux-arm-gnueabihf': 1.7.14 - '@swc/core-linux-arm64-gnu': 1.7.14 - '@swc/core-linux-arm64-musl': 1.7.14 - '@swc/core-linux-x64-gnu': 1.7.14 - '@swc/core-linux-x64-musl': 1.7.14 - '@swc/core-win32-arm64-msvc': 1.7.14 - '@swc/core-win32-ia32-msvc': 1.7.14 - '@swc/core-win32-x64-msvc': 1.7.14 + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 '@swc/counter@0.1.3': {} @@ -1669,7 +1660,7 @@ snapshots: '@temporalio/client@1.11.1': dependencies: - '@grpc/grpc-js': 1.11.1 + '@grpc/grpc-js': 1.11.2 '@temporalio/common': 1.11.1 '@temporalio/proto': 1.11.1 abort-controller: 3.0.0 @@ -1693,11 +1684,11 @@ snapshots: '@temporalio/proto@1.11.1': dependencies: long: 5.2.3 - protobufjs: 7.3.2 + protobufjs: 7.4.0 '@temporalio/worker@1.11.1': dependencies: - '@swc/core': 1.7.14 + '@swc/core': 1.7.26 '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 '@temporalio/common': 1.11.1 @@ -1709,11 +1700,11 @@ snapshots: memfs: 4.11.1 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.93.0(@swc/core@1.7.14)) + source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.26)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)) + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) unionfs: 4.5.4 - webpack: 5.93.0(@swc/core@1.7.14) + webpack: 5.94.0(@swc/core@1.7.26) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1736,31 +1727,21 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/connect@3.4.38': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/cors@2.8.17': dependencies: - '@types/node': 22.4.1 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 9.6.0 - '@types/estree': 1.0.5 - - '@types/eslint@9.6.0': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 + '@types/node': 22.5.4 '@types/estree@1.0.5': {} '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -1780,14 +1761,14 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 form-data: 4.0.0 - '@types/node@18.19.45': + '@types/node@18.19.50': dependencies: undici-types: 5.26.5 - '@types/node@22.4.1': + '@types/node@22.5.4': dependencies: undici-types: 6.19.8 @@ -1798,12 +1779,12 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@types/send': 0.17.4 '@types/strip-bom@3.0.0': {} @@ -1814,7 +1795,7 @@ snapshots: '@types/ws@8.5.12': dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 '@webassemblyjs/ast@1.12.1': dependencies: @@ -1909,7 +1890,7 @@ snapshots: dependencies: acorn: 8.12.1 - acorn-walk@8.3.3: + acorn-walk@8.3.4: dependencies: acorn: 8.12.1 @@ -1917,7 +1898,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.7(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -1955,9 +1936,9 @@ snapshots: asynckit@0.4.0: {} - axios@1.7.4: + axios@1.7.7: dependencies: - follow-redirects: 1.15.6 + follow-redirects: 1.15.9 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -1967,7 +1948,7 @@ snapshots: binary-extensions@2.3.0: {} - body-parser@1.20.2: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -1977,7 +1958,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -1995,8 +1976,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001651 - electron-to-chromium: 1.5.11 + caniuse-lite: 1.0.30001660 + electron-to-chromium: 1.5.20 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -2006,7 +1987,7 @@ snapshots: bufferutil@4.0.8: dependencies: - node-gyp-build: 4.8.1 + node-gyp-build: 4.8.2 optional: true bytes@3.1.2: {} @@ -2019,7 +2000,7 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - caniuse-lite@1.0.30001651: {} + caniuse-lite@1.0.30001660: {} cargo-cp-artifact@0.1.9: {} @@ -2080,15 +2061,15 @@ snapshots: transitivePeerDependencies: - encoding - dayjs@1.11.12: {} + dayjs@1.11.13: {} debug@2.6.9: dependencies: ms: 2.0.0 - debug@4.3.6(supports-color@5.5.0): + debug@4.3.7(supports-color@5.5.0): dependencies: - ms: 2.1.2 + ms: 2.1.3 optionalDependencies: supports-color: 5.5.0 @@ -2120,12 +2101,14 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.11: {} + electron-to-chromium@1.5.20: {} emoji-regex@8.0.0: {} encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + encoding@0.1.12: dependencies: iconv-lite: 0.4.24 @@ -2144,7 +2127,7 @@ snapshots: es-module-lexer@1.5.4: {} - escalade@3.1.2: {} + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -2167,34 +2150,34 @@ snapshots: events@3.3.0: {} - express@4.19.2: + express@4.21.0: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -2211,10 +2194,10 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + finalhandler@1.3.1: dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -2223,7 +2206,7 @@ snapshots: transitivePeerDependencies: - supports-color - follow-redirects@1.15.6: {} + follow-redirects@1.15.9: {} form-data-encoder@1.7.2: {} @@ -2311,7 +2294,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.7(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -2344,7 +2327,7 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-core-module@2.15.0: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -2362,7 +2345,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.4.1 + '@types/node': 22.5.4 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2420,12 +2403,12 @@ snapshots: memfs@4.11.1: dependencies: - '@jsonjoy.com/json-pack': 1.1.0(tslib@2.6.3) - '@jsonjoy.com/util': 1.3.0(tslib@2.6.3) - tree-dump: 1.0.2(tslib@2.6.3) - tslib: 2.6.3 + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 - merge-descriptors@1.0.1: {} + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -2449,8 +2432,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} ms@3.0.0-canary.1: {} @@ -2467,7 +2448,7 @@ snapshots: optionalDependencies: encoding: 0.1.12 - node-gyp-build@4.8.1: + node-gyp-build@4.8.2: optional: true node-releases@2.0.18: {} @@ -2475,7 +2456,7 @@ snapshots: nodemon@3.1.4: dependencies: chokidar: 3.6.0 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.3.7(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 @@ -2499,15 +2480,17 @@ snapshots: dependencies: wrappy: 1.0.2 - openai@4.56.0(encoding@0.1.12)(zod@3.23.8): + openai@4.59.0(encoding@0.1.12)(zod@3.23.8): dependencies: - '@types/node': 18.19.45 + '@types/node': 18.19.50 '@types/node-fetch': 2.6.11 + '@types/qs': 6.9.15 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0(encoding@0.1.12) + qs: 6.13.0 optionalDependencies: zod: 3.23.8 transitivePeerDependencies: @@ -2519,17 +2502,17 @@ snapshots: path-parse@1.0.7: {} - path-to-regexp@0.1.7: {} + path-to-regexp@0.1.10: {} - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} proto3-json-serializer@2.0.2: dependencies: - protobufjs: 7.3.2 + protobufjs: 7.4.0 - protobufjs@7.3.2: + protobufjs@7.4.0: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -2541,7 +2524,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.4.1 + '@types/node': 22.5.4 long: 5.2.3 proxy-addr@2.0.7: @@ -2555,10 +2538,6 @@ snapshots: punycode@2.3.1: {} - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - qs@6.13.0: dependencies: side-channel: 1.0.6 @@ -2584,7 +2563,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -2594,7 +2573,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.3 + tslib: 2.7.0 safe-buffer@5.2.1: {} @@ -2610,7 +2589,7 @@ snapshots: semver@7.6.3: {} - send@0.18.0: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -2632,12 +2611,12 @@ snapshots: dependencies: randombytes: 2.1.0 - serve-static@1.15.0: + serve-static@1.16.2: dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color @@ -2663,13 +2642,13 @@ snapshots: dependencies: semver: 7.6.3 - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.93.0(@swc/core@1.7.14)): + source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.26)): dependencies: iconv-lite: 0.6.3 - source-map-js: 1.2.0 - webpack: 5.93.0(@swc/core@1.7.14) + source-map-js: 1.2.1 + webpack: 5.94.0(@swc/core@1.7.26) source-map-support@0.5.21: dependencies: @@ -2706,35 +2685,35 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)): + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): dependencies: - '@swc/core': 1.7.14 + '@swc/core': 1.7.26 '@swc/counter': 0.1.3 - webpack: 5.93.0(@swc/core@1.7.14) + webpack: 5.94.0(@swc/core@1.7.26) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.6 - webpack: 5.93.0(@swc/core@1.7.14) + terser: 5.32.0 + webpack: 5.94.0(@swc/core@1.7.26) optionalDependencies: - '@swc/core': 1.7.14 + '@swc/core': 1.7.26 - terser@5.31.6: + terser@5.32.0: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 - thingies@1.21.0(tslib@2.6.3): + thingies@1.21.0(tslib@2.7.0): dependencies: - tslib: 2.6.3 + tslib: 2.7.0 to-regex-range@5.0.1: dependencies: @@ -2746,13 +2725,13 @@ snapshots: tr46@0.0.3: {} - tree-dump@1.0.2(tslib@2.6.3): + tree-dump@1.0.2(tslib@2.7.0): dependencies: - tslib: 2.6.3 + tslib: 2.7.0 tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4): + ts-node-dev@2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -2762,33 +2741,33 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) tsconfig: 7.0.0 - typescript: 5.5.4 + typescript: 5.6.2 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.7.14)(@types/node@22.4.1)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.4.1 + '@types/node': 22.5.4 acorn: 8.12.1 - acorn-walk: 8.3.3 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.5.4 + typescript: 5.6.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.14 + '@swc/core': 1.7.26 tsconfig@7.0.0: dependencies: @@ -2797,12 +2776,12 @@ snapshots: strip-bom: 3.0.0 strip-json-comments: 2.0.1 - tslib@2.6.3: {} + tslib@2.7.0: {} - twilio@5.2.2: + twilio@5.3.0: dependencies: - axios: 1.7.4 - dayjs: 1.11.12 + axios: 1.7.7 + dayjs: 1.11.13 https-proxy-agent: 5.0.1 jsonwebtoken: 9.0.2 qs: 6.13.0 @@ -2817,7 +2796,7 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typescript@5.5.4: {} + typescript@5.6.2: {} undefsafe@2.0.5: {} @@ -2834,8 +2813,8 @@ snapshots: update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 + escalade: 3.2.0 + picocolors: 1.1.0 uri-js@4.4.1: dependencies: @@ -2862,9 +2841,8 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.93.0(@swc/core@1.7.14): + webpack@5.94.0(@swc/core@1.7.26): dependencies: - '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 @@ -2885,7 +2863,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.14)(webpack@5.93.0(@swc/core@1.7.14)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -2925,7 +2903,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/examples/voice/readme.md b/examples/voice/readme.md index 9da11af..d6a5ba7 100644 --- a/examples/voice/readme.md +++ b/examples/voice/readme.md @@ -5,7 +5,7 @@ pnpm i Add OPENAI_API_KEY and DEEPGRAM_API_KEY keys in .env pnpm dev-server -pnpm dev-op +pnpm dev-services # Use frontend with browser microphone: diff --git a/examples/voice/src/client.ts b/examples/voice/src/client.ts new file mode 100644 index 0000000..720402d --- /dev/null +++ b/examples/voice/src/client.ts @@ -0,0 +1,14 @@ +import Restack from "@restackio/restack-sdk-ts"; + +import "dotenv/config"; + +export const connectionOptions = { + stackId: process.env.RESTACK_STACK_ID!, + apiKey: process.env.RESTACK_API_KEY!, + address: process.env.RESTACK_API_ADDRESS!, + temporalNamespace: process.env.RESTACK_TEMPORAL_NAMESPACE!, +}; + +export const client = new Restack( + process.env.RESTACK_API_KEY ? connectionOptions : undefined +); diff --git a/examples/voice/src/operator.ts b/examples/voice/src/services.ts similarity index 79% rename from examples/voice/src/operator.ts rename to examples/voice/src/services.ts index 33af2ac..3c99397 100644 --- a/examples/voice/src/operator.ts +++ b/examples/voice/src/services.ts @@ -1,4 +1,3 @@ -import Restack from "@restackio/restack-sdk-ts"; import { workflowSendEvent, erpGetTools, @@ -10,19 +9,18 @@ import { websocketService } from "@restackio/integrations-websocket"; import { twilioService } from "@restackio/integrations-twilio"; import { openaiService } from "@restackio/integrations-openai"; import { deepgramService } from "@restackio/integrations-deepgram"; +import { client } from "./client"; async function main() { const workflowsPath = require.resolve("./Workflows"); try { - const restack = new Restack(); - await Promise.all([ - restack.startService({ + client.startService({ workflowsPath, functions: { workflowSendEvent }, }), - restack.startService({ + client.startService({ taskQueue: "erp", functions: { erpGetTools, @@ -31,10 +29,10 @@ async function main() { erpPlaceOrder, }, }), - websocketService(), - twilioService(), - openaiService(), - deepgramService(), + websocketService({ client }), + twilioService({ client }), + openaiService({ client }), + deepgramService({ client }), ]); console.log("Services running successfully."); From a62b8d5846cd5fadabad3c22b700dc847c5207f1 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 12 Sep 2024 15:01:36 +0200 Subject: [PATCH 052/122] fix chunk schema Former-commit-id: 6559739c267d2308e20862ecf855f1a02bd0a498 Former-commit-id: 3c98cba252303acfbc135dd5119e2087524289d4 --- examples/posthog/src/workflows/chunk.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/examples/posthog/src/workflows/chunk.ts b/examples/posthog/src/workflows/chunk.ts index eff9cef..1e895c5 100644 --- a/examples/posthog/src/workflows/chunk.ts +++ b/examples/posthog/src/workflows/chunk.ts @@ -2,6 +2,8 @@ import { log, step } from "@restackio/restack-sdk-ts/workflow"; import * as functions from "../functions"; import * as openaiFunctions from "@restackio/integrations-openai/functions"; import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; +import z from "zod"; +import zodToJsonSchema from "zod-to-json-schema"; import { chunkSummaryEvent, @@ -9,6 +11,19 @@ import { summaryEndEvent, } from "./recording"; +const chunkSummarySchema = z.object({ + recordingId: z.string().describe("The id of the recording."), + fromTimestamp: z + .string() + .describe("The start timestamp of this recording chunk."), + toTimestamp: z + .string() + .describe("The end timestamp of this recording chunk."), + summary: z.string().describe("The summary of this recording chunk."), +}); + +export type ChunkSummary = z.infer; + export async function chunkWorkflow({ recordingId, chunk, From 4e78769dfe873dab6ccb95433f1ef59ed2ea26f2 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 12 Sep 2024 16:56:11 +0200 Subject: [PATCH 053/122] dockerfiles and restack_up Former-commit-id: b91e57ae87a2a87063b2bda7436a78cd7bce6af0 Former-commit-id: 642ff189ccbd9b1618b864d6924292890ed0b5c4 --- examples/hello/Dockerfile | 34 +++++++++++ examples/hello/package.json | 2 + examples/hello/restack_up.js | 40 +++++++++++++ examples/hello/src/services.ts | 6 +- examples/posthog/Dockerfile | 34 +++++++++++ examples/posthog/package.json | 2 + examples/posthog/restack_up.js | 64 +++++++++++++++++++++ examples/posthog/src/services.ts | 6 +- examples/voice/.env.example | 2 +- examples/voice/Dockerfile.server | 36 ++++++++++++ examples/voice/Dockerfile.services | 34 +++++++++++ examples/voice/package.json | 3 + examples/voice/restack_up.js | 87 +++++++++++++++++++++++++++++ examples/voice/src/server.ts | 4 +- examples/voice/src/services.ts | 6 +- examples/voice/tsconfig.tsbuildinfo | 1 + 16 files changed, 350 insertions(+), 11 deletions(-) create mode 100644 examples/hello/Dockerfile create mode 100644 examples/hello/restack_up.js create mode 100644 examples/posthog/Dockerfile create mode 100644 examples/posthog/restack_up.js create mode 100644 examples/voice/Dockerfile.server create mode 100644 examples/voice/Dockerfile.services create mode 100644 examples/voice/restack_up.js create mode 100644 examples/voice/tsconfig.tsbuildinfo diff --git a/examples/hello/Dockerfile b/examples/hello/Dockerfile new file mode 100644 index 0000000..7db2381 --- /dev/null +++ b/examples/hello/Dockerfile @@ -0,0 +1,34 @@ +# ------- Image ---------- + +FROM node:20-bullseye-slim AS installer + +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +COPY ./package.json ./app/package.json +COPY ./tsconfig.json ./app/tsconfig.json + + +WORKDIR /app + +RUN npm install + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS builder +WORKDIR /app +COPY --from=installer /app . +COPY ./src ./src + +RUN npm run build + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS runner + +COPY --from=builder /app . + +WORKDIR /app + +CMD ["npm", "start"] \ No newline at end of file diff --git a/examples/hello/package.json b/examples/hello/package.json index 66193ce..f5038ec 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -4,8 +4,10 @@ "description": "", "main": "index.js", "scripts": { + "start": "ts-node src/services.ts", "start.watch": "nodemon src/services.ts", "dev": "pnpm start.watch", + "build": "tsc --build", "clean": "rm -rf node_modules", "workflow": "ts-node ./scheduleWorkflow.ts" }, diff --git a/examples/hello/restack_up.js b/examples/hello/restack_up.js new file mode 100644 index 0000000..f9c5ad4 --- /dev/null +++ b/examples/hello/restack_up.js @@ -0,0 +1,40 @@ +import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; + +const main = async () => { + const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); + + const servicesApp = { + name: "services", + dockerFilePath: "examples/hello/Dockerfile", + dockerBuildContext: "examples/hello", + environmentVariables: [ + { + name: "OPENAI_API_KEY", + value: process.env.OPENAI_API_KEY, + }, + { + name: "RESTACK_API_KEY", + value: process.env.RESTACK_API_KEY, + }, + { + name: "RESTACK_API_ADDRESS", + value: process.env.RESTACK_API_ADDRESS, + }, + { + name: "RESTACK_TEMPORAL_NAMESPACE", + value: process.env.RESTACK_TEMPORAL_NAMESPACE, + }, + ], + }; + + + await restackCloudClient.stack({ + name: "development environment", + previewEnabled: false, + applications: [servicesApp], + }); + + await restackCloudClient.up(); +}; + +main(); \ No newline at end of file diff --git a/examples/hello/src/services.ts b/examples/hello/src/services.ts index 4897e83..d9391ea 100644 --- a/examples/hello/src/services.ts +++ b/examples/hello/src/services.ts @@ -2,7 +2,7 @@ import { goodbye } from "./functions"; import { openaiService } from "@restackio/integrations-openai"; import { client } from "./client"; -async function main() { +async function services() { const workflowsPath = require.resolve("./workflows"); try { await Promise.all([ @@ -21,6 +21,6 @@ async function main() { } } -main().catch((err) => { - console.error("Error in main:", err); +services().catch((err) => { + console.error("Error running services:", err); }); diff --git a/examples/posthog/Dockerfile b/examples/posthog/Dockerfile new file mode 100644 index 0000000..7db2381 --- /dev/null +++ b/examples/posthog/Dockerfile @@ -0,0 +1,34 @@ +# ------- Image ---------- + +FROM node:20-bullseye-slim AS installer + +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +COPY ./package.json ./app/package.json +COPY ./tsconfig.json ./app/tsconfig.json + + +WORKDIR /app + +RUN npm install + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS builder +WORKDIR /app +COPY --from=installer /app . +COPY ./src ./src + +RUN npm run build + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS runner + +COPY --from=builder /app . + +WORKDIR /app + +CMD ["npm", "start"] \ No newline at end of file diff --git a/examples/posthog/package.json b/examples/posthog/package.json index cb2e9b9..97c1323 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -4,7 +4,9 @@ "description": "", "main": "index.js", "scripts": { + "start": "ts-node src/services.ts", "dev": "ts-node-dev --respawn --transpile-only src/services.ts", + "build": "tsc --build", "clean": "rm -rf node_modules", "workflow": "ts-node ./scheduleWorkflow.ts" }, diff --git a/examples/posthog/restack_up.js b/examples/posthog/restack_up.js new file mode 100644 index 0000000..8d9fc9c --- /dev/null +++ b/examples/posthog/restack_up.js @@ -0,0 +1,64 @@ +import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; + +const main = async () => { + const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); + + const servicesApp = { + name: "services", + dockerFilePath: "examples/voice/Dockerfile", + dockerBuildContext: "examples/voice", + environmentVariables: [ + { + name: "OPENAI_API_KEY", + value: process.env.OPENAI_API_KEY, + }, + { + name: "DEEPGRAM_API_KEY", + value: process.env.DEEPGRAM_API_KEY, + }, + { + name: "TWILIO_ACCOUNT_SID", + value: process.env.TWILIO_ACCOUNT_SID, + }, + { + name: "TWILIO_AUTH_TOKEN", + value: process.env.TWILIO_AUTH_TOKEN, + }, + { + name: "FROM_NUMBER", + value: process.env.FROM_NUMBER, + }, + { + name: "APP_NUMBER", + value: process.env.APP_NUMBER, + }, + { + name: "YOUR_NUMBER", + value: process.env.YOUR_NUMBER, + }, + { + name: "RESTACK_API_KEY", + value: process.env.RESTACK_API_KEY, + }, + { + name: "RESTACK_API_ADDRESS", + value: process.env.RESTACK_API_ADDRESS, + }, + { + name: "RESTACK_TEMPORAL_NAMESPACE", + value: process.env.RESTACK_TEMPORAL_NAMESPACE, + }, + ], + }; + + + await restackCloudClient.stack({ + name: "development environment", + previewEnabled: false, + applications: [servicesApp], + }); + + await restackCloudClient.up(); +}; + +main(); \ No newline at end of file diff --git a/examples/posthog/src/services.ts b/examples/posthog/src/services.ts index c2540aa..a1806cd 100644 --- a/examples/posthog/src/services.ts +++ b/examples/posthog/src/services.ts @@ -9,7 +9,7 @@ import { import { openaiService } from "@restackio/integrations-openai"; import { client } from "./client"; -async function main() { +async function services() { const workflowsPath = require.resolve("./Workflows"); try { @@ -44,6 +44,6 @@ async function main() { } } -main().catch((err) => { - console.error("Error in main:", err); +services().catch((err) => { + console.error("Error running services:", err); }); diff --git a/examples/voice/.env.example b/examples/voice/.env.example index 6cca7bb..a9cc6a9 100644 --- a/examples/voice/.env.example +++ b/examples/voice/.env.example @@ -12,4 +12,4 @@ APP_NUMBER= YOUR_NUMBER= # Ngrok -SERVER=5756-5-61-150-161.ngrok-free.app +SERVER_HOST=5756-5-61-150-161.ngrok-free.app diff --git a/examples/voice/Dockerfile.server b/examples/voice/Dockerfile.server new file mode 100644 index 0000000..fdfc32c --- /dev/null +++ b/examples/voice/Dockerfile.server @@ -0,0 +1,36 @@ +# ------- Image ---------- + +FROM node:20-bullseye-slim AS installer + +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +COPY ./package.json ./app/package.json +COPY ./tsconfig.json ./app/tsconfig.json + + +WORKDIR /app + +RUN npm install + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS builder +WORKDIR /app +COPY --from=installer /app . +COPY ./src ./src + +RUN npm run build + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS runner + +COPY --from=builder /app . + +WORKDIR /app + +EXPOSE 4000 + +CMD ["npm", "start-server"] \ No newline at end of file diff --git a/examples/voice/Dockerfile.services b/examples/voice/Dockerfile.services new file mode 100644 index 0000000..580d35e --- /dev/null +++ b/examples/voice/Dockerfile.services @@ -0,0 +1,34 @@ +# ------- Image ---------- + +FROM node:20-bullseye-slim AS installer + +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +COPY ./package.json ./app/package.json +COPY ./tsconfig.json ./app/tsconfig.json + + +WORKDIR /app + +RUN npm install + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS builder +WORKDIR /app +COPY --from=installer /app . +COPY ./src ./src + +RUN npm run build + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS runner + +COPY --from=builder /app . + +WORKDIR /app + +CMD ["npm", "start-services"] \ No newline at end of file diff --git a/examples/voice/package.json b/examples/voice/package.json index 1a1472e..6f6321b 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -4,8 +4,11 @@ "description": "", "main": "index.js", "scripts": { + "start": "ts-node src/server.ts", + "start-services": "ts-node src/services.ts", "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", "dev-services": "ts-node-dev --respawn --transpile-only src/services.ts", + "build": "tsc --build", "clean": "rm -rf node_modules", "call": "ts-node ./callWorkflow.ts", "ngrok": "ngrok http 4000" diff --git a/examples/voice/restack_up.js b/examples/voice/restack_up.js new file mode 100644 index 0000000..fdae02c --- /dev/null +++ b/examples/voice/restack_up.js @@ -0,0 +1,87 @@ +import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; + +const main = async () => { + const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); + + const serverName = "server" + + const commonEnvs = [ + { + name: "RESTACK_API_KEY", + value: process.env.RESTACK_API_KEY, + }, + { + name: "RESTACK_API_ADDRESS", + value: process.env.RESTACK_API_ADDRESS, + }, + { + name: "RESTACK_TEMPORAL_NAMESPACE", + value: process.env.RESTACK_TEMPORAL_NAMESPACE, + }, + ] + + const serverApp = { + name: serverName, + dockerFilePath: "examples/voice/Dockerfile.server", + dockerBuildContext: "examples/voice", + environmentVariables: [ + { + name: "SERVER_HOST", + linkTo:serverName, + }, + ...commonEnvs + ], + }; + + const servicesApp = { + name: "services", + dockerFilePath: "examples/posthog/Dockerfile", + dockerBuildContext: "examples/posthog", + environmentVariables: [ + { + name: "OPENAI_API_KEY", + value: process.env.OPENAI_API_KEY, + }, + { + name: "DEEPGRAM_API_KEY", + value: process.env.DEEPGRAM_API_KEY, + }, + { + name: "TWILIO_ACCOUNT_SID", + value: process.env.TWILIO_ACCOUNT_SID, + }, + { + name: "TWILIO_AUTH_TOKEN", + value: process.env.TWILIO_AUTH_TOKEN, + }, + { + name: "FROM_NUMBER", + value: process.env.OPENAI_API_KEY, + }, + { + name: "APP_NUMBER", + value: process.env.DEEPGRAM_API_KEY, + }, + { + name: "YOUR_NUMBER", + value: process.env.TWILIO_ACCOUNT_SID, + }, + { + name: "TWILIO_AUTH_TOKEN", + value: process.env.TWILIO_AUTH_TOKEN, + }, + ...commonEnvs + ], + }; + + + await restackCloudClient.stack({ + name: "development environment", + previewEnabled: false, + applications: [serverApp, servicesApp], + }); + + await restackCloudClient.up(); +}; + +main(); \ No newline at end of file diff --git a/examples/voice/src/server.ts b/examples/voice/src/server.ts index b31481e..5d58609 100644 --- a/examples/voice/src/server.ts +++ b/examples/voice/src/server.ts @@ -12,7 +12,9 @@ const app = express(); const server = createServer(app); const wss = new WebSocketServer({ server }); const PORT = process.env.PORT || 4000; -export const websocketAddress = `ws://localhost:${PORT}/connection`; +export const websocketAddress = `ws://${ + process.env.SERVER_HOST ? process.env.SERVER_HOST : `localhost:${PORT}` +}/connection`; app.use(cors()); app.use(express.json()); diff --git a/examples/voice/src/services.ts b/examples/voice/src/services.ts index 3c99397..535666c 100644 --- a/examples/voice/src/services.ts +++ b/examples/voice/src/services.ts @@ -11,7 +11,7 @@ import { openaiService } from "@restackio/integrations-openai"; import { deepgramService } from "@restackio/integrations-deepgram"; import { client } from "./client"; -async function main() { +export async function services() { const workflowsPath = require.resolve("./Workflows"); try { @@ -41,6 +41,6 @@ async function main() { } } -main().catch((err) => { - console.error("Error in main:", err); +services().catch((err) => { + console.error("Error in services:", err); }); diff --git a/examples/voice/tsconfig.tsbuildinfo b/examples/voice/tsconfig.tsbuildinfo new file mode 100644 index 0000000..a355597 --- /dev/null +++ b/examples/voice/tsconfig.tsbuildinfo @@ -0,0 +1 @@ +{"root":["./src/client.ts","./src/server.ts","./src/services.ts","./src/functions/index.ts","./src/functions/erp/checkinventory.ts","./src/functions/erp/checkprice.ts","./src/functions/erp/index.ts","./src/functions/erp/placeorder.ts","./src/functions/erp/tools.ts","./src/functions/openai/prompt.ts","./src/functions/utils/index.ts","./src/functions/utils/sendeventtoworkflow.ts","./src/workflows/index.ts","./src/workflows/twiliocall.ts","./src/workflows/conversation/conversation.ts","./src/workflows/conversation/events.ts","./src/workflows/room/events.ts","./src/workflows/room/room.ts"],"version":"5.6.2"} \ No newline at end of file From 3ddc9fecb99deac3465b5bf84382e37950005867 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 12 Sep 2024 17:14:05 +0200 Subject: [PATCH 054/122] fix start port Former-commit-id: 8085602ecd390b168bb8eff7cb14bb7da8d6a2ae Former-commit-id: ece409f510e8c1a64dee88bf5ed92114c627965b --- examples/voice/Dockerfile.server | 2 +- examples/voice/package.json | 10 +- examples/voice/pnpm-lock.yaml | 167 ++++++++++++++++++++++++++++++- examples/voice/restack_up.js | 5 + 4 files changed, 176 insertions(+), 8 deletions(-) diff --git a/examples/voice/Dockerfile.server b/examples/voice/Dockerfile.server index fdfc32c..38b7a32 100644 --- a/examples/voice/Dockerfile.server +++ b/examples/voice/Dockerfile.server @@ -31,6 +31,6 @@ COPY --from=builder /app . WORKDIR /app -EXPOSE 4000 +EXPOSE 80 CMD ["npm", "start-server"] \ No newline at end of file diff --git a/examples/voice/package.json b/examples/voice/package.json index 6f6321b..98bea19 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -3,8 +3,9 @@ "version": "1.0.0", "description": "", "main": "index.js", + "type": "module", "scripts": { - "start": "ts-node src/server.ts", + "start-server": "ts-node src/server.ts", "start-services": "ts-node src/services.ts", "dev-server": "ts-node-dev --respawn --transpile-only src/server.ts", "dev-services": "ts-node-dev --respawn --transpile-only src/services.ts", @@ -32,7 +33,8 @@ "typescript": "^5.6.2", "uuid": "^10.0.0", "ws": "^8.18.0", - "zod": "^3.23.8" + "zod": "^3.23.8", + "ts-node": "^10.9.2" }, "devDependencies": { "@types/cors": "^2.8.17", @@ -41,8 +43,8 @@ "@types/uuid": "^10.0.0", "@types/ws": "^8.5.12", "nodemon": "^3.1.4", - "ts-node": "^10.9.2", - "ts-node-dev": "^2.0.0" + "ts-node-dev": "^2.0.0", + "@restackio/restack-sdk-cloud-ts": "^1.0.5" }, "optionalDependencies": { "bufferutil": "^4.0.8" diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index ef5f4f4..5c9b09e 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -41,6 +41,9 @@ importers: openai: specifier: ^4.59.0 version: 4.59.0(encoding@0.1.12)(zod@3.23.8) + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) twilio: specifier: ^5.3.0 version: 5.3.0 @@ -61,6 +64,9 @@ importers: specifier: ^4.0.8 version: 4.0.8 devDependencies: + '@restackio/restack-sdk-cloud-ts': + specifier: ^1.0.5 + version: 1.0.5 '@types/cors': specifier: ^2.8.17 version: 2.8.17 @@ -79,9 +85,6 @@ importers: nodemon: specifier: ^3.1.4 version: 3.1.4 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) ts-node-dev: specifier: ^2.0.0 version: 2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) @@ -154,6 +157,12 @@ packages: peerDependencies: tslib: '2' + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -196,6 +205,10 @@ packages: '@restackio/integrations-websocket@0.0.11': resolution: {integrity: sha512-MvoXjA6VYA9gYN4r9hjKoYzqsAt9Ogd8HlSgsjyRNy0Bky9OW4enknjpLvM6gP5g8/jJ1CofEa9bif0aoH8uIQ==} + '@restackio/restack-sdk-cloud-ts@1.0.5': + resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} + engines: {node: '>=20'} + '@restackio/restack-sdk-ts@0.0.58': resolution: {integrity: sha512-SC/sZIBl5KrpLx7S44DQMYmK24N3ClZB3njLd+1/7PJ/7d2TzBKh/s1w9xOt8/c4msDNuRSWyV2iiywgrO6dAg==} engines: {node: '>=20'} @@ -518,6 +531,10 @@ packages: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -533,6 +550,10 @@ packages: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} hasBin: true + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -611,10 +632,22 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -868,6 +901,11 @@ packages: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -880,10 +918,19 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} @@ -1045,6 +1092,10 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + openai@4.59.0: resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==} hasBin: true @@ -1075,6 +1126,9 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} @@ -1129,6 +1183,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -1172,6 +1230,9 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + simple-git@3.26.0: + resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} + simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} @@ -1221,6 +1282,10 @@ packages: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -1266,6 +1331,9 @@ packages: peerDependencies: tslib: ^2 + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -1274,6 +1342,9 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + touch@3.1.1: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true @@ -1326,6 +1397,10 @@ packages: resolution: {integrity: sha512-bwveAxChPPFR2umttraRjUJdq/WY0OJCCgetzuKqLoGYqYSyYGsiFYYFAB5EOL/XnzCQNwAvq5622u+jqMTLOA==} engines: {node: '>=14.0'} + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -1455,6 +1530,9 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -1537,6 +1615,14 @@ snapshots: dependencies: tslib: 2.7.0 + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -1589,6 +1675,17 @@ snapshots: - bufferutil - utf-8-validate + '@restackio/restack-sdk-cloud-ts@1.0.5': + dependencies: + chalk: 4.1.2 + dotenv: 16.4.5 + open: 10.1.0 + simple-git: 3.26.0 + yup: 1.4.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + '@restackio/restack-sdk-ts@0.0.58': dependencies: '@temporalio/activity': 1.11.1 @@ -1990,6 +2087,10 @@ snapshots: node-gyp-build: 4.8.2 optional: true + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + bytes@3.1.2: {} call-bind@1.0.7: @@ -2004,6 +2105,11 @@ snapshots: cargo-cp-artifact@0.1.9: {} + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -2075,12 +2181,21 @@ snapshots: deepmerge@4.3.1: {} + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 + define-lazy-prop@3.0.0: {} + delayed-stream@1.0.0: {} depd@2.0.0: {} @@ -2331,6 +2446,8 @@ snapshots: dependencies: hasown: 2.0.2 + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -2339,8 +2456,16 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-number@7.0.0: {} + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + isexe@3.1.1: {} jest-worker@27.5.1: @@ -2480,6 +2605,13 @@ snapshots: dependencies: wrappy: 1.0.2 + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + openai@4.59.0(encoding@0.1.12)(zod@3.23.8): dependencies: '@types/node': 18.19.50 @@ -2508,6 +2640,8 @@ snapshots: picomatch@2.3.1: {} + property-expr@2.0.6: {} + proto3-json-serializer@2.0.2: dependencies: protobufjs: 7.4.0 @@ -2571,6 +2705,8 @@ snapshots: dependencies: glob: 7.2.3 + run-applescript@7.0.0: {} + rxjs@7.8.1: dependencies: tslib: 2.7.0 @@ -2638,6 +2774,14 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 + simple-git@3.26.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + simple-update-notifier@2.0.0: dependencies: semver: 7.6.3 @@ -2679,6 +2823,10 @@ snapshots: dependencies: has-flag: 3.0.0 + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + supports-color@8.1.1: dependencies: has-flag: 4.0.0 @@ -2715,12 +2863,16 @@ snapshots: dependencies: tslib: 2.7.0 + tiny-case@1.0.3: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 toidentifier@1.0.1: {} + toposort@2.0.2: {} + touch@3.1.1: {} tr46@0.0.3: {} @@ -2791,6 +2943,8 @@ snapshots: - debug - supports-color + type-fest@2.19.0: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -2912,4 +3066,11 @@ snapshots: yn@3.1.1: {} + yup@1.4.0: + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + zod@3.23.8: {} diff --git a/examples/voice/restack_up.js b/examples/voice/restack_up.js index fdae02c..e56ad04 100644 --- a/examples/voice/restack_up.js +++ b/examples/voice/restack_up.js @@ -1,4 +1,5 @@ import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; +import "dotenv/config"; const main = async () => { const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); @@ -25,6 +26,10 @@ const main = async () => { dockerFilePath: "examples/voice/Dockerfile.server", dockerBuildContext: "examples/voice", environmentVariables: [ + { + name: "PORT", + value: "80", + }, { name: "SERVER_HOST", linkTo:serverName, From cdea7338fd45dabeadab5bd6b1b29c6c4b544387 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 12 Sep 2024 17:21:12 +0200 Subject: [PATCH 055/122] remove type module Former-commit-id: e20aeeda7460cdba1513d326a2c31b4c6e576e4a Former-commit-id: d38a83c75a834b2e1def0c0fd63f3bebc8044404 --- examples/voice/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/voice/package.json b/examples/voice/package.json index 98bea19..f0dcc01 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -3,7 +3,6 @@ "version": "1.0.0", "description": "", "main": "index.js", - "type": "module", "scripts": { "start-server": "ts-node src/server.ts", "start-services": "ts-node src/services.ts", From 80b5a606e8cd019da1d7e58cdc926d398c593568 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 12 Sep 2024 17:41:47 +0200 Subject: [PATCH 056/122] add run Former-commit-id: 6ba0951a7cecc9f85c57a98f8c41f4b9a9e62940 Former-commit-id: ff7da44f8a3dd20171318a32a84a47a210adfc02 --- examples/voice/Dockerfile.server | 2 +- examples/voice/Dockerfile.services | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/voice/Dockerfile.server b/examples/voice/Dockerfile.server index 38b7a32..ab4182b 100644 --- a/examples/voice/Dockerfile.server +++ b/examples/voice/Dockerfile.server @@ -33,4 +33,4 @@ WORKDIR /app EXPOSE 80 -CMD ["npm", "start-server"] \ No newline at end of file +CMD ["npm", "run start-server"] \ No newline at end of file diff --git a/examples/voice/Dockerfile.services b/examples/voice/Dockerfile.services index 580d35e..f482188 100644 --- a/examples/voice/Dockerfile.services +++ b/examples/voice/Dockerfile.services @@ -31,4 +31,4 @@ COPY --from=builder /app . WORKDIR /app -CMD ["npm", "start-services"] \ No newline at end of file +CMD ["npm", "run start-services"] \ No newline at end of file From ffeae04adb42847516f1498695acd57dd997d053 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 12 Sep 2024 18:03:18 +0200 Subject: [PATCH 057/122] commands Former-commit-id: 2d608373a26dd662c0d582a3a1d57bb09e0a44c5 Former-commit-id: 605c6ae47fad784fb373fb6cec1955dc6ce72957 --- examples/voice/Dockerfile.server | 2 +- examples/voice/Dockerfile.services | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/voice/Dockerfile.server b/examples/voice/Dockerfile.server index ab4182b..4b7a579 100644 --- a/examples/voice/Dockerfile.server +++ b/examples/voice/Dockerfile.server @@ -33,4 +33,4 @@ WORKDIR /app EXPOSE 80 -CMD ["npm", "run start-server"] \ No newline at end of file +CMD ["npm", "run", "start-server"] \ No newline at end of file diff --git a/examples/voice/Dockerfile.services b/examples/voice/Dockerfile.services index f482188..846160e 100644 --- a/examples/voice/Dockerfile.services +++ b/examples/voice/Dockerfile.services @@ -31,4 +31,4 @@ COPY --from=builder /app . WORKDIR /app -CMD ["npm", "run start-services"] \ No newline at end of file +CMD ["npm", "run", "start-services"] \ No newline at end of file From a3599a5ac12eb5e70f4482bd76c2b9b3b31d4621 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 13 Sep 2024 21:37:59 +0200 Subject: [PATCH 058/122] bump openai with o1 and integrate linear in posthog example Former-commit-id: 80d241eafd37b14e9673edcab8ba0c069631eb44 Former-commit-id: 7a5ecdfa283232241e62e76de98bc88f9b9c1198 --- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 18 ++--- examples/hello/src/workflows/hello.ts | 4 +- examples/posthog/package.json | 3 +- examples/posthog/pnpm-lock.yaml | 72 ++++++++++++++++--- examples/posthog/readme.md | 11 +++ examples/posthog/scheduleWorkflow.ts | 11 ++- examples/posthog/src/services.ts | 3 + examples/posthog/src/workflows/chunk.ts | 6 +- examples/posthog/src/workflows/digest.ts | 41 ++++++++--- examples/posthog/src/workflows/recording.ts | 6 +- examples/voice/package.json | 2 +- examples/voice/pnpm-lock.yaml | 37 ++++++++-- .../workflows/conversation/conversation.ts | 8 ++- 14 files changed, 177 insertions(+), 47 deletions(-) diff --git a/examples/hello/package.json b/examples/hello/package.json index f5038ec..4d86730 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -21,7 +21,7 @@ ] }, "dependencies": { - "@restackio/integrations-openai": "^0.0.18", + "@restackio/integrations-openai": "^0.0.22", "@restackio/restack-sdk-ts": "^0.0.58", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 43b7a60..f3d8ff6 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/integrations-openai': - specifier: ^0.0.18 - version: 0.0.18(zod@3.23.8) + specifier: ^0.0.22 + version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': specifier: ^0.0.58 version: 0.0.58 @@ -155,8 +155,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.18': - resolution: {integrity: sha512-UyLl1kKV1xR9VJfH11sR+LFiXf5XGdwEkfCi+Ba5ORx6qo8UG1g9wEYYUua99hH3l/j5ReEK/fI6GvxFGW8lcg==} + '@restackio/integrations-openai@0.0.22': + resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} '@restackio/restack-sdk-ts@0.0.40': resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} @@ -819,8 +819,8 @@ packages: zod: optional: true - openai@4.59.0: - resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==} + openai@4.61.0: + resolution: {integrity: sha512-xkygRBRLIUumxzKGb1ug05pWmJROQsHkGuj/N6Jiw2dj0dI19JvbFpErSZKmJ/DA+0IvpcugZqCAyk8iLpyM6Q==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -1194,9 +1194,9 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.18(zod@3.23.8)': + '@restackio/integrations-openai@0.0.22(zod@3.23.8)': dependencies: - openai: 4.59.0(zod@3.23.8) + openai: 4.61.0(zod@3.23.8) transitivePeerDependencies: - encoding - zod @@ -1852,7 +1852,7 @@ snapshots: transitivePeerDependencies: - encoding - openai@4.59.0(zod@3.23.8): + openai@4.61.0(zod@3.23.8): dependencies: '@types/node': 18.19.50 '@types/node-fetch': 2.6.11 diff --git a/examples/hello/src/workflows/hello.ts b/examples/hello/src/workflows/hello.ts index f93be3f..aa3af4c 100644 --- a/examples/hello/src/workflows/hello.ts +++ b/examples/hello/src/workflows/hello.ts @@ -10,7 +10,7 @@ interface Input { } export async function helloWorkflow({ name }: Input) { - const content = `Greet this person: ${name}. In 4 words or less.`; + const userContent = `Greet this person: ${name}. In 4 words or less.`; const MessageSchema = z.object({ message: z.string().describe("The greeting message."), @@ -26,7 +26,7 @@ export async function helloWorkflow({ name }: Input) { const openaiOutput = await step({ taskQueue: openaiTaskQueue, }).openaiChatCompletionsBase({ - content, + userContent, jsonSchema, }); diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 97c1323..34c2412 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -14,7 +14,8 @@ "author": "", "license": "ISC", "dependencies": { - "@restackio/integrations-openai": "^0.0.18", + "@restackio/integrations-linear": "^0.0.2", + "@restackio/integrations-openai": "^0.0.22", "@restackio/restack-sdk-ts": "^0.0.57", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index c2e78ff..bd06868 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -8,9 +8,12 @@ importers: .: dependencies: + '@restackio/integrations-linear': + specifier: ^0.0.2 + version: 0.0.2 '@restackio/integrations-openai': - specifier: ^0.0.18 - version: 0.0.18(zod@3.23.8) + specifier: ^0.0.22 + version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': specifier: ^0.0.57 version: 0.0.57 @@ -55,6 +58,11 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@graphql-typed-document-node/core@3.2.0': + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@grpc/grpc-js@1.11.2': resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} engines: {node: '>=12.10.0'} @@ -109,6 +117,10 @@ packages: peerDependencies: tslib: '2' + '@linear/sdk@29.0.0': + resolution: {integrity: sha512-c3hmWW4L0sIL2Aaf0wt7LhfIc58AHdsHcQOCxWZC3nXb0dDvrG6/g9WFXM5k2dYSgPJHcZ21O/+KlI/KTOkK1A==} + engines: {node: '>=12.x', yarn: 1.x} + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -139,8 +151,11 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.18': - resolution: {integrity: sha512-UyLl1kKV1xR9VJfH11sR+LFiXf5XGdwEkfCi+Ba5ORx6qo8UG1g9wEYYUua99hH3l/j5ReEK/fI6GvxFGW8lcg==} + '@restackio/integrations-linear@0.0.2': + resolution: {integrity: sha512-nb+T8CGOBlrJZYUfHaMNlsXYx6/59n7HJOzd/e3Gd1aIaDX1KkgyCv85mkPJkNQT3U2wvGuNeD747xZTmwXIdA==} + + '@restackio/integrations-openai@0.0.22': + resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} '@restackio/restack-sdk-ts@0.0.57': resolution: {integrity: sha512-68p5ua5BgX6eJk2CrCMc0nKeSonCfvQM7F4EAEfc9OfC/vHg5S+IDOzxRxsa+y2/TSzKXwyRNmuDRIv4umjt7Q==} @@ -586,6 +601,10 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphql@15.9.0: + resolution: {integrity: sha512-GCOQdvm7XxV1S4U4CGrsdlEN37245eC8P9zaYCMr6K1BG0IPGy5lUwmJsEOGyl1GD6HXjOtl2keCP9asRBwNvA==} + engines: {node: '>= 10.x'} + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -662,6 +681,9 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + isomorphic-unfetch@3.1.0: + resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -753,8 +775,8 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - openai@4.59.0: - resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==} + openai@4.60.1: + resolution: {integrity: sha512-j7aZOpgN0MtflPgNaBlSnOyok4jwto0GVOxVC5g0jCfa0lvywYx+LhlFim/dXzPtyi8MjKozyLshSj93617vNQ==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -1000,6 +1022,9 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + unfetch@4.2.0: + resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + unionfs@4.5.4: resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} @@ -1097,6 +1122,10 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@graphql-typed-document-node/core@3.2.0(graphql@15.9.0)': + dependencies: + graphql: 15.9.0 + '@grpc/grpc-js@1.11.2': dependencies: '@grpc/proto-loader': 0.7.13 @@ -1154,6 +1183,14 @@ snapshots: dependencies: tslib: 2.7.0 + '@linear/sdk@29.0.0': + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@15.9.0) + graphql: 15.9.0 + isomorphic-unfetch: 3.1.0 + transitivePeerDependencies: + - encoding + '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -1177,9 +1214,15 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.18(zod@3.23.8)': + '@restackio/integrations-linear@0.0.2': + dependencies: + '@linear/sdk': 29.0.0 + transitivePeerDependencies: + - encoding + + '@restackio/integrations-openai@0.0.22(zod@3.23.8)': dependencies: - openai: 4.59.0(zod@3.23.8) + openai: 4.60.1(zod@3.23.8) transitivePeerDependencies: - encoding - zod @@ -1659,6 +1702,8 @@ snapshots: graceful-fs@4.2.11: {} + graphql@15.9.0: {} + has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -1716,6 +1761,13 @@ snapshots: isexe@3.1.1: {} + isomorphic-unfetch@3.1.0: + dependencies: + node-fetch: 2.7.0 + unfetch: 4.2.0 + transitivePeerDependencies: + - encoding + jest-worker@27.5.1: dependencies: '@types/node': 22.5.4 @@ -1792,7 +1844,7 @@ snapshots: dependencies: wrappy: 1.0.2 - openai@4.59.0(zod@3.23.8): + openai@4.60.1(zod@3.23.8): dependencies: '@types/node': 18.19.50 '@types/node-fetch': 2.6.11 @@ -2043,6 +2095,8 @@ snapshots: undici-types@6.19.8: {} + unfetch@4.2.0: {} + unionfs@4.5.4: dependencies: fs-monkey: 1.0.6 diff --git a/examples/posthog/readme.md b/examples/posthog/readme.md index 773747d..f8f7117 100644 --- a/examples/posthog/readme.md +++ b/examples/posthog/readme.md @@ -1,9 +1,20 @@ +# Motivation + +We built this to autonomous AI to watch Posthog Session Recording and create a digest on Linear (optional) + +Its using OpenAI GPT-4o-mini to analyse recordings. +And OpenAI O1-preview to reason and create a digest in Markdown. + +By default we retrieve all recodings from last 24 hours, so by scheduling the workflow to run every day we get a digest of all new recordings. + # Install dependencies pnpm i # Add necessary keys from .env.example in .env +To get Linear team id, enter command K then search UUID and click Developer: Copy model UUID and select the team where you want to create issues. + # Run operator pnpm dev diff --git a/examples/posthog/scheduleWorkflow.ts b/examples/posthog/scheduleWorkflow.ts index e63046d..24408a9 100644 --- a/examples/posthog/scheduleWorkflow.ts +++ b/examples/posthog/scheduleWorkflow.ts @@ -10,8 +10,17 @@ async function scheduleWorkflow() { projectId: process.env.POSTHOG_PROJECT_ID, host: process.env.POSTHOG_HOST, maxRecordings: 5, // Useful to limit cost when debugging locally. Comment out to run for all recordings - maxChunksPerRecordingBlob: 10, // Useful to limit cost when debugging locally. Comment out to process all chunks + maxChunksPerRecordingBlob: 10, // Useful to limit cost when debugging locally. Comment out to process all chunks per recording + linearTeamId: process.env.LINEAR_TEAM_ID, }, + // schedule: { // Comment out to run everyday + // intervals: [ + // { + // every: "1 day", + // offset: "-8 hours", + // }, + // ], + // }, }); console.log("Workflow scheduled successfully:", workflowRunId); diff --git a/examples/posthog/src/services.ts b/examples/posthog/src/services.ts index a1806cd..63159ba 100644 --- a/examples/posthog/src/services.ts +++ b/examples/posthog/src/services.ts @@ -8,6 +8,7 @@ import { } from "./functions"; import { openaiService } from "@restackio/integrations-openai"; import { client } from "./client"; +import { linearService } from "@restackio/integrations-linear"; async function services() { const workflowsPath = require.resolve("./Workflows"); @@ -36,6 +37,8 @@ async function services() { }, }), openaiService({ client }), + openaiService({ client, taskQueueSuffix: "-beta" }), + linearService({ client }), ]); console.log("Services running successfully."); diff --git a/examples/posthog/src/workflows/chunk.ts b/examples/posthog/src/workflows/chunk.ts index 1e895c5..999456e 100644 --- a/examples/posthog/src/workflows/chunk.ts +++ b/examples/posthog/src/workflows/chunk.ts @@ -46,10 +46,10 @@ export async function chunkWorkflow({ const { cost, result } = await step({ taskQueue: openaiTaskQueue, }).openaiChatCompletionsBase({ - systemPrompt: + systemContent: "You are a helpful assistant that summarizes posthog recordings. Here is the snapshot blob of it", model: "gpt-4o-mini", - content: ` + userContent: ` Here is a chunk of the recording blob: ${chunk} For the particular extract the behavior of the user and summarize it. @@ -74,7 +74,7 @@ export async function chunkWorkflow({ const input: ChunkSummaryEvent = { recordingId, summary, - cost, + cost: cost ?? 0, }; try { diff --git a/examples/posthog/src/workflows/digest.ts b/examples/posthog/src/workflows/digest.ts index 01d5545..a46c344 100644 --- a/examples/posthog/src/workflows/digest.ts +++ b/examples/posthog/src/workflows/digest.ts @@ -3,17 +3,21 @@ import { recordingWorkflow } from "./recording"; import * as functions from "../functions"; import * as openaiFunctions from "@restackio/integrations-openai/functions"; import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; +import * as linearFunctions from "@restackio/integrations-linear/functions"; +import { linearTaskQueue } from "@restackio/integrations-linear/taskQueue"; export async function digestWorkflow({ projectId, host, maxRecordings, maxChunksPerRecordingBlob, + linearTeamId, }: { projectId: string; host: string; maxRecordings?: number; maxChunksPerRecordingBlob?: number; + linearTeamId?: string; }) { let totalCost = 0; // Get last 24h recordings @@ -57,18 +61,16 @@ export async function digestWorkflow({ // Create a digest from all the chunks summaries const { cost, result } = await step({ - taskQueue: openaiTaskQueue, + taskQueue: `${openaiTaskQueue}-beta`, }).openaiChatCompletionsBase({ - systemPrompt: - "You are a helpful assistant that summarizes posthog recordings.", - model: "gpt-4o-mini", - content: ` - Summarize the following PostHog recordings analysis into a digestible email, following the structure: + model: "o1-preview", + userContent: ` + Summarize the following PostHog recordings analysis into a linear issue in markdown format, following the structure: • 10-second overview: Briefly mention the most urgent and critical user behavior or anomalies. • 30-second summary: Highlight key user interactions and events, such as network requests, page views, and modal interactions. Focus on patterns or significant moments. • 1-minute deep dive: Provide a more detailed breakdown of the user’s behavior, including network activity, UI interactions, and any potential anomalies. Include timestamps or specific event details when relevant. - Finally, end the email with a brief call to action or recommendation. + Finally, end the issue description with a brief call to action or recommendation. Include the url to the recordings when necessary so user can easily access them. To make the recording url replace the RECORDING_ID in: ${host}/project/${projectId}/replay/RECORDING_ID @@ -76,15 +78,34 @@ export async function digestWorkflow({ ${JSON.stringify(summaries)} `, price: { - input: 0.00000015, - output: 0.0000006, + input: 0.000015, + output: 0.00006, }, }); - totalCost += cost; + totalCost += cost ?? 0; const digest = result.choices[0].message.content; + if (linearTeamId) { + const linearResult = await step({ + taskQueue: linearTaskQueue, + }).linearCreateIssue({ + issue: { + teamId: linearTeamId, + title: `PostHog Digest - ${new Date().toISOString()}`, + description: digest, + }, + }); + + return { + digest, + totalCost, + summaries, + linearResult, + }; + } + return { digest, totalCost, diff --git a/examples/posthog/src/workflows/recording.ts b/examples/posthog/src/workflows/recording.ts index 70518b4..2b7207a 100644 --- a/examples/posthog/src/workflows/recording.ts +++ b/examples/posthog/src/workflows/recording.ts @@ -110,10 +110,10 @@ export async function recordingWorkflow({ const { cost, result } = await step({ taskQueue: openaiTaskQueue, }).openaiChatCompletionsBase({ - systemPrompt: + systemContent: "You are a helpful assistant that summarizes posthog recordings.", model: "gpt-4o-mini", - content: ` + userContent: ` Here are summaries of each chunk of the recording blob: ${summaries} The users events are ${JSON.stringify(events)} @@ -126,7 +126,7 @@ export async function recordingWorkflow({ }, }); - totalCost += cost; + totalCost += cost ?? 0; const summaryResult = result.choices[0].message.content; diff --git a/examples/voice/package.json b/examples/voice/package.json index f0dcc01..1d0c567 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -19,7 +19,7 @@ "dependencies": { "@deepgram/sdk": "^3.6.0", "@restackio/integrations-deepgram": "^0.0.7", - "@restackio/integrations-openai": "^0.0.18", + "@restackio/integrations-openai": "^0.0.22", "@restackio/integrations-twilio": "^0.0.4", "@restackio/integrations-websocket": "^0.0.11", "@restackio/restack-sdk-ts": "^0.0.58", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 5c9b09e..7419922 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.0.7 version: 0.0.7(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/integrations-openai': - specifier: ^0.0.18 - version: 0.0.18(encoding@0.1.12)(zod@3.23.8) + specifier: ^0.0.22 + version: 0.0.22(encoding@0.1.12)(zod@3.23.8) '@restackio/integrations-twilio': specifier: ^0.0.4 version: 0.0.4 @@ -196,8 +196,8 @@ packages: '@restackio/integrations-deepgram@0.0.7': resolution: {integrity: sha512-Hm0Z//Q46xHQnmpL7dixB8rHP98Rc1Wab5MAG2FoHwSKRhSvDPXLPq2qlGzxBNCWER8yprM+9wJZ7FM9ibTyLA==} - '@restackio/integrations-openai@0.0.18': - resolution: {integrity: sha512-UyLl1kKV1xR9VJfH11sR+LFiXf5XGdwEkfCi+Ba5ORx6qo8UG1g9wEYYUua99hH3l/j5ReEK/fI6GvxFGW8lcg==} + '@restackio/integrations-openai@0.0.22': + resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} '@restackio/integrations-twilio@0.0.4': resolution: {integrity: sha512-FA6WDIq7qRgwKEmvzVPoGLRR9dzDueXMn39KtrzkFcS9IKrJF3B+cewoGA2LEHpWNtD6d8hva66hZFipgzl8Wg==} @@ -1105,6 +1105,15 @@ packages: zod: optional: true + openai@4.61.0: + resolution: {integrity: sha512-xkygRBRLIUumxzKGb1ug05pWmJROQsHkGuj/N6Jiw2dj0dI19JvbFpErSZKmJ/DA+0IvpcugZqCAyk8iLpyM6Q==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -1654,9 +1663,9 @@ snapshots: - encoding - utf-8-validate - '@restackio/integrations-openai@0.0.18(encoding@0.1.12)(zod@3.23.8)': + '@restackio/integrations-openai@0.0.22(encoding@0.1.12)(zod@3.23.8)': dependencies: - openai: 4.59.0(encoding@0.1.12)(zod@3.23.8) + openai: 4.61.0(encoding@0.1.12)(zod@3.23.8) transitivePeerDependencies: - encoding - zod @@ -2628,6 +2637,22 @@ snapshots: transitivePeerDependencies: - encoding + openai@4.61.0(encoding@0.1.12)(zod@3.23.8): + dependencies: + '@types/node': 18.19.50 + '@types/node-fetch': 2.6.11 + '@types/qs': 6.9.15 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0(encoding@0.1.12) + qs: 6.13.0 + optionalDependencies: + zod: 3.23.8 + transitivePeerDependencies: + - encoding + parseurl@1.3.3: {} path-is-absolute@1.0.1: {} diff --git a/examples/voice/src/workflows/conversation/conversation.ts b/examples/voice/src/workflows/conversation/conversation.ts index 2353bb4..074b523 100644 --- a/examples/voice/src/workflows/conversation/conversation.ts +++ b/examples/voice/src/workflows/conversation/conversation.ts @@ -16,7 +16,10 @@ import { ToolCallEvent, } from "@restackio/integrations-openai/types"; import { agentPrompt } from "../../functions/openai/prompt"; -import { ChatCompletionAssistantMessageParam } from "openai/resources/index"; +import { + ChatModel, + ChatCompletionAssistantMessageParam, +} from "openai/resources/index"; export async function conversationWorkflow({ assistantName, @@ -39,7 +42,10 @@ export async function conversationWorkflow({ taskQueue: "erp", }).erpGetTools(); + const model: ChatModel = "gpt-4o-mini"; + const commonOpenaiOptions = { + model, assistantName, tools, streamAtCharacter: "•", From 556fdc4c020f41ce097cfbd5e2386467d906f6b7 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 13 Sep 2024 21:57:44 +0200 Subject: [PATCH 059/122] fix schedule to 10am PST Former-commit-id: bded2f98af18086bb531c5a4b314d887fabd070c Former-commit-id: 5757100e147e0758bb0ccf43a10f473d7ffc75e6 --- examples/posthog/scheduleWorkflow.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/posthog/scheduleWorkflow.ts b/examples/posthog/scheduleWorkflow.ts index 24408a9..d45f582 100644 --- a/examples/posthog/scheduleWorkflow.ts +++ b/examples/posthog/scheduleWorkflow.ts @@ -13,14 +13,14 @@ async function scheduleWorkflow() { maxChunksPerRecordingBlob: 10, // Useful to limit cost when debugging locally. Comment out to process all chunks per recording linearTeamId: process.env.LINEAR_TEAM_ID, }, - // schedule: { // Comment out to run everyday - // intervals: [ - // { - // every: "1 day", - // offset: "-8 hours", - // }, - // ], - // }, + schedule: { + calendars: [ + { + dayOfWeek: "*", + hour: 17, // Everyday at 5pm UTC = 10am + }, + ], + }, }); console.log("Workflow scheduled successfully:", workflowRunId); From 1119572a49150baedd37bc2d6134a4854fe0b840 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 13 Sep 2024 21:57:50 +0200 Subject: [PATCH 060/122] comment Former-commit-id: 2eefff078dd6b1325c38761351745b4b4b54e716 Former-commit-id: 2462c179ec7fa7e988e1a1f1db4d227dc4b2db1d --- examples/posthog/scheduleWorkflow.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/posthog/scheduleWorkflow.ts b/examples/posthog/scheduleWorkflow.ts index d45f582..6bc9d27 100644 --- a/examples/posthog/scheduleWorkflow.ts +++ b/examples/posthog/scheduleWorkflow.ts @@ -17,7 +17,7 @@ async function scheduleWorkflow() { calendars: [ { dayOfWeek: "*", - hour: 17, // Everyday at 5pm UTC = 10am + hour: 17, // Everyday at 5pm UTC = 10am PST }, ], }, From 879e430b05fc760d89cafb27a99355d0f32e82de Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sat, 14 Sep 2024 12:52:33 +0200 Subject: [PATCH 061/122] restack up Former-commit-id: 29cca2bc95072bf79c2e51615802319a9ea5d86b Former-commit-id: 57c5f3797053c84663d775d25388cf73de04d8f5 --- examples/posthog/restack_up.js | 68 ++++++++++------------------ examples/posthog/scheduleWorkflow.ts | 2 +- 2 files changed, 26 insertions(+), 44 deletions(-) diff --git a/examples/posthog/restack_up.js b/examples/posthog/restack_up.js index 8d9fc9c..b8cae18 100644 --- a/examples/posthog/restack_up.js +++ b/examples/posthog/restack_up.js @@ -1,59 +1,41 @@ import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; +import "dotenv/config"; const main = async () => { const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); + + const restackEngineEnvs = [ + { + name: "RESTACK_API_KEY", + value: process.env.RESTACK_API_KEY, + }, + { + name: "RESTACK_API_ADDRESS", + value: process.env.RESTACK_API_ADDRESS, + }, + { + name: "RESTACK_TEMPORAL_NAMESPACE", + value: process.env.RESTACK_TEMPORAL_NAMESPACE, + }, + ]; + const servicesApp = { name: "services", - dockerFilePath: "examples/voice/Dockerfile", - dockerBuildContext: "examples/voice", + dockerFilePath: "examples/posthog/Dockerfile", + dockerBuildContext: "examples/posthog", environmentVariables: [ - { - name: "OPENAI_API_KEY", - value: process.env.OPENAI_API_KEY, - }, - { - name: "DEEPGRAM_API_KEY", - value: process.env.DEEPGRAM_API_KEY, - }, - { - name: "TWILIO_ACCOUNT_SID", - value: process.env.TWILIO_ACCOUNT_SID, - }, - { - name: "TWILIO_AUTH_TOKEN", - value: process.env.TWILIO_AUTH_TOKEN, - }, - { - name: "FROM_NUMBER", - value: process.env.FROM_NUMBER, - }, - { - name: "APP_NUMBER", - value: process.env.APP_NUMBER, - }, - { - name: "YOUR_NUMBER", - value: process.env.YOUR_NUMBER, - }, - { - name: "RESTACK_API_KEY", - value: process.env.RESTACK_API_KEY, - }, - { - name: "RESTACK_API_ADDRESS", - value: process.env.RESTACK_API_ADDRESS, - }, - { - name: "RESTACK_TEMPORAL_NAMESPACE", - value: process.env.RESTACK_TEMPORAL_NAMESPACE, - }, + ...restackEngineEnvs, + ...Object.keys(process.env).map(key => ({ + name: key, + value: process.env[key], + })), ], }; await restackCloudClient.stack({ - name: "development environment", + name: "posthog-example", previewEnabled: false, applications: [servicesApp], }); diff --git a/examples/posthog/scheduleWorkflow.ts b/examples/posthog/scheduleWorkflow.ts index 6bc9d27..50c8d3d 100644 --- a/examples/posthog/scheduleWorkflow.ts +++ b/examples/posthog/scheduleWorkflow.ts @@ -1,5 +1,5 @@ import "dotenv/config"; -import { client } from "../hello/src/client"; +import { client } from "./src/client"; async function scheduleWorkflow() { try { From 67428e520166f82d60557544ceddff51fbe916c1 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sat, 14 Sep 2024 13:20:01 +0200 Subject: [PATCH 062/122] restack up fixes Former-commit-id: 3e52a3901446c12440cd9e596a2bef10d6e0032a Former-commit-id: 410ca50a7a004789fa3c60f9d9e51fa16303be01 --- .gitignore | 3 +- examples/hello/Dockerfile | 12 +- examples/hello/package.json | 3 +- examples/hello/readme.md | 4 + .../hello/{restack_up.js => restack_up.mjs} | 0 examples/posthog/Dockerfile | 12 +- examples/posthog/package.json | 7 +- examples/posthog/pnpm-lock.yaml | 213 +++++++++++++++--- examples/posthog/readme.md | 4 + .../posthog/{restack_up.js => restack_up.mjs} | 0 examples/posthog/src/services.ts | 2 +- examples/voice/Dockerfile.server | 13 +- examples/voice/Dockerfile.services | 12 +- examples/voice/readme.md | 4 + .../voice/{restack_up.js => restack_up.mjs} | 0 examples/voice/src/services.ts | 2 +- 16 files changed, 246 insertions(+), 45 deletions(-) rename examples/hello/{restack_up.js => restack_up.mjs} (100%) rename examples/posthog/{restack_up.js => restack_up.mjs} (100%) rename examples/voice/{restack_up.js => restack_up.mjs} (100%) diff --git a/.gitignore b/.gitignore index a1c131a..3319e05 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ node_modules dist .env .env* -.npmrc \ No newline at end of file +.npmrc +tsconfig.tsbuildinfo \ No newline at end of file diff --git a/examples/hello/Dockerfile b/examples/hello/Dockerfile index 7db2381..2417164 100644 --- a/examples/hello/Dockerfile +++ b/examples/hello/Dockerfile @@ -23,12 +23,18 @@ COPY ./src ./src RUN npm run build -# ------- Builder ---------- +# ------- Runner ---------- FROM node:20-bullseye-slim AS runner -COPY --from=builder /app . +RUN addgroup --system --gid 1001 service +RUN adduser --system --uid 1001 service +USER service WORKDIR /app -CMD ["npm", "start"] \ No newline at end of file +COPY --from=builder /app . + +ENV NODE_OPTIONS=”--max-old-space-size=4096″ + +CMD ["node", "dist/services"] \ No newline at end of file diff --git a/examples/hello/package.json b/examples/hello/package.json index 4d86730..5a630a6 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -9,7 +9,8 @@ "dev": "pnpm start.watch", "build": "tsc --build", "clean": "rm -rf node_modules", - "workflow": "ts-node ./scheduleWorkflow.ts" + "workflow": "ts-node ./scheduleWorkflow.ts", + "restack-up": "node restack_up.mjs" }, "nodemonConfig": { "execMap": { diff --git a/examples/hello/readme.md b/examples/hello/readme.md index 8807dfa..9f98582 100644 --- a/examples/hello/readme.md +++ b/examples/hello/readme.md @@ -43,3 +43,7 @@ flowchart TD P1 -->|sends status + output | E P2 -->|sends status output | E ``` + +# Deploy + +pnpm restack-up diff --git a/examples/hello/restack_up.js b/examples/hello/restack_up.mjs similarity index 100% rename from examples/hello/restack_up.js rename to examples/hello/restack_up.mjs diff --git a/examples/posthog/Dockerfile b/examples/posthog/Dockerfile index 7db2381..2417164 100644 --- a/examples/posthog/Dockerfile +++ b/examples/posthog/Dockerfile @@ -23,12 +23,18 @@ COPY ./src ./src RUN npm run build -# ------- Builder ---------- +# ------- Runner ---------- FROM node:20-bullseye-slim AS runner -COPY --from=builder /app . +RUN addgroup --system --gid 1001 service +RUN adduser --system --uid 1001 service +USER service WORKDIR /app -CMD ["npm", "start"] \ No newline at end of file +COPY --from=builder /app . + +ENV NODE_OPTIONS=”--max-old-space-size=4096″ + +CMD ["node", "dist/services"] \ No newline at end of file diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 34c2412..fcebc43 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -8,7 +8,8 @@ "dev": "ts-node-dev --respawn --transpile-only src/services.ts", "build": "tsc --build", "clean": "rm -rf node_modules", - "workflow": "ts-node ./scheduleWorkflow.ts" + "workflow": "ts-node ./scheduleWorkflow.ts", + "restack-up": "node restack_up.mjs" }, "keywords": [], "author": "", @@ -16,6 +17,7 @@ "dependencies": { "@restackio/integrations-linear": "^0.0.2", "@restackio/integrations-openai": "^0.0.22", + "@restackio/restack-sdk-ts": "^0.0.57", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", @@ -25,7 +27,8 @@ "zod-to-json-schema": "^3.23.3" }, "devDependencies": { - "@types/node": "^22.5.4", + "@restackio/restack-sdk-cloud-ts": "^1.0.5", + "@types/node": "^22.5.5", "@types/uuid": "^10.0.0", "nodemon": "^3.1.4", "ts-node": "^10.9.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index bd06868..f7b5154 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -36,9 +36,12 @@ importers: specifier: ^3.23.3 version: 3.23.3(zod@3.23.8) devDependencies: + '@restackio/restack-sdk-cloud-ts': + specifier: ^1.0.5 + version: 1.0.5 '@types/node': - specifier: ^22.5.4 - version: 22.5.4 + specifier: ^22.5.5 + version: 22.5.5 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 @@ -47,10 +50,10 @@ importers: version: 3.1.4 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) + version: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.5)(typescript@5.6.2) ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) + version: 2.0.0(@swc/core@1.7.26)(@types/node@22.5.5)(typescript@5.6.2) packages: @@ -117,6 +120,12 @@ packages: peerDependencies: tslib: '2' + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@linear/sdk@29.0.0': resolution: {integrity: sha512-c3hmWW4L0sIL2Aaf0wt7LhfIc58AHdsHcQOCxWZC3nXb0dDvrG6/g9WFXM5k2dYSgPJHcZ21O/+KlI/KTOkK1A==} engines: {node: '>=12.x', yarn: 1.x} @@ -157,6 +166,10 @@ packages: '@restackio/integrations-openai@0.0.22': resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} + '@restackio/restack-sdk-cloud-ts@1.0.5': + resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} + engines: {node: '>=20'} + '@restackio/restack-sdk-ts@0.0.57': resolution: {integrity: sha512-68p5ua5BgX6eJk2CrCMc0nKeSonCfvQM7F4EAEfc9OfC/vHg5S+IDOzxRxsa+y2/TSzKXwyRNmuDRIv4umjt7Q==} engines: {node: '>=20'} @@ -282,11 +295,11 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.5.4': - resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + '@types/node@22.5.5': + resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/qs@6.9.16': + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} '@types/strip-bom@3.0.0': resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} @@ -421,6 +434,10 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -432,6 +449,10 @@ packages: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} hasBin: true + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -473,10 +494,22 @@ packages: supports-color: optional: true + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -492,8 +525,8 @@ packages: dynamic-dedupe@0.3.0: resolution: {integrity: sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==} - electron-to-chromium@1.5.20: - resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} + electron-to-chromium@1.5.23: + resolution: {integrity: sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -661,6 +694,11 @@ packages: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -673,10 +711,19 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} @@ -775,8 +822,12 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - openai@4.60.1: - resolution: {integrity: sha512-j7aZOpgN0MtflPgNaBlSnOyok4jwto0GVOxVC5g0jCfa0lvywYx+LhlFim/dXzPtyi8MjKozyLshSj93617vNQ==} + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + openai@4.61.0: + resolution: {integrity: sha512-xkygRBRLIUumxzKGb1ug05pWmJROQsHkGuj/N6Jiw2dj0dI19JvbFpErSZKmJ/DA+0IvpcugZqCAyk8iLpyM6Q==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -798,6 +849,9 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} @@ -837,6 +891,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -866,6 +924,9 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + simple-git@3.26.0: + resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} + simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} @@ -911,6 +972,10 @@ packages: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -956,10 +1021,16 @@ packages: peerDependencies: tslib: ^2 + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + touch@3.1.1: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true @@ -1008,6 +1079,10 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + typescript@5.6.2: resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} @@ -1108,6 +1183,9 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + zod-to-json-schema@3.23.3: resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} peerDependencies: @@ -1183,6 +1261,14 @@ snapshots: dependencies: tslib: 2.7.0 + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + '@linear/sdk@29.0.0': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@15.9.0) @@ -1222,11 +1308,22 @@ snapshots: '@restackio/integrations-openai@0.0.22(zod@3.23.8)': dependencies: - openai: 4.60.1(zod@3.23.8) + openai: 4.61.0(zod@3.23.8) transitivePeerDependencies: - encoding - zod + '@restackio/restack-sdk-cloud-ts@1.0.5': + dependencies: + chalk: 4.1.2 + dotenv: 16.4.5 + open: 10.1.0 + simple-git: 3.26.0 + yup: 1.4.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + '@restackio/restack-sdk-ts@0.0.57': dependencies: '@temporalio/activity': 1.11.1 @@ -1368,18 +1465,18 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 form-data: 4.0.0 '@types/node@18.19.50': dependencies: undici-types: 5.26.5 - '@types/node@22.5.4': + '@types/node@22.5.5': dependencies: undici-types: 6.19.8 - '@types/qs@6.9.15': {} + '@types/qs@6.9.16': {} '@types/strip-bom@3.0.0': {} @@ -1529,12 +1626,16 @@ snapshots: browserslist@4.23.3: dependencies: caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.20 + electron-to-chromium: 1.5.23 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) buffer-from@1.1.2: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -1547,6 +1648,11 @@ snapshots: cargo-cp-artifact@0.1.9: {} + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -1589,12 +1695,21 @@ snapshots: optionalDependencies: supports-color: 5.5.0 + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 + define-lazy-prop@3.0.0: {} + delayed-stream@1.0.0: {} diff@4.0.2: {} @@ -1605,7 +1720,7 @@ snapshots: dependencies: xtend: 4.0.2 - electron-to-chromium@1.5.20: {} + electron-to-chromium@1.5.23: {} emoji-regex@8.0.0: {} @@ -1749,6 +1864,8 @@ snapshots: dependencies: hasown: 2.0.2 + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -1757,8 +1874,16 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-number@7.0.0: {} + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + isexe@3.1.1: {} isomorphic-unfetch@3.1.0: @@ -1770,7 +1895,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -1844,11 +1969,18 @@ snapshots: dependencies: wrappy: 1.0.2 - openai@4.60.1(zod@3.23.8): + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + openai@4.61.0(zod@3.23.8): dependencies: '@types/node': 18.19.50 '@types/node-fetch': 2.6.11 - '@types/qs': 6.9.15 + '@types/qs': 6.9.16 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 @@ -1868,6 +2000,8 @@ snapshots: picomatch@2.3.1: {} + property-expr@2.0.6: {} + proto3-json-serializer@2.0.2: dependencies: protobufjs: 7.4.0 @@ -1884,7 +2018,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.5.4 + '@types/node': 22.5.5 long: 5.2.3 pstree.remy@1.1.8: {} @@ -1915,6 +2049,8 @@ snapshots: dependencies: glob: 7.2.3 + run-applescript@7.0.0: {} + rxjs@7.8.1: dependencies: tslib: 2.7.0 @@ -1951,6 +2087,14 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 + simple-git@3.26.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + simple-update-notifier@2.0.0: dependencies: semver: 7.6.3 @@ -1990,6 +2134,10 @@ snapshots: dependencies: has-flag: 3.0.0 + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + supports-color@8.1.1: dependencies: has-flag: 4.0.0 @@ -2026,10 +2174,14 @@ snapshots: dependencies: tslib: 2.7.0 + tiny-case@1.0.3: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + toposort@2.0.2: {} + touch@3.1.1: {} tr46@0.0.3: {} @@ -2040,7 +2192,7 @@ snapshots: tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): + ts-node-dev@2.0.0(@swc/core@1.7.26)(@types/node@22.5.5)(typescript@5.6.2): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -2050,7 +2202,7 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) + ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.5)(typescript@5.6.2) tsconfig: 7.0.0 typescript: 5.6.2 transitivePeerDependencies: @@ -2058,14 +2210,14 @@ snapshots: - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.5.5)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.5.4 + '@types/node': 22.5.5 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2087,6 +2239,8 @@ snapshots: tslib@2.7.0: {} + type-fest@2.19.0: {} + typescript@5.6.2: {} undefsafe@2.0.5: {} @@ -2193,6 +2347,13 @@ snapshots: yn@3.1.1: {} + yup@1.4.0: + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + zod-to-json-schema@3.23.3(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/examples/posthog/readme.md b/examples/posthog/readme.md index f8f7117..d9708c8 100644 --- a/examples/posthog/readme.md +++ b/examples/posthog/readme.md @@ -22,3 +22,7 @@ pnpm dev # Schedule digest workflow with pnpm workflow + +# deploy + +pnpm restack-up diff --git a/examples/posthog/restack_up.js b/examples/posthog/restack_up.mjs similarity index 100% rename from examples/posthog/restack_up.js rename to examples/posthog/restack_up.mjs diff --git a/examples/posthog/src/services.ts b/examples/posthog/src/services.ts index 63159ba..0d5fdc8 100644 --- a/examples/posthog/src/services.ts +++ b/examples/posthog/src/services.ts @@ -11,7 +11,7 @@ import { client } from "./client"; import { linearService } from "@restackio/integrations-linear"; async function services() { - const workflowsPath = require.resolve("./Workflows"); + const workflowsPath = require.resolve("./workflows"); try { // https://posthog.com/docs/api#rate-limiting diff --git a/examples/voice/Dockerfile.server b/examples/voice/Dockerfile.server index 4b7a579..5acc1e5 100644 --- a/examples/voice/Dockerfile.server +++ b/examples/voice/Dockerfile.server @@ -22,15 +22,20 @@ COPY --from=installer /app . COPY ./src ./src RUN npm run build - -# ------- Builder ---------- +# ------- Runner ---------- FROM node:20-bullseye-slim AS runner -COPY --from=builder /app . +RUN addgroup --system --gid 1001 service +RUN adduser --system --uid 1001 service +USER service WORKDIR /app +COPY --from=builder /app . + +ENV NODE_OPTIONS=”--max-old-space-size=4096″ + EXPOSE 80 -CMD ["npm", "run", "start-server"] \ No newline at end of file +CMD ["node", "dist/services"] \ No newline at end of file diff --git a/examples/voice/Dockerfile.services b/examples/voice/Dockerfile.services index 846160e..2417164 100644 --- a/examples/voice/Dockerfile.services +++ b/examples/voice/Dockerfile.services @@ -23,12 +23,18 @@ COPY ./src ./src RUN npm run build -# ------- Builder ---------- +# ------- Runner ---------- FROM node:20-bullseye-slim AS runner -COPY --from=builder /app . +RUN addgroup --system --gid 1001 service +RUN adduser --system --uid 1001 service +USER service WORKDIR /app -CMD ["npm", "run", "start-services"] \ No newline at end of file +COPY --from=builder /app . + +ENV NODE_OPTIONS=”--max-old-space-size=4096″ + +CMD ["node", "dist/services"] \ No newline at end of file diff --git a/examples/voice/readme.md b/examples/voice/readme.md index d6a5ba7..bc06401 100644 --- a/examples/voice/readme.md +++ b/examples/voice/readme.md @@ -23,6 +23,10 @@ pnpm ngrok pnpm call +# Deploy + +pnpm restack-up + ### Troubleshooting Error: listen EADDRINUSE: address already in use :::4000 diff --git a/examples/voice/restack_up.js b/examples/voice/restack_up.mjs similarity index 100% rename from examples/voice/restack_up.js rename to examples/voice/restack_up.mjs diff --git a/examples/voice/src/services.ts b/examples/voice/src/services.ts index 535666c..ccfea7e 100644 --- a/examples/voice/src/services.ts +++ b/examples/voice/src/services.ts @@ -12,7 +12,7 @@ import { deepgramService } from "@restackio/integrations-deepgram"; import { client } from "./client"; export async function services() { - const workflowsPath = require.resolve("./Workflows"); + const workflowsPath = require.resolve("./workflows"); try { await Promise.all([ From 038c340ec9cc2cfef55d40c0bcf7b48c30297103 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 19 Sep 2024 01:15:48 +0200 Subject: [PATCH 063/122] bump sdk 0.60 Former-commit-id: 9278d46a5f44de5062febda0a46ca7e6859f8f2b Former-commit-id: 5f753c91df749aa63c8b847c25d39f6e42bc80c8 --- docker-compose.yaml | 3 +- examples/hello/package.json | 3 +- examples/hello/pnpm-lock.yaml | 184 +++++++++++++++++++++++++++++++- examples/posthog/package.json | 2 +- examples/posthog/pnpm-lock.yaml | 10 +- examples/voice/package.json | 2 +- examples/voice/pnpm-lock.yaml | 10 +- 7 files changed, 194 insertions(+), 20 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 0c5d050..4bfbdf1 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,5 +5,4 @@ services: ports: - "5233:5233" - "6233:6233" - - "7233:7233" - - "8233:8233" \ No newline at end of file + - "7233:7233" \ No newline at end of file diff --git a/examples/hello/package.json b/examples/hello/package.json index 5a630a6..67c9b80 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,13 +23,14 @@ }, "dependencies": { "@restackio/integrations-openai": "^0.0.22", - "@restackio/restack-sdk-ts": "^0.0.58", + "@restackio/restack-sdk-ts": "^0.0.60", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.3" }, "devDependencies": { + "@restackio/restack-sdk-cloud-ts": "^1.0.5", "@types/node": "^20.16.5", "nodemon": "^2.0.22", "ts-node": "^10.9.2" diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index f3d8ff6..0955770 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.58 - version: 0.0.58 + specifier: ^0.0.60 + version: 0.0.60 '@temporalio/workflow': specifier: ^1.11.1 version: 1.11.1 @@ -27,6 +27,9 @@ importers: specifier: ^3.23.3 version: 3.23.3(zod@3.23.8) devDependencies: + '@restackio/restack-sdk-cloud-ts': + specifier: ^1.0.5 + version: 1.0.13 '@types/node': specifier: ^20.16.5 version: 20.16.5 @@ -125,6 +128,12 @@ packages: peerDependencies: tslib: '2' + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -158,12 +167,16 @@ packages: '@restackio/integrations-openai@0.0.22': resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} + '@restackio/restack-sdk-cloud-ts@1.0.13': + resolution: {integrity: sha512-1YOKmVdlBUcY45dpMkPPXftPi51yKeso9Zcf46PyItFdVjw2aqUEEkTz9HmKhrIGRfkcpdrgxrj4WSgcrZUTKQ==} + engines: {node: '>=18'} + '@restackio/restack-sdk-ts@0.0.40': resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.58': - resolution: {integrity: sha512-SC/sZIBl5KrpLx7S44DQMYmK24N3ClZB3njLd+1/7PJ/7d2TzBKh/s1w9xOt8/c4msDNuRSWyV2iiywgrO6dAg==} + '@restackio/restack-sdk-ts@0.0.60': + resolution: {integrity: sha512-TliaoZ6Lh4C15/8tkIrcBuPwc1kjz94Zq9gi84xuuNNYb8tDYGlNL2UlsXa2FRKeac7anYpt0eh1P+ryphikjA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -496,6 +509,10 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -507,6 +524,10 @@ packages: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} hasBin: true + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -547,10 +568,31 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -710,6 +752,11 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -722,10 +769,19 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} @@ -810,6 +866,10 @@ packages: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + openai@4.56.0: resolution: {integrity: sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==} hasBin: true @@ -835,6 +895,9 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} @@ -865,6 +928,10 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -897,6 +964,9 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + simple-git@3.26.0: + resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} + simple-update-notifier@1.1.0: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} engines: {node: '>=8.10.0'} @@ -934,6 +1004,10 @@ packages: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -975,10 +1049,16 @@ packages: peerDependencies: tslib: ^2 + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + touch@3.1.1: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true @@ -1009,6 +1089,10 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -1100,6 +1184,9 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + zod-to-json-schema@3.23.3: resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} peerDependencies: @@ -1171,6 +1258,14 @@ snapshots: dependencies: tslib: 2.7.0 + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -1201,6 +1296,17 @@ snapshots: - encoding - zod + '@restackio/restack-sdk-cloud-ts@1.0.13': + dependencies: + chalk: 4.1.2 + dotenv: 16.4.5 + open: 10.1.0 + simple-git: 3.26.0 + yup: 1.4.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + '@restackio/restack-sdk-ts@0.0.40': dependencies: '@temporalio/activity': 1.11.1 @@ -1213,7 +1319,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-ts@0.0.58': + '@restackio/restack-sdk-ts@0.0.60': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 @@ -1572,6 +1678,10 @@ snapshots: buffer-from@1.1.2: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -1584,6 +1694,11 @@ snapshots: cargo-cp-artifact@0.1.9: {} + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -1626,12 +1741,25 @@ snapshots: optionalDependencies: supports-color: 5.5.0 + debug@4.3.7: + dependencies: + ms: 2.1.3 + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 + define-lazy-prop@3.0.0: {} + delayed-stream@1.0.0: {} diff@4.0.2: {} @@ -1758,6 +1886,8 @@ snapshots: dependencies: binary-extensions: 2.3.0 + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -1766,8 +1896,16 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-number@7.0.0: {} + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + isexe@3.1.1: {} jest-worker@27.5.1: @@ -1838,6 +1976,13 @@ snapshots: object-inspect@1.13.2: {} + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + openai@4.56.0(zod@3.23.8): dependencies: '@types/node': 18.19.42 @@ -1872,6 +2017,8 @@ snapshots: picomatch@2.3.1: {} + property-expr@2.0.6: {} + proto3-json-serializer@2.0.2: dependencies: protobufjs: 7.4.0 @@ -1909,6 +2056,8 @@ snapshots: require-directory@2.1.1: {} + run-applescript@7.0.0: {} + rxjs@7.8.1: dependencies: tslib: 2.7.0 @@ -1947,6 +2096,14 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 + simple-git@3.26.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + simple-update-notifier@1.1.0: dependencies: semver: 7.0.0 @@ -1982,6 +2139,10 @@ snapshots: dependencies: has-flag: 3.0.0 + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + supports-color@8.1.1: dependencies: has-flag: 4.0.0 @@ -2016,10 +2177,14 @@ snapshots: dependencies: tslib: 2.7.0 + tiny-case@1.0.3: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + toposort@2.0.2: {} + touch@3.1.1: {} tr46@0.0.3: {} @@ -2070,6 +2235,8 @@ snapshots: tslib@2.7.0: {} + type-fest@2.19.0: {} + typescript@4.9.5: {} typescript@5.5.4: {} @@ -2170,6 +2337,13 @@ snapshots: yn@3.1.1: {} + yup@1.4.0: + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + zod-to-json-schema@3.23.3(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/examples/posthog/package.json b/examples/posthog/package.json index fcebc43..4cead49 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -18,7 +18,7 @@ "@restackio/integrations-linear": "^0.0.2", "@restackio/integrations-openai": "^0.0.22", - "@restackio/restack-sdk-ts": "^0.0.57", + "@restackio/restack-sdk-ts": "^0.0.60", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", "typescript": "^5.6.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index f7b5154..26a05a1 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.57 - version: 0.0.57 + specifier: ^0.0.60 + version: 0.0.60 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -170,8 +170,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.57': - resolution: {integrity: sha512-68p5ua5BgX6eJk2CrCMc0nKeSonCfvQM7F4EAEfc9OfC/vHg5S+IDOzxRxsa+y2/TSzKXwyRNmuDRIv4umjt7Q==} + '@restackio/restack-sdk-ts@0.0.60': + resolution: {integrity: sha512-TliaoZ6Lh4C15/8tkIrcBuPwc1kjz94Zq9gi84xuuNNYb8tDYGlNL2UlsXa2FRKeac7anYpt0eh1P+ryphikjA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1324,7 +1324,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.57': + '@restackio/restack-sdk-ts@0.0.60': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/voice/package.json b/examples/voice/package.json index 1d0c567..0715a4e 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -22,7 +22,7 @@ "@restackio/integrations-openai": "^0.0.22", "@restackio/integrations-twilio": "^0.0.4", "@restackio/integrations-websocket": "^0.0.11", - "@restackio/restack-sdk-ts": "^0.0.58", + "@restackio/restack-sdk-ts": "^0.0.60", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 7419922..b12b6c0 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: ^0.0.11 version: 0.0.11(bufferutil@4.0.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.58 - version: 0.0.58 + specifier: ^0.0.60 + version: 0.0.60 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -209,8 +209,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.58': - resolution: {integrity: sha512-SC/sZIBl5KrpLx7S44DQMYmK24N3ClZB3njLd+1/7PJ/7d2TzBKh/s1w9xOt8/c4msDNuRSWyV2iiywgrO6dAg==} + '@restackio/restack-sdk-ts@0.0.60': + resolution: {integrity: sha512-TliaoZ6Lh4C15/8tkIrcBuPwc1kjz94Zq9gi84xuuNNYb8tDYGlNL2UlsXa2FRKeac7anYpt0eh1P+ryphikjA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1695,7 +1695,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.58': + '@restackio/restack-sdk-ts@0.0.60': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 From 09ac0eb00b1c7b7a77913bb8b831f3bb6e9d1d50 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 22 Sep 2024 18:08:56 +0200 Subject: [PATCH 064/122] bump 0.61 Former-commit-id: c920bda122bd104613a2059392a94fbb625576e1 Former-commit-id: 46a3192a144a93e2330852405c8a6aa9cf5c0928 --- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 10 +++++----- examples/hello/src/client.ts | 10 +++++----- examples/posthog/package.json | 2 +- examples/posthog/pnpm-lock.yaml | 10 +++++----- examples/posthog/src/client.ts | 10 +++++----- examples/voice/package.json | 2 +- examples/voice/pnpm-lock.yaml | 10 +++++----- examples/voice/src/client.ts | 10 +++++----- 9 files changed, 33 insertions(+), 33 deletions(-) diff --git a/examples/hello/package.json b/examples/hello/package.json index 67c9b80..8191e8f 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "@restackio/integrations-openai": "^0.0.22", - "@restackio/restack-sdk-ts": "^0.0.60", + "@restackio/restack-sdk-ts": "^0.0.61", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", "zod": "^3.23.8", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 0955770..77e41ad 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.60 - version: 0.0.60 + specifier: ^0.0.61 + version: 0.0.61 '@temporalio/workflow': specifier: ^1.11.1 version: 1.11.1 @@ -175,8 +175,8 @@ packages: resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.60': - resolution: {integrity: sha512-TliaoZ6Lh4C15/8tkIrcBuPwc1kjz94Zq9gi84xuuNNYb8tDYGlNL2UlsXa2FRKeac7anYpt0eh1P+ryphikjA==} + '@restackio/restack-sdk-ts@0.0.61': + resolution: {integrity: sha512-rMWHad+hHi/+cEevfZbntB71ka4lIQLedlPjO35ldjoewSa/L6CQGyudpmI39M8aRLUgLidHmAjzpZNWyCDGMQ==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1319,7 +1319,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-ts@0.0.60': + '@restackio/restack-sdk-ts@0.0.61': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/hello/src/client.ts b/examples/hello/src/client.ts index 720402d..ccdebe2 100644 --- a/examples/hello/src/client.ts +++ b/examples/hello/src/client.ts @@ -3,12 +3,12 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - stackId: process.env.RESTACK_STACK_ID!, - apiKey: process.env.RESTACK_API_KEY!, - address: process.env.RESTACK_API_ADDRESS!, - temporalNamespace: process.env.RESTACK_TEMPORAL_NAMESPACE!, + envId: process.env.RESTACK_ENGINE_ENV_ID!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, + address: process.env.RESTACK_ENGINE_API_ADDRESS!, + temporalNamespace: process.env.RESTACK_ENGINE_TEMPORAL_NAMESPACE!, }; export const client = new Restack( - process.env.RESTACK_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined ); diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 4cead49..5e78173 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -18,7 +18,7 @@ "@restackio/integrations-linear": "^0.0.2", "@restackio/integrations-openai": "^0.0.22", - "@restackio/restack-sdk-ts": "^0.0.60", + "@restackio/restack-sdk-ts": "^0.0.61", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", "typescript": "^5.6.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index 26a05a1..465a030 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.60 - version: 0.0.60 + specifier: ^0.0.61 + version: 0.0.61 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -170,8 +170,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.60': - resolution: {integrity: sha512-TliaoZ6Lh4C15/8tkIrcBuPwc1kjz94Zq9gi84xuuNNYb8tDYGlNL2UlsXa2FRKeac7anYpt0eh1P+ryphikjA==} + '@restackio/restack-sdk-ts@0.0.61': + resolution: {integrity: sha512-rMWHad+hHi/+cEevfZbntB71ka4lIQLedlPjO35ldjoewSa/L6CQGyudpmI39M8aRLUgLidHmAjzpZNWyCDGMQ==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1324,7 +1324,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.60': + '@restackio/restack-sdk-ts@0.0.61': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/posthog/src/client.ts b/examples/posthog/src/client.ts index 720402d..ccdebe2 100644 --- a/examples/posthog/src/client.ts +++ b/examples/posthog/src/client.ts @@ -3,12 +3,12 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - stackId: process.env.RESTACK_STACK_ID!, - apiKey: process.env.RESTACK_API_KEY!, - address: process.env.RESTACK_API_ADDRESS!, - temporalNamespace: process.env.RESTACK_TEMPORAL_NAMESPACE!, + envId: process.env.RESTACK_ENGINE_ENV_ID!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, + address: process.env.RESTACK_ENGINE_API_ADDRESS!, + temporalNamespace: process.env.RESTACK_ENGINE_TEMPORAL_NAMESPACE!, }; export const client = new Restack( - process.env.RESTACK_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined ); diff --git a/examples/voice/package.json b/examples/voice/package.json index 0715a4e..a9645f7 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -22,7 +22,7 @@ "@restackio/integrations-openai": "^0.0.22", "@restackio/integrations-twilio": "^0.0.4", "@restackio/integrations-websocket": "^0.0.11", - "@restackio/restack-sdk-ts": "^0.0.60", + "@restackio/restack-sdk-ts": "^0.0.61", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index b12b6c0..d9084c4 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: ^0.0.11 version: 0.0.11(bufferutil@4.0.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.60 - version: 0.0.60 + specifier: ^0.0.61 + version: 0.0.61 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -209,8 +209,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.60': - resolution: {integrity: sha512-TliaoZ6Lh4C15/8tkIrcBuPwc1kjz94Zq9gi84xuuNNYb8tDYGlNL2UlsXa2FRKeac7anYpt0eh1P+ryphikjA==} + '@restackio/restack-sdk-ts@0.0.61': + resolution: {integrity: sha512-rMWHad+hHi/+cEevfZbntB71ka4lIQLedlPjO35ldjoewSa/L6CQGyudpmI39M8aRLUgLidHmAjzpZNWyCDGMQ==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1695,7 +1695,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.60': + '@restackio/restack-sdk-ts@0.0.61': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/voice/src/client.ts b/examples/voice/src/client.ts index 720402d..ccdebe2 100644 --- a/examples/voice/src/client.ts +++ b/examples/voice/src/client.ts @@ -3,12 +3,12 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - stackId: process.env.RESTACK_STACK_ID!, - apiKey: process.env.RESTACK_API_KEY!, - address: process.env.RESTACK_API_ADDRESS!, - temporalNamespace: process.env.RESTACK_TEMPORAL_NAMESPACE!, + envId: process.env.RESTACK_ENGINE_ENV_ID!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, + address: process.env.RESTACK_ENGINE_API_ADDRESS!, + temporalNamespace: process.env.RESTACK_ENGINE_TEMPORAL_NAMESPACE!, }; export const client = new Restack( - process.env.RESTACK_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined ); From d95a977c4913dec10859e50e6754360ddfa787ae Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 25 Sep 2024 11:07:29 +0200 Subject: [PATCH 065/122] cloud engine Former-commit-id: b7a8ee8943ddad454d7d3db4a5150c5375c6a2ca Former-commit-id: 342a757713b86f989b621283dc001316e83e5ef5 --- docker-compose.yaml | 6 +++--- examples/hello/.env.example | 10 +++++++++- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 10 +++++----- examples/hello/restack_up.mjs | 15 +++++++-------- examples/hello/src/client.ts | 7 +++---- examples/posthog/.env.example | 10 +++++++++- examples/posthog/package.json | 3 +-- examples/posthog/pnpm-lock.yaml | 10 +++++----- examples/posthog/restack_up.mjs | 14 +++++++------- examples/posthog/src/client.ts | 7 +++---- examples/voice/.env.example | 7 +++++++ examples/voice/package.json | 2 +- examples/voice/pnpm-lock.yaml | 10 +++++----- examples/voice/restack_up.mjs | 22 +++++++++++----------- examples/voice/src/client.ts | 7 +++---- 16 files changed, 80 insertions(+), 62 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 4bfbdf1..32aa00b 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,8 +1,8 @@ +name: restack-engine services: - app: - container_name: restack-engine + studio: image: ghcr.io/restackio/local-operator:main ports: - "5233:5233" - "6233:6233" - - "7233:7233" \ No newline at end of file + - "7233:7233" diff --git a/examples/hello/.env.example b/examples/hello/.env.example index 9847a1d..908cfe9 100644 --- a/examples/hello/.env.example +++ b/examples/hello/.env.example @@ -1 +1,9 @@ -OPENAI_API_KEY= \ No newline at end of file +OPENAI_API_KEY= + +# Restack + +RESTACK_ENGINE_ENV_ID= +RESTACK_ENGINE_ENV_ADDRESS= +RESTACK_ENGINE_ENV_API_KEY= + +RESTACK_CLOUD_TOKEN= \ No newline at end of file diff --git a/examples/hello/package.json b/examples/hello/package.json index 8191e8f..d76a726 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "@restackio/integrations-openai": "^0.0.22", - "@restackio/restack-sdk-ts": "^0.0.61", + "@restackio/restack-sdk-ts": "^0.0.63", "@temporalio/workflow": "^1.11.1", "dotenv": "^16.4.5", "zod": "^3.23.8", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index 77e41ad..d3a11b0 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.61 - version: 0.0.61 + specifier: ^0.0.63 + version: 0.0.63 '@temporalio/workflow': specifier: ^1.11.1 version: 1.11.1 @@ -175,8 +175,8 @@ packages: resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.61': - resolution: {integrity: sha512-rMWHad+hHi/+cEevfZbntB71ka4lIQLedlPjO35ldjoewSa/L6CQGyudpmI39M8aRLUgLidHmAjzpZNWyCDGMQ==} + '@restackio/restack-sdk-ts@0.0.63': + resolution: {integrity: sha512-62m/jJVwCiFdU0CadhrjnoKBaQtg71dX6r8CpUUcrRKzH5oTK2eSuPdrYNX8XV52h2fw4XSh8Ahz3M02LupiWQ==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -1319,7 +1319,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-ts@0.0.61': + '@restackio/restack-sdk-ts@0.0.63': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/hello/restack_up.mjs b/examples/hello/restack_up.mjs index f9c5ad4..f796cbf 100644 --- a/examples/hello/restack_up.mjs +++ b/examples/hello/restack_up.mjs @@ -1,7 +1,7 @@ import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; const main = async () => { - const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); + const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); const servicesApp = { name: "services", @@ -13,21 +13,20 @@ const main = async () => { value: process.env.OPENAI_API_KEY, }, { - name: "RESTACK_API_KEY", - value: process.env.RESTACK_API_KEY, + name: "RESTACK_ENGINE_ENV_ID", + value: process.env.RESTACK_ENGINE_ENV_ID, }, { - name: "RESTACK_API_ADDRESS", - value: process.env.RESTACK_API_ADDRESS, + name: "RESTACK_ENGINE_ENV_ADDRESS", + value: process.env.RESTACK_ENGINE_ENV_ADDRESS, }, { - name: "RESTACK_TEMPORAL_NAMESPACE", - value: process.env.RESTACK_TEMPORAL_NAMESPACE, + name: "RESTACK_ENGINE_ENV_API_KEY", + value: process.env.RESTACK_ENGINE_ENV_API_KEY, }, ], }; - await restackCloudClient.stack({ name: "development environment", previewEnabled: false, diff --git a/examples/hello/src/client.ts b/examples/hello/src/client.ts index ccdebe2..79cf2b7 100644 --- a/examples/hello/src/client.ts +++ b/examples/hello/src/client.ts @@ -4,11 +4,10 @@ import "dotenv/config"; export const connectionOptions = { envId: process.env.RESTACK_ENGINE_ENV_ID!, - apiKey: process.env.RESTACK_ENGINE_API_KEY!, - address: process.env.RESTACK_ENGINE_API_ADDRESS!, - temporalNamespace: process.env.RESTACK_ENGINE_TEMPORAL_NAMESPACE!, + address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, }; export const client = new Restack( - process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined ); diff --git a/examples/posthog/.env.example b/examples/posthog/.env.example index d0b4c05..580ed92 100644 --- a/examples/posthog/.env.example +++ b/examples/posthog/.env.example @@ -1,4 +1,12 @@ POSTHOG_API_KEY= POSTHOG_PROJECT_ID= POSTHOG_HOST=https://us.posthog.com -OPENAI_API_KEY= \ No newline at end of file +OPENAI_API_KEY= + +# Restack + +RESTACK_ENGINE_ENV_ID= +RESTACK_ENGINE_ENV_ADDRESS= +RESTACK_ENGINE_ENV_API_KEY= + +RESTACK_CLOUD_TOKEN= \ No newline at end of file diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 5e78173..45a35c4 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -17,8 +17,7 @@ "dependencies": { "@restackio/integrations-linear": "^0.0.2", "@restackio/integrations-openai": "^0.0.22", - - "@restackio/restack-sdk-ts": "^0.0.61", + "@restackio/restack-sdk-ts": "^0.0.63", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", "typescript": "^5.6.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index 465a030..fca7bd7 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.61 - version: 0.0.61 + specifier: ^0.0.62 + version: 0.0.62 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -170,8 +170,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.61': - resolution: {integrity: sha512-rMWHad+hHi/+cEevfZbntB71ka4lIQLedlPjO35ldjoewSa/L6CQGyudpmI39M8aRLUgLidHmAjzpZNWyCDGMQ==} + '@restackio/restack-sdk-ts@0.0.62': + resolution: {integrity: sha512-TcReBr6Eg99kqo4HU5/W38Fd1pfspENuhhOZfNJ0nBClflYFnraut4Hy3Z1Pad1HnDufjLqd2l5aK2yYNruBxg==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1324,7 +1324,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.61': + '@restackio/restack-sdk-ts@0.0.62': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/posthog/restack_up.mjs b/examples/posthog/restack_up.mjs index b8cae18..0137885 100644 --- a/examples/posthog/restack_up.mjs +++ b/examples/posthog/restack_up.mjs @@ -2,21 +2,21 @@ import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; import "dotenv/config"; const main = async () => { - const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); + const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); const restackEngineEnvs = [ { - name: "RESTACK_API_KEY", - value: process.env.RESTACK_API_KEY, + name: "RESTACK_ENGINE_ENV_ID", + value: process.env.RESTACK_ENGINE_ENV_ID, }, { - name: "RESTACK_API_ADDRESS", - value: process.env.RESTACK_API_ADDRESS, + name: "RESTACK_ENGINE_ENV_ADDRESS", + value: process.env.RESTACK_ENGINE_ENV_ADDRESS, }, { - name: "RESTACK_TEMPORAL_NAMESPACE", - value: process.env.RESTACK_TEMPORAL_NAMESPACE, + name: "RESTACK_ENGINE_ENV_API_KEY", + value: process.env.RESTACK_ENGINE_ENV_API_KEY, }, ]; diff --git a/examples/posthog/src/client.ts b/examples/posthog/src/client.ts index ccdebe2..79cf2b7 100644 --- a/examples/posthog/src/client.ts +++ b/examples/posthog/src/client.ts @@ -4,11 +4,10 @@ import "dotenv/config"; export const connectionOptions = { envId: process.env.RESTACK_ENGINE_ENV_ID!, - apiKey: process.env.RESTACK_ENGINE_API_KEY!, - address: process.env.RESTACK_ENGINE_API_ADDRESS!, - temporalNamespace: process.env.RESTACK_ENGINE_TEMPORAL_NAMESPACE!, + address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, }; export const client = new Restack( - process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined ); diff --git a/examples/voice/.env.example b/examples/voice/.env.example index a9cc6a9..13aabcf 100644 --- a/examples/voice/.env.example +++ b/examples/voice/.env.example @@ -13,3 +13,10 @@ YOUR_NUMBER= # Ngrok SERVER_HOST=5756-5-61-150-161.ngrok-free.app + +# Restack +RESTACK_ENGINE_ENV_ID= +RESTACK_ENGINE_ENV_ADDRESS= +RESTACK_ENGINE_ENV_API_KEY= + +RESTACK_CLOUD_TOKEN= diff --git a/examples/voice/package.json b/examples/voice/package.json index a9645f7..571e9ce 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -22,7 +22,7 @@ "@restackio/integrations-openai": "^0.0.22", "@restackio/integrations-twilio": "^0.0.4", "@restackio/integrations-websocket": "^0.0.11", - "@restackio/restack-sdk-ts": "^0.0.61", + "@restackio/restack-sdk-ts": "^0.0.63", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index d9084c4..915674b 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: ^0.0.11 version: 0.0.11(bufferutil@4.0.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.61 - version: 0.0.61 + specifier: ^0.0.63 + version: 0.0.63 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -209,8 +209,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.61': - resolution: {integrity: sha512-rMWHad+hHi/+cEevfZbntB71ka4lIQLedlPjO35ldjoewSa/L6CQGyudpmI39M8aRLUgLidHmAjzpZNWyCDGMQ==} + '@restackio/restack-sdk-ts@0.0.63': + resolution: {integrity: sha512-62m/jJVwCiFdU0CadhrjnoKBaQtg71dX6r8CpUUcrRKzH5oTK2eSuPdrYNX8XV52h2fw4XSh8Ahz3M02LupiWQ==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1695,7 +1695,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.61': + '@restackio/restack-sdk-ts@0.0.63': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/voice/restack_up.mjs b/examples/voice/restack_up.mjs index e56ad04..4f8f341 100644 --- a/examples/voice/restack_up.mjs +++ b/examples/voice/restack_up.mjs @@ -2,24 +2,24 @@ import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; import "dotenv/config"; const main = async () => { - const restackCloudClient = new RestackCloud(process.env.RESTACK_SDK_TOKEN); + const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); const serverName = "server" - const commonEnvs = [ + const restackEngineEnvs = [ { - name: "RESTACK_API_KEY", - value: process.env.RESTACK_API_KEY, + name: "RESTACK_ENGINE_ENV_ID", + value: process.env.RESTACK_ENGINE_ENV_ID, }, { - name: "RESTACK_API_ADDRESS", - value: process.env.RESTACK_API_ADDRESS, + name: "RESTACK_ENGINE_ENV_ADDRESS", + value: process.env.RESTACK_ENGINE_ENV_ADDRESS, }, { - name: "RESTACK_TEMPORAL_NAMESPACE", - value: process.env.RESTACK_TEMPORAL_NAMESPACE, + name: "RESTACK_ENGINE_ENV_API_KEY", + value: process.env.RESTACK_ENGINE_ENV_API_KEY, }, - ] + ]; const serverApp = { name: serverName, @@ -34,7 +34,7 @@ const main = async () => { name: "SERVER_HOST", linkTo:serverName, }, - ...commonEnvs + ...restackEngineEnvs ], }; @@ -75,7 +75,7 @@ const main = async () => { name: "TWILIO_AUTH_TOKEN", value: process.env.TWILIO_AUTH_TOKEN, }, - ...commonEnvs + ...restackEngineEnvs ], }; diff --git a/examples/voice/src/client.ts b/examples/voice/src/client.ts index ccdebe2..79cf2b7 100644 --- a/examples/voice/src/client.ts +++ b/examples/voice/src/client.ts @@ -4,11 +4,10 @@ import "dotenv/config"; export const connectionOptions = { envId: process.env.RESTACK_ENGINE_ENV_ID!, - apiKey: process.env.RESTACK_ENGINE_API_KEY!, - address: process.env.RESTACK_ENGINE_API_ADDRESS!, - temporalNamespace: process.env.RESTACK_ENGINE_TEMPORAL_NAMESPACE!, + address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, }; export const client = new Restack( - process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined ); From de45abb443bee1fcf0de615a1527f347de9be50e Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Wed, 25 Sep 2024 17:37:34 +0200 Subject: [PATCH 066/122] nextjs example integration Former-commit-id: ce59c3e6553952fa7b3b9297c767f1172f61817e Former-commit-id: f8c2948487ea49bd862ec9c5020b0e9ef2d143e9 --- examples/hello/restack_up.mjs | 28 +- examples/hello/scheduleWorkflow.ts | 14 +- examples/nextjs/.eslintrc.json | 3 + examples/nextjs/.gitignore | 36 + examples/nextjs/Dockerfile | 25 + examples/nextjs/README.md | 36 + examples/nextjs/next.config.mjs | 7 + examples/nextjs/package.json | 27 + examples/nextjs/pnpm-lock.yaml | 4325 +++++++++++++++++ examples/nextjs/postcss.config.mjs | 8 + examples/nextjs/restack_up.mjs | 39 + examples/nextjs/src/app/actions/trigger.ts | 37 + .../nextjs/src/app/components/Examples.tsx | 52 + .../src/app/components/examplesList.tsx | 17 + examples/nextjs/src/app/favicon.ico | Bin 0 -> 25931 bytes .../nextjs/src/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes examples/nextjs/src/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes examples/nextjs/src/app/globals.css | 27 + examples/nextjs/src/app/layout.tsx | 35 + examples/nextjs/src/app/page.tsx | 82 + examples/nextjs/tailwind.config.ts | 19 + examples/nextjs/tsconfig.json | 26 + 22 files changed, 4826 insertions(+), 17 deletions(-) create mode 100644 examples/nextjs/.eslintrc.json create mode 100644 examples/nextjs/.gitignore create mode 100644 examples/nextjs/Dockerfile create mode 100644 examples/nextjs/README.md create mode 100644 examples/nextjs/next.config.mjs create mode 100644 examples/nextjs/package.json create mode 100644 examples/nextjs/pnpm-lock.yaml create mode 100644 examples/nextjs/postcss.config.mjs create mode 100644 examples/nextjs/restack_up.mjs create mode 100644 examples/nextjs/src/app/actions/trigger.ts create mode 100644 examples/nextjs/src/app/components/Examples.tsx create mode 100644 examples/nextjs/src/app/components/examplesList.tsx create mode 100644 examples/nextjs/src/app/favicon.ico create mode 100644 examples/nextjs/src/app/fonts/GeistMonoVF.woff create mode 100644 examples/nextjs/src/app/fonts/GeistVF.woff create mode 100644 examples/nextjs/src/app/globals.css create mode 100644 examples/nextjs/src/app/layout.tsx create mode 100644 examples/nextjs/src/app/page.tsx create mode 100644 examples/nextjs/tailwind.config.ts create mode 100644 examples/nextjs/tsconfig.json diff --git a/examples/hello/restack_up.mjs b/examples/hello/restack_up.mjs index f796cbf..ed7b777 100644 --- a/examples/hello/restack_up.mjs +++ b/examples/hello/restack_up.mjs @@ -3,6 +3,21 @@ import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; const main = async () => { const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); + const restackEngineEnvs = [ + { + name: "RESTACK_ENGINE_ENV_ID", + value: process.env.RESTACK_ENGINE_ENV_ID, + }, + { + name: "RESTACK_ENGINE_ENV_ADDRESS", + value: process.env.RESTACK_ENGINE_ENV_ADDRESS, + }, + { + name: "RESTACK_ENGINE_ENV_API_KEY", + value: process.env.RESTACK_ENGINE_ENV_API_KEY, + }, + ]; + const servicesApp = { name: "services", dockerFilePath: "examples/hello/Dockerfile", @@ -12,18 +27,7 @@ const main = async () => { name: "OPENAI_API_KEY", value: process.env.OPENAI_API_KEY, }, - { - name: "RESTACK_ENGINE_ENV_ID", - value: process.env.RESTACK_ENGINE_ENV_ID, - }, - { - name: "RESTACK_ENGINE_ENV_ADDRESS", - value: process.env.RESTACK_ENGINE_ENV_ADDRESS, - }, - { - name: "RESTACK_ENGINE_ENV_API_KEY", - value: process.env.RESTACK_ENGINE_ENV_API_KEY, - }, + ...restackEngineEnvs, ], }; diff --git a/examples/hello/scheduleWorkflow.ts b/examples/hello/scheduleWorkflow.ts index 41ce8cf..085e08f 100644 --- a/examples/hello/scheduleWorkflow.ts +++ b/examples/hello/scheduleWorkflow.ts @@ -1,14 +1,16 @@ import { client } from "./src/client"; -async function scheduleWorkflow() { +export type InputSchedule = { + name: string; +}; + +async function scheduleWorkflow(input: InputSchedule) { try { const workflowId = `${Date.now()}-helloWorkflow`; const runId = await client.scheduleWorkflow({ workflowName: "helloWorkflow", workflowId, - input: { - name: "test", - }, + input, }); const result = await client.getWorkflowResult({ workflowId, runId }); @@ -22,4 +24,6 @@ async function scheduleWorkflow() { } } -scheduleWorkflow(); +scheduleWorkflow({ + name: "test", +}); diff --git a/examples/nextjs/.eslintrc.json b/examples/nextjs/.eslintrc.json new file mode 100644 index 0000000..3722418 --- /dev/null +++ b/examples/nextjs/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "next/typescript"] +} diff --git a/examples/nextjs/.gitignore b/examples/nextjs/.gitignore new file mode 100644 index 0000000..fd3dbb5 --- /dev/null +++ b/examples/nextjs/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/examples/nextjs/Dockerfile b/examples/nextjs/Dockerfile new file mode 100644 index 0000000..f7e82bd --- /dev/null +++ b/examples/nextjs/Dockerfile @@ -0,0 +1,25 @@ +# Use the official Node.js LTS image as the base image +FROM node:lts-alpine + +# Set the working directory +WORKDIR /app + +# Copy package.json and package-lock.json +COPY package*.json ./ + +# Install dependencies +RUN npm install + +# Copy the rest of the application code +COPY . . + +ARG NEXT_PUBLIC_API_HOSTNAME +ENV NEXT_PUBLIC_API_HOSTNAME=${NEXT_PUBLIC_API_HOSTNAME} + +RUN npm run build + +# Expose the port the app runs on +EXPOSE 80 + +# Start the application +CMD ["npm", "start"] \ No newline at end of file diff --git a/examples/nextjs/README.md b/examples/nextjs/README.md new file mode 100644 index 0000000..e215bc4 --- /dev/null +++ b/examples/nextjs/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/examples/nextjs/next.config.mjs b/examples/nextjs/next.config.mjs new file mode 100644 index 0000000..2b8bb87 --- /dev/null +++ b/examples/nextjs/next.config.mjs @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + serverComponentsExternalPackages: ['@restackio/restack-sdk-ts'], + }, +} +export default nextConfig; diff --git a/examples/nextjs/package.json b/examples/nextjs/package.json new file mode 100644 index 0000000..f0b4540 --- /dev/null +++ b/examples/nextjs/package.json @@ -0,0 +1,27 @@ +{ + "name": "nextjs", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@restackio/restack-sdk-ts": "^0.0.63", + "next": "14.2.13", + "react": "^18", + "react-dom": "^18" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.13", + "postcss": "^8", + "tailwindcss": "^3.4.1", + "typescript": "^5" + } +} diff --git a/examples/nextjs/pnpm-lock.yaml b/examples/nextjs/pnpm-lock.yaml new file mode 100644 index 0000000..720d09b --- /dev/null +++ b/examples/nextjs/pnpm-lock.yaml @@ -0,0 +1,4325 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@restackio/restack-sdk-ts': + specifier: ^0.0.63 + version: 0.0.63(@swc/helpers@0.5.11) + next: + specifier: 14.2.13 + version: 14.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18 + version: 18.3.1 + react-dom: + specifier: ^18 + version: 18.3.1(react@18.3.1) + devDependencies: + '@types/node': + specifier: ^20 + version: 20.16.7 + '@types/react': + specifier: ^18 + version: 18.3.9 + '@types/react-dom': + specifier: ^18 + version: 18.3.0 + eslint: + specifier: ^8 + version: 8.57.1 + eslint-config-next: + specifier: 14.2.13 + version: 14.2.13(eslint@8.57.1)(typescript@5.6.2) + postcss: + specifier: ^8 + version: 8.4.47 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.13 + typescript: + specifier: ^5 + version: 5.6.2 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@grpc/grpc-js@1.11.3': + resolution: {integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.3.0': + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@next/env@14.2.13': + resolution: {integrity: sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==} + + '@next/eslint-plugin-next@14.2.13': + resolution: {integrity: sha512-z8Mk0VljxhIzsSiZUSdt3wp+t2lKd+jk5a9Jsvh3zDGkItgDMfjv/ZbET6HsxEl/fSihVoHGsXV6VLyDH0lfTQ==} + + '@next/swc-darwin-arm64@14.2.13': + resolution: {integrity: sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.2.13': + resolution: {integrity: sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.2.13': + resolution: {integrity: sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.2.13': + resolution: {integrity: sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.2.13': + resolution: {integrity: sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.2.13': + resolution: {integrity: sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.2.13': + resolution: {integrity: sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.2.13': + resolution: {integrity: sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.2.13': + resolution: {integrity: sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@restackio/restack-sdk-ts@0.0.63': + resolution: {integrity: sha512-62m/jJVwCiFdU0CadhrjnoKBaQtg71dX6r8CpUUcrRKzH5oTK2eSuPdrYNX8XV52h2fw4XSh8Ahz3M02LupiWQ==} + engines: {node: '>=20'} + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@swc/core-darwin-arm64@1.7.28': + resolution: {integrity: sha512-BNkj6enHo2pdzOpCtQGKZbXT2A/qWIr0CVtbTM4WkJ3MCK/glbFsyO6X59p1r8+gfaZG4bWYnTTu+RuUAcsL5g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.28': + resolution: {integrity: sha512-96zQ+X5Fd6P/RNPkOyikTJgEc2M4TzznfYvjRd2hye5h22jhxCLL/csoauDgN7lYfd7mwsZ/sVXwJTMKl+vZSA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.28': + resolution: {integrity: sha512-l2100Wx6LdXMOmOW3+KoHhBhyZrGdz8ylkygcVOC0QHp6YIATfuG+rRHksfyEWCSOdL3anM9MJZJX26KT/s+XQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.28': + resolution: {integrity: sha512-03m6iQ5Bv9u2VPnNRyaBmE8eHi056eE39L0gXcqGoo46GAGuoqYHt9pDz8wS6EgoN4t85iBMUZrkCNqFKkN6ZQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.28': + resolution: {integrity: sha512-vqVOpG/jc8mvTKQjaPBLhr7tnWyzuztOHsPnJqMWmg7zGcMeQC/2c5pU4uzRAfXMTp25iId6s4Y4wWfPS1EeDw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.28': + resolution: {integrity: sha512-HGwpWuB83Kr+V0E+zT5UwIIY9OxiS8aLd0UVMRVWuO8SrQyKm9HKJ46+zoAb8tfJrpZftfxvbn2ayZWR7gqosA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.28': + resolution: {integrity: sha512-q2Y2T8y8EgFtIiRyInnAXNe94aaHX74F0ha1Bl9VdRxE0u1/So+3VLbPvtp4V3Z6pj5pOePfCQJKifnllgAQ9A==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.28': + resolution: {integrity: sha512-bCqh4uBT/59h3dWK1v91In6qzz8rKoWoFRxCtNQLIK4jP55K0U231ZK9oN7neZD6bzcOUeFvOGgcyMAgDfFWfA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.28': + resolution: {integrity: sha512-XTHbHrksnrqK3JSJ2sbuMWvdJ6/G0roRpgyVTmNDfhTYPOwcVaL/mSrPGLwbksYUbq7ckwoKzrobhdxvQzPsDA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.28': + resolution: {integrity: sha512-jyXeoq6nX8abiCy2EpporsC5ywNENs4ocYuvxo1LSxDktWN1E2MTXq3cdJcEWB2Vydxq0rDcsGyzkRPMzFhkZw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.28': + resolution: {integrity: sha512-XapcMgsOS0cKh01AFEj+qXOk6KM4NZhp7a5vPicdhkRR8RzvjrCa7DTtijMxfotU8bqaEHguxmiIag2HUlT8QQ==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.11': + resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} + + '@swc/helpers@0.5.5': + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + + '@temporalio/activity@1.11.1': + resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} + + '@temporalio/client@1.11.1': + resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} + + '@temporalio/common@1.11.1': + resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} + + '@temporalio/core-bridge@1.11.1': + resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} + + '@temporalio/proto@1.11.1': + resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} + + '@temporalio/worker@1.11.1': + resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} + engines: {node: '>= 16.0.0'} + + '@temporalio/workflow@1.11.1': + resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/node@20.16.7': + resolution: {integrity: sha512-QkDQjAY3gkvJNcZOWwzy3BN34RweT0OQ9zJyvLCU0kSK22dO2QYh/NHGfbEAYylPYzRB1/iXcojS79wOg5gFSw==} + + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} + + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + + '@types/react@18.3.9': + resolution: {integrity: sha512-+BpAVyTpJkNWWSSnaLBk6ePpHLOGJKnEQNbINNovPWzvEUyAe3e+/d494QdEh71RekM/qV7lw6jzf1HGrJyAtQ==} + + '@typescript-eslint/eslint-plugin@8.7.0': + resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.7.0': + resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@8.7.0': + resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.7.0': + resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.7.0': + resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.7.0': + resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.7.0': + resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.7.0': + resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.0: + resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} + engines: {node: '>=4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001663: + resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} + + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + hasBin: true + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.28: + resolution: {integrity: sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + + es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-next@14.2.13: + resolution: {integrity: sha512-aro1EKAoyYchnO/3Tlo91hnNBO7QO7qnv/79MAFC+4Jq8TdUVKQlht5d2F+YjrePjdpOvfL+mV9JPfyYNwkk1g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.3: + resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.11.1: + resolution: {integrity: sha512-EwcbfLOhwVMAfatfqLecR2yv3dE5+kQ8kx+Rrt0DvDXEVwW86KQ/xbMDQhtp5l42VXukD5SOF8mQQHbaNtO0CQ==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.30.0: + resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.0: + resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.36.1: + resolution: {integrity: sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + engines: {node: '>=10.0.0'} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-bun-module@1.2.1: + resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + memfs@4.12.0: + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} + engines: {node: '>= 4.0.0'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + ms@3.0.0-canary.1: + resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} + engines: {node: '>=12.13'} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + next@14.2.13: + resolution: {integrity: sha512-BseY9YNw8QJSwLYD7hlZzl6QVDoSFHL/URN5K64kVEVpCsSOWeyjbIGK+dZUaRViHTaMQX8aqmnn0PHBbGZezg==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-loader@4.0.2: + resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + tailwindcss@3.4.13: + resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.33.0: + resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} + engines: {node: '>=10'} + hasBin: true + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unionfs@4.5.4: + resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.1': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@grpc/grpc-js@1.11.3': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 + + '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@next/env@14.2.13': {} + + '@next/eslint-plugin-next@14.2.13': + dependencies: + glob: 10.3.10 + + '@next/swc-darwin-arm64@14.2.13': + optional: true + + '@next/swc-darwin-x64@14.2.13': + optional: true + + '@next/swc-linux-arm64-gnu@14.2.13': + optional: true + + '@next/swc-linux-arm64-musl@14.2.13': + optional: true + + '@next/swc-linux-x64-gnu@14.2.13': + optional: true + + '@next/swc-linux-x64-musl@14.2.13': + optional: true + + '@next/swc-win32-arm64-msvc@14.2.13': + optional: true + + '@next/swc-win32-ia32-msvc@14.2.13': + optional: true + + '@next/swc-win32-x64-msvc@14.2.13': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@restackio/restack-sdk-ts@0.0.63(@swc/helpers@0.5.11)': + dependencies: + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1(@swc/helpers@0.5.11) + '@temporalio/workflow': 1.11.1 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.10.4': {} + + '@swc/core-darwin-arm64@1.7.28': + optional: true + + '@swc/core-darwin-x64@1.7.28': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.28': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.28': + optional: true + + '@swc/core-linux-arm64-musl@1.7.28': + optional: true + + '@swc/core-linux-x64-gnu@1.7.28': + optional: true + + '@swc/core-linux-x64-musl@1.7.28': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.28': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.28': + optional: true + + '@swc/core-win32-x64-msvc@1.7.28': + optional: true + + '@swc/core@1.7.28(@swc/helpers@0.5.11)': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.28 + '@swc/core-darwin-x64': 1.7.28 + '@swc/core-linux-arm-gnueabihf': 1.7.28 + '@swc/core-linux-arm64-gnu': 1.7.28 + '@swc/core-linux-arm64-musl': 1.7.28 + '@swc/core-linux-x64-gnu': 1.7.28 + '@swc/core-linux-x64-musl': 1.7.28 + '@swc/core-win32-arm64-msvc': 1.7.28 + '@swc/core-win32-ia32-msvc': 1.7.28 + '@swc/core-win32-x64-msvc': 1.7.28 + '@swc/helpers': 0.5.11 + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.11': + dependencies: + tslib: 2.7.0 + optional: true + + '@swc/helpers@0.5.5': + dependencies: + '@swc/counter': 0.1.3 + tslib: 2.7.0 + + '@swc/types@0.1.12': + dependencies: + '@swc/counter': 0.1.3 + + '@temporalio/activity@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + abort-controller: 3.0.0 + + '@temporalio/client@1.11.1': + dependencies: + '@grpc/grpc-js': 1.11.3 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/common@1.11.1': + dependencies: + '@temporalio/proto': 1.11.1 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/proto@1.11.1': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/worker@1.11.1(@swc/helpers@0.5.11)': + dependencies: + '@swc/core': 1.7.28(@swc/helpers@0.5.11) + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/common': 1.11.1 + '@temporalio/core-bridge': 1.11.1 + '@temporalio/proto': 1.11.1 + '@temporalio/workflow': 1.11.1 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.12.0 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))) + unionfs: 4.5.4 + webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/workflow@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/node@20.16.7': + dependencies: + undici-types: 6.19.8 + + '@types/prop-types@15.7.13': {} + + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 18.3.9 + + '@types/react@18.3.9': + dependencies: + '@types/prop-types': 15.7.13 + csstype: 3.1.3 + + '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': + dependencies: + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/type-utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.7.0 + debug: 4.3.7 + eslint: 8.57.1 + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.7.0': + dependencies: + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 + + '@typescript-eslint/type-utils@8.7.0(eslint@8.57.1)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.7.0': {} + + '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.2)': + dependencies: + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/visitor-keys': 8.7.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.7.0(eslint@8.57.1)(typescript@5.6.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.7.0 + '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + eslint: 8.57.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.7.0': + dependencies: + '@typescript-eslint/types': 8.7.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + argparse@2.0.1: {} + + aria-query@5.1.3: + dependencies: + deep-equal: 2.2.3 + + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + ast-types-flow@0.0.8: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.10.0: {} + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001663 + electron-to-chromium: 1.5.28 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.24.0) + + buffer-from@1.1.2: {} + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001663: {} + + cargo-cp-artifact@0.1.9: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrome-trace-event@1.0.4: {} + + client-only@0.0.1: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@2.20.3: {} + + commander@4.1.1: {} + + concat-map@0.0.1: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + didyoumean@1.2.2: {} + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.28: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + + es-iterator-helpers@1.0.19: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + + es-module-lexer@1.5.4: {} + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-next@14.2.13(eslint@8.57.1)(typescript@5.6.2): + dependencies: + '@next/eslint-plugin-next': 14.2.13 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) + eslint-plugin-react: 7.36.1(eslint@8.57.1) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.15.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.3.7 + enhanced-resolve: 5.17.1 + eslint: 8.57.1 + eslint-module-utils: 2.11.1(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) + fast-glob: 3.3.2 + get-tsconfig: 4.8.1 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-module-utils@2.11.1(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.11.1(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) + hasown: 2.0.2 + is-core-module: 2.15.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1): + dependencies: + aria-query: 5.1.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.10.0 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.19 + eslint: 8.57.1 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 + + eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react@7.36.1(eslint@8.57.1): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.19 + eslint: 8.57.1 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/regexpp': 4.11.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 3.4.3 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fs-monkey@1.0.6: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + + functions-have-names@1.2.3: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@10.3.10: + dependencies: + foreground-child: 3.3.0 + jackspeak: 2.3.6 + minimatch: 9.0.5 + minipass: 7.1.2 + path-scurry: 1.11.1 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-bigints@1.0.2: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + heap-js@2.5.0: {} + + hyperdyperid@1.2.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-bun-module@1.2.1: + dependencies: + semver: 7.6.3 + + is-callable@1.2.7: {} + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-symbol@1.0.4: + dependencies: + has-symbols: 1.0.3 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-weakmap@2.0.2: {} + + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + iterator.prototype@1.1.2: + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.16.7 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jiti@1.21.6: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + loader-runner@4.3.0: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.merge@4.6.2: {} + + long@5.2.3: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@10.4.3: {} + + memfs@4.12.0: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + ms@2.1.3: {} + + ms@3.0.0-canary.1: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + neo-async@2.6.2: {} + + next@14.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 14.2.13 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001663 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.13 + '@next/swc-darwin-x64': 14.2.13 + '@next/swc-linux-arm64-gnu': 14.2.13 + '@next/swc-linux-arm64-musl': 14.2.13 + '@next/swc-linux-x64-gnu': 14.2.13 + '@next/swc-linux-x64-musl': 14.2.13 + '@next/swc-win32-arm64-msvc': 14.2.13 + '@next/swc-win32-ia32-msvc': 14.2.13 + '@next/swc-win32-x64-msvc': 14.2.13 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.2: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + + object.values@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + possible-typed-array-names@1.0.0: {} + + postcss-import@15.1.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.47): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.47 + + postcss-load-config@4.0.2(postcss@8.4.47): + dependencies: + lilconfig: 3.1.2 + yaml: 2.5.1 + optionalDependencies: + postcss: 8.4.47 + + postcss-nested@6.2.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.31: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.4.0 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.16.7 + long: 5.2.3 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-is@16.13.1: {} + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + reflect.getprototypeof@1.0.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 + + regexp.prototype.flags@1.5.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + require-directory@2.1.1: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + + safe-buffer@5.2.1: {} + + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + safer-buffer@2.1.2: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + semver@6.3.1: {} + + semver@7.6.3: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + signal-exit@4.1.0: {} + + source-map-js@1.2.1: {} + + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + stop-iteration-iterator@1.0.0: + dependencies: + internal-slot: 1.0.7 + + streamsearch@1.1.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-json-comments@3.1.1: {} + + styled-jsx@5.1.1(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + swc-loader@0.2.6(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))): + dependencies: + '@swc/core': 1.7.28(@swc/helpers@0.5.11) + '@swc/counter': 0.1.3 + webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + + tailwindcss@3.4.13: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tapable@2.2.1: {} + + terser-webpack-plugin@5.3.10(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.33.0 + webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + optionalDependencies: + '@swc/core': 1.7.28(@swc/helpers@0.5.11) + + terser@5.33.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + thingies@1.21.0(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tree-dump@1.0.2(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + ts-api-utils@1.3.0(typescript@5.6.2): + dependencies: + typescript: 5.6.2 + + ts-interface-checker@0.1.13: {} + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.7.0: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + + typescript@5.6.2: {} + + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + undici-types@6.19.8: {} + + unionfs@4.5.4: + dependencies: + fs-monkey: 1.0.6 + + update-browserslist-db@1.1.0(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + uuid@9.0.1: {} + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webpack-sources@3.2.3: {} + + webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)): + dependencies: + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.24.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + which-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + which-builtin-type@1.1.4: + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + y18n@5.0.8: {} + + yaml@2.5.1: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} diff --git a/examples/nextjs/postcss.config.mjs b/examples/nextjs/postcss.config.mjs new file mode 100644 index 0000000..1a69fd2 --- /dev/null +++ b/examples/nextjs/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/examples/nextjs/restack_up.mjs b/examples/nextjs/restack_up.mjs new file mode 100644 index 0000000..855c263 --- /dev/null +++ b/examples/nextjs/restack_up.mjs @@ -0,0 +1,39 @@ +import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; + +const main = async () => { + const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); + + const restackEngineEnvs = [ + { + name: "RESTACK_ENGINE_ENV_ID", + value: process.env.RESTACK_ENGINE_ENV_ID, + }, + { + name: "RESTACK_ENGINE_ENV_ADDRESS", + value: process.env.RESTACK_ENGINE_ENV_ADDRESS, + }, + { + name: "RESTACK_ENGINE_ENV_API_KEY", + value: process.env.RESTACK_ENGINE_ENV_API_KEY, + }, + ]; + + const nextjsApp = { + name: "nextjs", + dockerFilePath: "examples/nextjs/Dockerfile", + dockerBuildContext: "examples/nextjs", + environmentVariables: [ + ...restackEngineEnvs + ], + }; + + await restackCloudClient.stack({ + name: "development environment", + previewEnabled: false, + applications: [nextjsApp], + }); + + await restackCloudClient.up(); +}; + +main(); \ No newline at end of file diff --git a/examples/nextjs/src/app/actions/trigger.ts b/examples/nextjs/src/app/actions/trigger.ts new file mode 100644 index 0000000..83d5f8b --- /dev/null +++ b/examples/nextjs/src/app/actions/trigger.ts @@ -0,0 +1,37 @@ +"use server"; +import Restack from "@restackio/restack-sdk-ts"; +import { Example } from "../components/examplesList"; + +const connectionOptions = { + envId: process.env.RESTACK_ENGINE_ENV_ID!, + address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, +}; + +const client = new Restack( + process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined +); + +export async function triggerWorkflow( + workflowName: Example["workflowName"], + input: Example["input"] +) { + if (!workflowName || !input) { + throw new Error("Workflow name and input are required"); + } + + const workflowId = `${Date.now()}-${workflowName.toString()}`; + + const runId = await client.scheduleWorkflow({ + workflowName: workflowName as string, + workflowId, + input, + }); + + const result = await client.getWorkflowResult({ + workflowId, + runId, + }); + + return result; +} diff --git a/examples/nextjs/src/app/components/Examples.tsx b/examples/nextjs/src/app/components/Examples.tsx new file mode 100644 index 0000000..1027950 --- /dev/null +++ b/examples/nextjs/src/app/components/Examples.tsx @@ -0,0 +1,52 @@ +"use client"; + +import { useState } from "react"; +import { Example, examples } from "./examplesList"; +import { triggerWorkflow } from "@/app/actions/Trigger"; + +const Examples = () => { + const [loading, setLoading] = useState(false); + const [output, setOutput] = useState({}); + + const handleButtonClick = async (example: Example) => { + setLoading(true); + setOutput({}); + try { + const result = await triggerWorkflow(example.workflowName, example.input); + setOutput(result); + } catch (error) { + console.error("Error triggering workflow:", error); + setOutput("Error triggering workflow"); + } finally { + setLoading(false); + } + }; + + return ( +
+ {examples.map((example, index) => ( +
+

{example.name}

+

{example.description}

+ +
+ ))} + {output && ( +
+

Output:

+
+            {JSON.stringify(output, null, 2)}
+          
+
+ )} +
+ ); +}; + +export default Examples; diff --git a/examples/nextjs/src/app/components/examplesList.tsx b/examples/nextjs/src/app/components/examplesList.tsx new file mode 100644 index 0000000..9a0542a --- /dev/null +++ b/examples/nextjs/src/app/components/examplesList.tsx @@ -0,0 +1,17 @@ +export type Example = { + name: string; + description: string; + integrations: string[]; + workflowName: string; + input: Record; +}; + +export const examples = [ + { + name: "Hello world", + description: "Example workflow to say hello and goodbye", + integrations: ["openai"], + workflowName: "helloWorkflow", + input: { name: "test" }, + }, +]; diff --git a/examples/nextjs/src/app/favicon.ico b/examples/nextjs/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/examples/nextjs/src/app/fonts/GeistMonoVF.woff b/examples/nextjs/src/app/fonts/GeistMonoVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..f2ae185cbfd16946a534d819e9eb03924abbcc49 GIT binary patch literal 67864 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ϣ%UY8`RWp~V-U_7 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 CLkb=M literal 0 HcmV?d00001 diff --git a/examples/nextjs/src/app/fonts/GeistVF.woff b/examples/nextjs/src/app/fonts/GeistVF.woff new file mode 100644 index 0000000000000000000000000000000000000000..1b62daacff96dad6584e71cd962051b82957c313 GIT binary patch literal 66268 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 >-Aun5A4Gp>4U0IQJ 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 G)cz05(PHWV literal 0 HcmV?d00001 diff --git a/examples/nextjs/src/app/globals.css b/examples/nextjs/src/app/globals.css new file mode 100644 index 0000000..13d40b8 --- /dev/null +++ b/examples/nextjs/src/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +body { + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} diff --git a/examples/nextjs/src/app/layout.tsx b/examples/nextjs/src/app/layout.tsx new file mode 100644 index 0000000..a36cde0 --- /dev/null +++ b/examples/nextjs/src/app/layout.tsx @@ -0,0 +1,35 @@ +import type { Metadata } from "next"; +import localFont from "next/font/local"; +import "./globals.css"; + +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}); +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/examples/nextjs/src/app/page.tsx b/examples/nextjs/src/app/page.tsx new file mode 100644 index 0000000..ae07181 --- /dev/null +++ b/examples/nextjs/src/app/page.tsx @@ -0,0 +1,82 @@ +import Image from "next/image"; +import Examples from "./components/Examples"; // Import the Examples component + +export default function Home() { + return ( + + ); +} diff --git a/examples/nextjs/tailwind.config.ts b/examples/nextjs/tailwind.config.ts new file mode 100644 index 0000000..021c393 --- /dev/null +++ b/examples/nextjs/tailwind.config.ts @@ -0,0 +1,19 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + colors: { + background: "var(--background)", + foreground: "var(--foreground)", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/examples/nextjs/tsconfig.json b/examples/nextjs/tsconfig.json new file mode 100644 index 0000000..7b28589 --- /dev/null +++ b/examples/nextjs/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} From cd7faee570ea5a15ef3db60643adc0eeef89d4e4 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 26 Sep 2024 16:06:08 +0200 Subject: [PATCH 067/122] envs Former-commit-id: 9323c5aa514b71006d480ec636c10152397ef478 Former-commit-id: 558f9809c0a3057bdd2c36a617c97b16af88d7c9 --- examples/hello/src/client.ts | 8 ++++---- examples/nextjs/src/app/actions/trigger.ts | 8 ++++---- examples/posthog/src/client.ts | 8 ++++---- examples/voice/src/client.ts | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/hello/src/client.ts b/examples/hello/src/client.ts index 79cf2b7..cbe31bf 100644 --- a/examples/hello/src/client.ts +++ b/examples/hello/src/client.ts @@ -3,11 +3,11 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ENV_ID!, - address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, - apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, + envId: process.env.RESTACK_ENGINE_ID!, + address: process.env.RESTACK_ENGINE_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; export const client = new Restack( - process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined ); diff --git a/examples/nextjs/src/app/actions/trigger.ts b/examples/nextjs/src/app/actions/trigger.ts index 83d5f8b..7c5444c 100644 --- a/examples/nextjs/src/app/actions/trigger.ts +++ b/examples/nextjs/src/app/actions/trigger.ts @@ -3,13 +3,13 @@ import Restack from "@restackio/restack-sdk-ts"; import { Example } from "../components/examplesList"; const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ENV_ID!, - address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, - apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, + envId: process.env.RESTACK_ENGINE_ID!, + address: process.env.RESTACK_ENGINE_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; const client = new Restack( - process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined ); export async function triggerWorkflow( diff --git a/examples/posthog/src/client.ts b/examples/posthog/src/client.ts index 79cf2b7..cbe31bf 100644 --- a/examples/posthog/src/client.ts +++ b/examples/posthog/src/client.ts @@ -3,11 +3,11 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ENV_ID!, - address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, - apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, + envId: process.env.RESTACK_ENGINE_ID!, + address: process.env.RESTACK_ENGINE_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; export const client = new Restack( - process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined ); diff --git a/examples/voice/src/client.ts b/examples/voice/src/client.ts index 79cf2b7..cbe31bf 100644 --- a/examples/voice/src/client.ts +++ b/examples/voice/src/client.ts @@ -3,11 +3,11 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ENV_ID!, - address: process.env.RESTACK_ENGINE_ENV_ADDRESS!, - apiKey: process.env.RESTACK_ENGINE_ENV_API_KEY!, + envId: process.env.RESTACK_ENGINE_ID!, + address: process.env.RESTACK_ENGINE_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; export const client = new Restack( - process.env.RESTACK_ENGINE_ENV_API_KEY ? connectionOptions : undefined + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined ); From e4a3a672371b86d1efbff8fc8a4ad5e9206bbef1 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Thu, 26 Sep 2024 17:09:16 +0200 Subject: [PATCH 068/122] bump 0.0.66 with engine Former-commit-id: 6100c980dd7eb74d3606fdd0904a6f2b1659cecb Former-commit-id: 6c087b673645902e13fac76f65e4cda907a9500f --- examples/hello/package.json | 8 +- examples/hello/pnpm-lock.yaml | 540 ++++++++++++++------- examples/hello/src/client.ts | 2 +- examples/nextjs/package.json | 5 +- examples/nextjs/pnpm-lock.yaml | 10 +- examples/nextjs/src/app/actions/trigger.ts | 2 +- examples/posthog/package.json | 2 +- examples/posthog/pnpm-lock.yaml | 10 +- examples/posthog/src/client.ts | 2 +- examples/voice/package.json | 2 +- examples/voice/pnpm-lock.yaml | 10 +- examples/voice/src/client.ts | 2 +- 12 files changed, 396 insertions(+), 199 deletions(-) diff --git a/examples/hello/package.json b/examples/hello/package.json index d76a726..77b63b7 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,15 +23,15 @@ }, "dependencies": { "@restackio/integrations-openai": "^0.0.22", - "@restackio/restack-sdk-ts": "^0.0.63", - "@temporalio/workflow": "^1.11.1", + "@restackio/restack-sdk-ts": "^0.0.66", + "@temporalio/workflow": "^1.11.2", "dotenv": "^16.4.5", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.3" }, "devDependencies": { - "@restackio/restack-sdk-cloud-ts": "^1.0.5", - "@types/node": "^20.16.5", + "@restackio/restack-sdk-cloud-ts": "^1.0.15", + "@types/node": "^20.16.9", "nodemon": "^2.0.22", "ts-node": "^10.9.2" } diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index d3a11b0..be7b676 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -12,11 +12,11 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.63 - version: 0.0.63 + specifier: ^0.0.66 + version: 0.0.66 '@temporalio/workflow': - specifier: ^1.11.1 - version: 1.11.1 + specifier: ^1.11.2 + version: 1.11.2 dotenv: specifier: ^16.4.5 version: 16.4.5 @@ -28,17 +28,17 @@ importers: version: 3.23.3(zod@3.23.8) devDependencies: '@restackio/restack-sdk-cloud-ts': - specifier: ^1.0.5 - version: 1.0.13 + specifier: ^1.0.15 + version: 1.0.15 '@types/node': - specifier: ^20.16.5 - version: 20.16.5 + specifier: ^20.16.9 + version: 20.16.9 nodemon: specifier: ^2.0.22 version: 2.0.22 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.28)(@types/node@20.16.9)(typescript@5.5.4) integrations/openai: dependencies: @@ -78,6 +78,10 @@ packages: resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} engines: {node: '>=12.10.0'} + '@grpc/grpc-js@1.11.3': + resolution: {integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==} + engines: {node: '>=12.10.0'} + '@grpc/proto-loader@0.7.13': resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} engines: {node: '>=6'} @@ -167,16 +171,16 @@ packages: '@restackio/integrations-openai@0.0.22': resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} - '@restackio/restack-sdk-cloud-ts@1.0.13': - resolution: {integrity: sha512-1YOKmVdlBUcY45dpMkPPXftPi51yKeso9Zcf46PyItFdVjw2aqUEEkTz9HmKhrIGRfkcpdrgxrj4WSgcrZUTKQ==} + '@restackio/restack-sdk-cloud-ts@1.0.15': + resolution: {integrity: sha512-urTGjAPUchi2tUWtDkn9xEKWXaDkH8iPXQJR9//0ZDUsiMgVBu11d/DXZhTngjMiv/nu1Z9WJ8rqWcOlQ4K3VA==} engines: {node: '>=18'} '@restackio/restack-sdk-ts@0.0.40': resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.63': - resolution: {integrity: sha512-62m/jJVwCiFdU0CadhrjnoKBaQtg71dX6r8CpUUcrRKzH5oTK2eSuPdrYNX8XV52h2fw4XSh8Ahz3M02LupiWQ==} + '@restackio/restack-sdk-ts@0.0.66': + resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.2': @@ -191,6 +195,12 @@ packages: cpu: [arm64] os: [darwin] + '@swc/core-darwin-arm64@1.7.28': + resolution: {integrity: sha512-BNkj6enHo2pdzOpCtQGKZbXT2A/qWIr0CVtbTM4WkJ3MCK/glbFsyO6X59p1r8+gfaZG4bWYnTTu+RuUAcsL5g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + '@swc/core-darwin-x64@1.7.2': resolution: {integrity: sha512-qb0HY9GEexpPm46Hb3OY7E6xb4r+eniiThm+0Gcnhf19EZV2ZlsCC8Rdbhmav33x++ZqSDzZ44fxMY2vnN5VDg==} engines: {node: '>=10'} @@ -203,6 +213,12 @@ packages: cpu: [x64] os: [darwin] + '@swc/core-darwin-x64@1.7.28': + resolution: {integrity: sha512-96zQ+X5Fd6P/RNPkOyikTJgEc2M4TzznfYvjRd2hye5h22jhxCLL/csoauDgN7lYfd7mwsZ/sVXwJTMKl+vZSA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + '@swc/core-linux-arm-gnueabihf@1.7.2': resolution: {integrity: sha512-x2+MOK3RzH3yEkaukKtpDW/udM1x9GoYtXaLNqlq6ovAzZPQ9FDFI0pm1asL4akHUw3s7YTh1aUY7QscstJAHQ==} engines: {node: '>=10'} @@ -215,6 +231,12 @@ packages: cpu: [arm] os: [linux] + '@swc/core-linux-arm-gnueabihf@1.7.28': + resolution: {integrity: sha512-l2100Wx6LdXMOmOW3+KoHhBhyZrGdz8ylkygcVOC0QHp6YIATfuG+rRHksfyEWCSOdL3anM9MJZJX26KT/s+XQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + '@swc/core-linux-arm64-gnu@1.7.2': resolution: {integrity: sha512-4J3HGEDus7a9xnrJUFGyJJgvj4w+BFGiZvs08xbw4Z1ZN4uHJQiJiDsQEAWWciKUxrOndP3SocUq/GhEGiDm0g==} engines: {node: '>=10'} @@ -227,6 +249,12 @@ packages: cpu: [arm64] os: [linux] + '@swc/core-linux-arm64-gnu@1.7.28': + resolution: {integrity: sha512-03m6iQ5Bv9u2VPnNRyaBmE8eHi056eE39L0gXcqGoo46GAGuoqYHt9pDz8wS6EgoN4t85iBMUZrkCNqFKkN6ZQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + '@swc/core-linux-arm64-musl@1.7.2': resolution: {integrity: sha512-4FhQmYbj8SCmir4pHRLSn8IIFmRKHTL3eZFtOpm26RLME7rXL7Yt33DpzIeTRoHFIesI5NEfaR38WU5mY7P1pA==} engines: {node: '>=10'} @@ -239,6 +267,12 @@ packages: cpu: [arm64] os: [linux] + '@swc/core-linux-arm64-musl@1.7.28': + resolution: {integrity: sha512-vqVOpG/jc8mvTKQjaPBLhr7tnWyzuztOHsPnJqMWmg7zGcMeQC/2c5pU4uzRAfXMTp25iId6s4Y4wWfPS1EeDw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + '@swc/core-linux-x64-gnu@1.7.2': resolution: {integrity: sha512-Loz10Hy6z5mBIAOe6OInOVsYu+PVxyknCB3thtr7QH+uqEz6dcXhU2ERrO2Lf4dsTsFs/Wb80rv8zTSwB8dpsw==} engines: {node: '>=10'} @@ -251,6 +285,12 @@ packages: cpu: [x64] os: [linux] + '@swc/core-linux-x64-gnu@1.7.28': + resolution: {integrity: sha512-HGwpWuB83Kr+V0E+zT5UwIIY9OxiS8aLd0UVMRVWuO8SrQyKm9HKJ46+zoAb8tfJrpZftfxvbn2ayZWR7gqosA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + '@swc/core-linux-x64-musl@1.7.2': resolution: {integrity: sha512-8p8qNWaLcTa+qHX4NSv1KNm8BQ6zPoLXuOBo9DtOEqc+K60IISGKPCAS7TJlCcv0q20JnmxZ/cEWW5Qo4TR4XQ==} engines: {node: '>=10'} @@ -263,6 +303,12 @@ packages: cpu: [x64] os: [linux] + '@swc/core-linux-x64-musl@1.7.28': + resolution: {integrity: sha512-q2Y2T8y8EgFtIiRyInnAXNe94aaHX74F0ha1Bl9VdRxE0u1/So+3VLbPvtp4V3Z6pj5pOePfCQJKifnllgAQ9A==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + '@swc/core-win32-arm64-msvc@1.7.2': resolution: {integrity: sha512-eNWAYOalBlFrhv/IVSQ1dxu7qIGuhxlUJZTYa8jsgLnKt93vAFd2cjLtKZ85k1OibBnq9PkKQyo4NKVr4hBavw==} engines: {node: '>=10'} @@ -275,6 +321,12 @@ packages: cpu: [arm64] os: [win32] + '@swc/core-win32-arm64-msvc@1.7.28': + resolution: {integrity: sha512-bCqh4uBT/59h3dWK1v91In6qzz8rKoWoFRxCtNQLIK4jP55K0U231ZK9oN7neZD6bzcOUeFvOGgcyMAgDfFWfA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + '@swc/core-win32-ia32-msvc@1.7.2': resolution: {integrity: sha512-BbpaCPCnbQHCzpQ9yDH3qp1Y5Ijd0NSMNk4qqESN2WWx0ojV2uBTjPou5NC2MZxk8fM3iJpJ05enf+IeaXuh6A==} engines: {node: '>=10'} @@ -287,6 +339,12 @@ packages: cpu: [ia32] os: [win32] + '@swc/core-win32-ia32-msvc@1.7.28': + resolution: {integrity: sha512-XTHbHrksnrqK3JSJ2sbuMWvdJ6/G0roRpgyVTmNDfhTYPOwcVaL/mSrPGLwbksYUbq7ckwoKzrobhdxvQzPsDA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + '@swc/core-win32-x64-msvc@1.7.2': resolution: {integrity: sha512-21mf4Jg9Arx0lUnmRQtYd8IQB4WkY4LHJrvcz3EmKbwCTCXI5rQ6Ifnjk7EmG3Tizv0giHqQBQLu5NXWBz45Mg==} engines: {node: '>=10'} @@ -299,6 +357,12 @@ packages: cpu: [x64] os: [win32] + '@swc/core-win32-x64-msvc@1.7.28': + resolution: {integrity: sha512-jyXeoq6nX8abiCy2EpporsC5ywNENs4ocYuvxo1LSxDktWN1E2MTXq3cdJcEWB2Vydxq0rDcsGyzkRPMzFhkZw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + '@swc/core@1.7.2': resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} engines: {node: '>=10'} @@ -317,6 +381,15 @@ packages: '@swc/helpers': optional: true + '@swc/core@1.7.28': + resolution: {integrity: sha512-XapcMgsOS0cKh01AFEj+qXOk6KM4NZhp7a5vPicdhkRR8RzvjrCa7DTtijMxfotU8bqaEHguxmiIag2HUlT8QQ==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -326,25 +399,47 @@ packages: '@temporalio/activity@1.11.1': resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} + '@temporalio/activity@1.11.2': + resolution: {integrity: sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==} + '@temporalio/client@1.11.1': resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} + '@temporalio/client@1.11.2': + resolution: {integrity: sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==} + '@temporalio/common@1.11.1': resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} + '@temporalio/common@1.11.2': + resolution: {integrity: sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==} + '@temporalio/core-bridge@1.11.1': resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} + '@temporalio/core-bridge@1.11.2': + resolution: {integrity: sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==} + '@temporalio/proto@1.11.1': resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} + '@temporalio/proto@1.11.2': + resolution: {integrity: sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==} + '@temporalio/worker@1.11.1': resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} engines: {node: '>= 16.0.0'} + '@temporalio/worker@1.11.2': + resolution: {integrity: sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==} + engines: {node: '>= 16.0.0'} + '@temporalio/workflow@1.11.1': resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} + '@temporalio/workflow@1.11.2': + resolution: {integrity: sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -360,6 +455,9 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -372,14 +470,11 @@ packages: '@types/node@18.19.42': resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} - '@types/node@18.19.50': - resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - - '@types/node@20.16.5': - resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==} + '@types/node@18.19.53': + resolution: {integrity: sha512-GLxgUgHhDKO1Edw9Q0lvMbiO/IQXJwJlMaqxSGBXMpPy8uhkCs2iiPFaB2Q/gmobnFkckD3rqTBMVjXdwq+nKg==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/node@20.16.9': + resolution: {integrity: sha512-rkvIVJxsOfBejxK7I0FO5sa2WxFmJCzoDwcd88+fq/CUfynNywTo/1/T6hyFz22CyztsnLS9nVlHOnTI36RH5w==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -506,6 +601,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -513,13 +613,12 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001660: resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + caniuse-lite@1.0.30001664: + resolution: {integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==} + cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} hasBin: true @@ -585,10 +684,6 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -608,6 +703,9 @@ packages: electron-to-chromium@1.5.20: resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} + electron-to-chromium@1.5.29: + resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -615,14 +713,6 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -683,17 +773,10 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -701,9 +784,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -715,21 +795,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - heap-js@2.5.0: resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} engines: {node: '>=10.0.0'} @@ -813,6 +878,10 @@ packages: resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} engines: {node: '>= 4.0.0'} + memfs@4.12.0: + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} + engines: {node: '>= 4.0.0'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -862,10 +931,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - open@10.1.0: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} @@ -879,8 +944,8 @@ packages: zod: optional: true - openai@4.61.0: - resolution: {integrity: sha512-xkygRBRLIUumxzKGb1ug05pWmJROQsHkGuj/N6Jiw2dj0dI19JvbFpErSZKmJ/DA+0IvpcugZqCAyk8iLpyM6Q==} + openai@4.64.0: + resolution: {integrity: sha512-+o4vDKn2xzNMeR71rFMCPLr2penpwoALgRoJyIboIBOlkKjw+SoRiBOlO9ss1diXM4Elv01L/iliyr2oqY/l+A==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -913,10 +978,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -956,16 +1017,8 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - - simple-git@3.26.0: - resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} + simple-git@3.27.0: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} simple-update-notifier@1.1.0: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} @@ -1043,6 +1096,11 @@ packages: engines: {node: '>=10'} hasBin: true + terser@5.34.0: + resolution: {integrity: sha512-y5NUX+U9HhVsK/zihZwoq4r9dICLyV2jXGOriDAVOeKhq3LKVjgJbGO90FisozXLlJfvjHqgckGmJFBb9KYoWQ==} + engines: {node: '>=10'} + hasBin: true + thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -1156,6 +1214,16 @@ packages: webpack-cli: optional: true + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -1206,6 +1274,11 @@ snapshots: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 + '@grpc/grpc-js@1.11.3': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + '@grpc/proto-loader@0.7.13': dependencies: lodash.camelcase: 4.3.0 @@ -1291,17 +1364,17 @@ snapshots: '@restackio/integrations-openai@0.0.22(zod@3.23.8)': dependencies: - openai: 4.61.0(zod@3.23.8) + openai: 4.64.0(zod@3.23.8) transitivePeerDependencies: - encoding - zod - '@restackio/restack-sdk-cloud-ts@1.0.13': + '@restackio/restack-sdk-cloud-ts@1.0.15': dependencies: chalk: 4.1.2 dotenv: 16.4.5 open: 10.1.0 - simple-git: 3.26.0 + simple-git: 3.27.0 yup: 1.4.0 zod: 3.23.8 transitivePeerDependencies: @@ -1319,12 +1392,12 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-ts@0.0.63': + '@restackio/restack-sdk-ts@0.0.66': dependencies: - '@temporalio/activity': 1.11.1 - '@temporalio/client': 1.11.1 - '@temporalio/worker': 1.11.1 - '@temporalio/workflow': 1.11.1 + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/worker': 1.11.2 + '@temporalio/workflow': 1.11.2 transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1337,60 +1410,90 @@ snapshots: '@swc/core-darwin-arm64@1.7.26': optional: true + '@swc/core-darwin-arm64@1.7.28': + optional: true + '@swc/core-darwin-x64@1.7.2': optional: true '@swc/core-darwin-x64@1.7.26': optional: true + '@swc/core-darwin-x64@1.7.28': + optional: true + '@swc/core-linux-arm-gnueabihf@1.7.2': optional: true '@swc/core-linux-arm-gnueabihf@1.7.26': optional: true + '@swc/core-linux-arm-gnueabihf@1.7.28': + optional: true + '@swc/core-linux-arm64-gnu@1.7.2': optional: true '@swc/core-linux-arm64-gnu@1.7.26': optional: true + '@swc/core-linux-arm64-gnu@1.7.28': + optional: true + '@swc/core-linux-arm64-musl@1.7.2': optional: true '@swc/core-linux-arm64-musl@1.7.26': optional: true + '@swc/core-linux-arm64-musl@1.7.28': + optional: true + '@swc/core-linux-x64-gnu@1.7.2': optional: true '@swc/core-linux-x64-gnu@1.7.26': optional: true + '@swc/core-linux-x64-gnu@1.7.28': + optional: true + '@swc/core-linux-x64-musl@1.7.2': optional: true '@swc/core-linux-x64-musl@1.7.26': optional: true + '@swc/core-linux-x64-musl@1.7.28': + optional: true + '@swc/core-win32-arm64-msvc@1.7.2': optional: true '@swc/core-win32-arm64-msvc@1.7.26': optional: true + '@swc/core-win32-arm64-msvc@1.7.28': + optional: true + '@swc/core-win32-ia32-msvc@1.7.2': optional: true '@swc/core-win32-ia32-msvc@1.7.26': optional: true + '@swc/core-win32-ia32-msvc@1.7.28': + optional: true + '@swc/core-win32-x64-msvc@1.7.2': optional: true '@swc/core-win32-x64-msvc@1.7.26': optional: true + '@swc/core-win32-x64-msvc@1.7.28': + optional: true + '@swc/core@1.7.2': dependencies: '@swc/counter': 0.1.3 @@ -1424,6 +1527,22 @@ snapshots: '@swc/core-win32-ia32-msvc': 1.7.26 '@swc/core-win32-x64-msvc': 1.7.26 + '@swc/core@1.7.28': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.28 + '@swc/core-darwin-x64': 1.7.28 + '@swc/core-linux-arm-gnueabihf': 1.7.28 + '@swc/core-linux-arm64-gnu': 1.7.28 + '@swc/core-linux-arm64-musl': 1.7.28 + '@swc/core-linux-x64-gnu': 1.7.28 + '@swc/core-linux-x64-musl': 1.7.28 + '@swc/core-win32-arm64-msvc': 1.7.28 + '@swc/core-win32-ia32-msvc': 1.7.28 + '@swc/core-win32-x64-msvc': 1.7.28 + '@swc/counter@0.1.3': {} '@swc/types@0.1.12': @@ -1435,6 +1554,11 @@ snapshots: '@temporalio/common': 1.11.1 abort-controller: 3.0.0 + '@temporalio/activity@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + abort-controller: 3.0.0 + '@temporalio/client@1.11.1': dependencies: '@grpc/grpc-js': 1.11.2 @@ -1444,6 +1568,15 @@ snapshots: long: 5.2.3 uuid: 9.0.1 + '@temporalio/client@1.11.2': + dependencies: + '@grpc/grpc-js': 1.11.3 + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + '@temporalio/common@1.11.1': dependencies: '@temporalio/proto': 1.11.1 @@ -1451,6 +1584,13 @@ snapshots: ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 + '@temporalio/common@1.11.2': + dependencies: + '@temporalio/proto': 1.11.2 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + '@temporalio/core-bridge@1.11.1': dependencies: '@temporalio/common': 1.11.1 @@ -1458,11 +1598,23 @@ snapshots: cargo-cp-artifact: 0.1.9 which: 4.0.0 + '@temporalio/core-bridge@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + '@temporalio/proto@1.11.1': dependencies: long: 5.2.3 protobufjs: 7.4.0 + '@temporalio/proto@1.11.2': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + '@temporalio/worker@1.11.1': dependencies: '@swc/core': 1.7.26 @@ -1488,11 +1640,41 @@ snapshots: - uglify-js - webpack-cli + '@temporalio/worker@1.11.2': + dependencies: + '@swc/core': 1.7.28 + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/common': 1.11.2 + '@temporalio/core-bridge': 1.11.2 + '@temporalio/proto': 1.11.2 + '@temporalio/workflow': 1.11.2 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.12.0 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.28)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)) + unionfs: 4.5.4 + webpack: 5.95.0(@swc/core@1.7.28) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + '@temporalio/workflow@1.11.1': dependencies: '@temporalio/common': 1.11.1 '@temporalio/proto': 1.11.1 + '@temporalio/workflow@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -1503,11 +1685,13 @@ snapshots: '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/json-schema@7.0.15': {} '@types/node-fetch@2.6.11': dependencies: - '@types/node': 20.16.5 + '@types/node': 20.16.9 form-data: 4.0.0 '@types/node@14.18.63': {} @@ -1516,16 +1700,14 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@18.19.50': + '@types/node@18.19.53': dependencies: undici-types: 5.26.5 - '@types/node@20.16.5': + '@types/node@20.16.9': dependencies: undici-types: 6.19.8 - '@types/qs@6.9.15': {} - '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 @@ -1676,22 +1858,23 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001664 + electron-to-chromium: 1.5.29 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.24.0) + buffer-from@1.1.2: {} bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - caniuse-lite@1.0.30001660: {} + caniuse-lite@1.0.30001664: {} + cargo-cp-artifact@0.1.9: {} chalk@4.1.2: @@ -1752,12 +1935,6 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - define-lazy-prop@3.0.0: {} delayed-stream@1.0.0: {} @@ -1768,6 +1945,8 @@ snapshots: electron-to-chromium@1.5.20: {} + electron-to-chromium@1.5.29: {} + emoji-regex@8.0.0: {} enhanced-resolve@5.17.1: @@ -1775,12 +1954,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - - es-errors@1.3.0: {} - es-module-lexer@1.5.4: {} escalade@3.2.0: {} @@ -1828,46 +2001,20 @@ snapshots: fsevents@2.3.3: optional: true - function-bind@1.1.2: {} - get-caller-file@2.0.5: {} - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 glob-to-regexp@0.4.1: {} - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 - graceful-fs@4.2.11: {} has-flag@3.0.0: {} has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.0 - - has-proto@1.0.3: {} - - has-symbols@1.0.3: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - heap-js@2.5.0: {} humanize-ms@1.2.1: @@ -1910,7 +2057,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.16.5 + '@types/node': 20.16.9 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -1933,6 +2080,13 @@ snapshots: tree-dump: 1.0.2(tslib@2.7.0) tslib: 2.7.0 + memfs@4.12.0: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + merge-stream@2.0.0: {} mime-db@1.52.0: {} @@ -1974,8 +2128,6 @@ snapshots: normalize-path@3.0.0: {} - object-inspect@1.13.2: {} - open@10.1.0: dependencies: default-browser: 5.2.1 @@ -1997,17 +2149,15 @@ snapshots: transitivePeerDependencies: - encoding - openai@4.61.0(zod@3.23.8): + openai@4.64.0(zod@3.23.8): dependencies: - '@types/node': 18.19.50 + '@types/node': 18.19.53 '@types/node-fetch': 2.6.11 - '@types/qs': 6.9.15 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0 - qs: 6.13.0 optionalDependencies: zod: 3.23.8 transitivePeerDependencies: @@ -2035,17 +2185,13 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.16.5 + '@types/node': 20.16.9 long: 5.2.3 pstree.remy@1.1.8: {} punycode@2.3.1: {} - qs@6.13.0: - dependencies: - side-channel: 1.0.6 - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -2080,23 +2226,7 @@ snapshots: dependencies: randombytes: 2.1.0 - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - - side-channel@1.0.6: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 - - simple-git@3.26.0: + simple-git@3.27.0: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 @@ -2116,6 +2246,12 @@ snapshots: source-map-js: 1.2.1 webpack: 5.94.0(@swc/core@1.7.26) + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.28)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.95.0(@swc/core@1.7.28) + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -2153,6 +2289,12 @@ snapshots: '@swc/counter': 0.1.3 webpack: 5.94.0(@swc/core@1.7.26) + swc-loader@0.2.6(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)): + dependencies: + '@swc/core': 1.7.28 + '@swc/counter': 0.1.3 + webpack: 5.95.0(@swc/core@1.7.28) + tapable@2.2.1: {} terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): @@ -2166,6 +2308,17 @@ snapshots: optionalDependencies: '@swc/core': 1.7.26 + terser-webpack-plugin@5.3.10(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.34.0 + webpack: 5.95.0(@swc/core@1.7.28) + optionalDependencies: + '@swc/core': 1.7.28 + terser@5.32.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -2173,6 +2326,13 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + terser@5.34.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + thingies@1.21.0(tslib@2.7.0): dependencies: tslib: 2.7.0 @@ -2213,14 +2373,14 @@ snapshots: optionalDependencies: '@swc/core': 1.7.2 - ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.5)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.28)(@types/node@20.16.9)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.16.5 + '@types/node': 20.16.9 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2231,7 +2391,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.26 + '@swc/core': 1.7.28 tslib@2.7.0: {} @@ -2257,6 +2417,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.0 + update-browserslist-db@1.1.0(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -2306,6 +2472,36 @@ snapshots: - esbuild - uglify-js + webpack@5.95.0(@swc/core@1.7.28): + dependencies: + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.24.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 diff --git a/examples/hello/src/client.ts b/examples/hello/src/client.ts index cbe31bf..fcd89b0 100644 --- a/examples/hello/src/client.ts +++ b/examples/hello/src/client.ts @@ -3,7 +3,7 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ID!, + engineId: process.env.RESTACK_ENGINE_ID!, address: process.env.RESTACK_ENGINE_ADDRESS!, apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; diff --git a/examples/nextjs/package.json b/examples/nextjs/package.json index f0b4540..d621303 100644 --- a/examples/nextjs/package.json +++ b/examples/nextjs/package.json @@ -6,10 +6,11 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "clean": "rm -rf node_modules" }, "dependencies": { - "@restackio/restack-sdk-ts": "^0.0.63", + "@restackio/restack-sdk-ts": "^0.0.66", "next": "14.2.13", "react": "^18", "react-dom": "^18" diff --git a/examples/nextjs/pnpm-lock.yaml b/examples/nextjs/pnpm-lock.yaml index 720d09b..637efb0 100644 --- a/examples/nextjs/pnpm-lock.yaml +++ b/examples/nextjs/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/restack-sdk-ts': - specifier: ^0.0.63 - version: 0.0.63(@swc/helpers@0.5.11) + specifier: ^0.0.66 + version: 0.0.66(@swc/helpers@0.5.11) next: specifier: 14.2.13 version: 14.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -248,8 +248,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.63': - resolution: {integrity: sha512-62m/jJVwCiFdU0CadhrjnoKBaQtg71dX6r8CpUUcrRKzH5oTK2eSuPdrYNX8XV52h2fw4XSh8Ahz3M02LupiWQ==} + '@restackio/restack-sdk-ts@0.0.66': + resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} engines: {node: '>=20'} '@rtsao/scc@1.1.0': @@ -2198,7 +2198,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.63(@swc/helpers@0.5.11)': + '@restackio/restack-sdk-ts@0.0.66(@swc/helpers@0.5.11)': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/nextjs/src/app/actions/trigger.ts b/examples/nextjs/src/app/actions/trigger.ts index 7c5444c..8c3a43e 100644 --- a/examples/nextjs/src/app/actions/trigger.ts +++ b/examples/nextjs/src/app/actions/trigger.ts @@ -3,7 +3,7 @@ import Restack from "@restackio/restack-sdk-ts"; import { Example } from "../components/examplesList"; const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ID!, + engineId: process.env.RESTACK_ENGINE_ID!, address: process.env.RESTACK_ENGINE_ADDRESS!, apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 45a35c4..21e1af8 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -17,7 +17,7 @@ "dependencies": { "@restackio/integrations-linear": "^0.0.2", "@restackio/integrations-openai": "^0.0.22", - "@restackio/restack-sdk-ts": "^0.0.63", + "@restackio/restack-sdk-ts": "^0.0.66", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", "typescript": "^5.6.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index fca7bd7..fd7525b 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.0.22 version: 0.0.22(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.62 - version: 0.0.62 + specifier: ^0.0.66 + version: 0.0.66 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -170,8 +170,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.62': - resolution: {integrity: sha512-TcReBr6Eg99kqo4HU5/W38Fd1pfspENuhhOZfNJ0nBClflYFnraut4Hy3Z1Pad1HnDufjLqd2l5aK2yYNruBxg==} + '@restackio/restack-sdk-ts@0.0.66': + resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1324,7 +1324,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.62': + '@restackio/restack-sdk-ts@0.0.66': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/posthog/src/client.ts b/examples/posthog/src/client.ts index cbe31bf..fcd89b0 100644 --- a/examples/posthog/src/client.ts +++ b/examples/posthog/src/client.ts @@ -3,7 +3,7 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ID!, + engineId: process.env.RESTACK_ENGINE_ID!, address: process.env.RESTACK_ENGINE_ADDRESS!, apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; diff --git a/examples/voice/package.json b/examples/voice/package.json index 571e9ce..ba63015 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -22,7 +22,7 @@ "@restackio/integrations-openai": "^0.0.22", "@restackio/integrations-twilio": "^0.0.4", "@restackio/integrations-websocket": "^0.0.11", - "@restackio/restack-sdk-ts": "^0.0.63", + "@restackio/restack-sdk-ts": "^0.0.66", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 915674b..bc4e8ff 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -24,8 +24,8 @@ importers: specifier: ^0.0.11 version: 0.0.11(bufferutil@4.0.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.63 - version: 0.0.63 + specifier: ^0.0.66 + version: 0.0.66 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -209,8 +209,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.63': - resolution: {integrity: sha512-62m/jJVwCiFdU0CadhrjnoKBaQtg71dX6r8CpUUcrRKzH5oTK2eSuPdrYNX8XV52h2fw4XSh8Ahz3M02LupiWQ==} + '@restackio/restack-sdk-ts@0.0.66': + resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1695,7 +1695,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.63': + '@restackio/restack-sdk-ts@0.0.66': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/voice/src/client.ts b/examples/voice/src/client.ts index cbe31bf..fcd89b0 100644 --- a/examples/voice/src/client.ts +++ b/examples/voice/src/client.ts @@ -3,7 +3,7 @@ import Restack from "@restackio/restack-sdk-ts"; import "dotenv/config"; export const connectionOptions = { - envId: process.env.RESTACK_ENGINE_ID!, + engineId: process.env.RESTACK_ENGINE_ID!, address: process.env.RESTACK_ENGINE_ADDRESS!, apiKey: process.env.RESTACK_ENGINE_API_KEY!, }; From 5ff461a27cb2167686363e9c6745c8786b3da9d4 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 27 Sep 2024 00:04:20 +0200 Subject: [PATCH 069/122] aarch latest Former-commit-id: 69144daf36640336858026ed50469ca97606cb84 Former-commit-id: 23a83b906325587dc4655df141910924f8026682 --- restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id b/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id index bd01fb4..97f8dbb 100644 --- a/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id +++ b/restack-desktop_0.0.1_aarch64.dmg.REMOVED.git-id @@ -1 +1 @@ -6698bc2370c405cbb935eadaad08df9c0272eed1 \ No newline at end of file +fe3e07f04bf066a5996b9227f3b8ce4b24cb495a \ No newline at end of file From 033b81ceea7e0f19abad91f049dbaa2810b721fe Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 27 Sep 2024 01:32:44 +0200 Subject: [PATCH 070/122] bump integrations Former-commit-id: 6499a52dea0b3a315671c99ee831cb3596e53b91 Former-commit-id: 336b92ebe6a6bd2e8c603e61124686754083f331 --- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 10 ++++----- examples/posthog/package.json | 4 ++-- examples/posthog/pnpm-lock.yaml | 20 ++++++++--------- examples/voice/package.json | 8 +++---- examples/voice/pnpm-lock.yaml | 40 ++++++++++++++++----------------- 6 files changed, 42 insertions(+), 42 deletions(-) diff --git a/examples/hello/package.json b/examples/hello/package.json index 77b63b7..8c1fd0d 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -22,7 +22,7 @@ ] }, "dependencies": { - "@restackio/integrations-openai": "^0.0.22", + "@restackio/integrations-openai": "^0.0.23", "@restackio/restack-sdk-ts": "^0.0.66", "@temporalio/workflow": "^1.11.2", "dotenv": "^16.4.5", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index be7b676..a3c988c 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@restackio/integrations-openai': - specifier: ^0.0.22 - version: 0.0.22(zod@3.23.8) + specifier: ^0.0.23 + version: 0.0.23(zod@3.23.8) '@restackio/restack-sdk-ts': specifier: ^0.0.66 version: 0.0.66 @@ -168,8 +168,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.22': - resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} + '@restackio/integrations-openai@0.0.23': + resolution: {integrity: sha512-cTKk3mirbn25i4S/wG5b0o6gAoiPojkHptIP0q/C0aTLysm/Ps0daL4cVY/Q0hXmKfXLQ9+rxHkJOLS5zhMYrw==} '@restackio/restack-sdk-cloud-ts@1.0.15': resolution: {integrity: sha512-urTGjAPUchi2tUWtDkn9xEKWXaDkH8iPXQJR9//0ZDUsiMgVBu11d/DXZhTngjMiv/nu1Z9WJ8rqWcOlQ4K3VA==} @@ -1362,7 +1362,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.22(zod@3.23.8)': + '@restackio/integrations-openai@0.0.23(zod@3.23.8)': dependencies: openai: 4.64.0(zod@3.23.8) transitivePeerDependencies: diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 21e1af8..44c6727 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -15,8 +15,8 @@ "author": "", "license": "ISC", "dependencies": { - "@restackio/integrations-linear": "^0.0.2", - "@restackio/integrations-openai": "^0.0.22", + "@restackio/integrations-linear": "^0.0.3", + "@restackio/integrations-openai": "^0.0.23", "@restackio/restack-sdk-ts": "^0.0.66", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index fd7525b..1a3728c 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@restackio/integrations-linear': - specifier: ^0.0.2 - version: 0.0.2 + specifier: ^0.0.3 + version: 0.0.3 '@restackio/integrations-openai': - specifier: ^0.0.22 - version: 0.0.22(zod@3.23.8) + specifier: ^0.0.23 + version: 0.0.23(zod@3.23.8) '@restackio/restack-sdk-ts': specifier: ^0.0.66 version: 0.0.66 @@ -160,11 +160,11 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-linear@0.0.2': - resolution: {integrity: sha512-nb+T8CGOBlrJZYUfHaMNlsXYx6/59n7HJOzd/e3Gd1aIaDX1KkgyCv85mkPJkNQT3U2wvGuNeD747xZTmwXIdA==} + '@restackio/integrations-linear@0.0.3': + resolution: {integrity: sha512-eb+Uq71aPW6IV7+rV8fBwmgGOtutD1WKwJoOwPgPsKQ6sm5V3WH+1A60vR35/Y54h8k1ZD5X4Fmz9qslOAlaXA==} - '@restackio/integrations-openai@0.0.22': - resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} + '@restackio/integrations-openai@0.0.23': + resolution: {integrity: sha512-cTKk3mirbn25i4S/wG5b0o6gAoiPojkHptIP0q/C0aTLysm/Ps0daL4cVY/Q0hXmKfXLQ9+rxHkJOLS5zhMYrw==} '@restackio/restack-sdk-cloud-ts@1.0.5': resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} @@ -1300,13 +1300,13 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-linear@0.0.2': + '@restackio/integrations-linear@0.0.3': dependencies: '@linear/sdk': 29.0.0 transitivePeerDependencies: - encoding - '@restackio/integrations-openai@0.0.22(zod@3.23.8)': + '@restackio/integrations-openai@0.0.23(zod@3.23.8)': dependencies: openai: 4.61.0(zod@3.23.8) transitivePeerDependencies: diff --git a/examples/voice/package.json b/examples/voice/package.json index ba63015..ce8c765 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -18,10 +18,10 @@ "license": "ISC", "dependencies": { "@deepgram/sdk": "^3.6.0", - "@restackio/integrations-deepgram": "^0.0.7", - "@restackio/integrations-openai": "^0.0.22", - "@restackio/integrations-twilio": "^0.0.4", - "@restackio/integrations-websocket": "^0.0.11", + "@restackio/integrations-deepgram": "^0.0.8", + "@restackio/integrations-openai": "^0.0.3", + "@restackio/integrations-twilio": "^0.0.5", + "@restackio/integrations-websocket": "^0.0.12", "@restackio/restack-sdk-ts": "^0.0.66", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index bc4e8ff..cae8e39 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -12,17 +12,17 @@ importers: specifier: ^3.6.0 version: 3.6.0(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/integrations-deepgram': - specifier: ^0.0.7 - version: 0.0.7(bufferutil@4.0.8)(encoding@0.1.12) + specifier: ^0.0.8 + version: 0.0.8(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/integrations-openai': - specifier: ^0.0.22 - version: 0.0.22(encoding@0.1.12)(zod@3.23.8) + specifier: ^0.0.3 + version: 0.0.3(encoding@0.1.12)(zod@3.23.8) '@restackio/integrations-twilio': - specifier: ^0.0.4 - version: 0.0.4 + specifier: ^0.0.5 + version: 0.0.5 '@restackio/integrations-websocket': - specifier: ^0.0.11 - version: 0.0.11(bufferutil@4.0.8) + specifier: ^0.0.12 + version: 0.0.12(bufferutil@4.0.8) '@restackio/restack-sdk-ts': specifier: ^0.0.66 version: 0.0.66 @@ -193,17 +193,17 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-deepgram@0.0.7': - resolution: {integrity: sha512-Hm0Z//Q46xHQnmpL7dixB8rHP98Rc1Wab5MAG2FoHwSKRhSvDPXLPq2qlGzxBNCWER8yprM+9wJZ7FM9ibTyLA==} + '@restackio/integrations-deepgram@0.0.8': + resolution: {integrity: sha512-99GHdrP0dt4UsYYAySLWQFzAOx469FzmmXXwvpbmbQ4ZELavmyR4QMxxs1IGWvL9B1kMq2kdUyvJyVt9q48H/w==} - '@restackio/integrations-openai@0.0.22': - resolution: {integrity: sha512-NzUhLdI1y+DLmYElsxfUMhsVQ0vBdjYayMUY8vgBdNpJGVoFWC7ATml4vJPAC1VuZ6jOpQ5e3mcnM+pcARgssQ==} + '@restackio/integrations-openai@0.0.3': + resolution: {integrity: sha512-kp/b0tbKxWM/lkbK2Vi6l6nnh3u3oJ6R+EXmFyxkKNOTlBz4e+XfXKFodz0PWXZtQuXzi8mGA/+SYqxb93Z9ZA==} - '@restackio/integrations-twilio@0.0.4': - resolution: {integrity: sha512-FA6WDIq7qRgwKEmvzVPoGLRR9dzDueXMn39KtrzkFcS9IKrJF3B+cewoGA2LEHpWNtD6d8hva66hZFipgzl8Wg==} + '@restackio/integrations-twilio@0.0.5': + resolution: {integrity: sha512-olepmD/snHYPHJ62iRsHTrPC/zFDaWtqQICwyDZub6jkTKULtMkjospNmNZ3xT/pZ/sCx0yqW/2rGl97D88kmQ==} - '@restackio/integrations-websocket@0.0.11': - resolution: {integrity: sha512-MvoXjA6VYA9gYN4r9hjKoYzqsAt9Ogd8HlSgsjyRNy0Bky9OW4enknjpLvM6gP5g8/jJ1CofEa9bif0aoH8uIQ==} + '@restackio/integrations-websocket@0.0.12': + resolution: {integrity: sha512-6fWEjmpNGwo4qE+p2Mm/aGNjHMFvsFkddt/QA/cQMuASLRG9D1ohApfckpy/4zpyYkjNBJq/GWQnXbeJnFzskw==} '@restackio/restack-sdk-cloud-ts@1.0.5': resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} @@ -1655,7 +1655,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-deepgram@0.0.7(bufferutil@4.0.8)(encoding@0.1.12)': + '@restackio/integrations-deepgram@0.0.8(bufferutil@4.0.8)(encoding@0.1.12)': dependencies: '@deepgram/sdk': 3.6.0(bufferutil@4.0.8)(encoding@0.1.12) transitivePeerDependencies: @@ -1663,21 +1663,21 @@ snapshots: - encoding - utf-8-validate - '@restackio/integrations-openai@0.0.22(encoding@0.1.12)(zod@3.23.8)': + '@restackio/integrations-openai@0.0.3(encoding@0.1.12)(zod@3.23.8)': dependencies: openai: 4.61.0(encoding@0.1.12)(zod@3.23.8) transitivePeerDependencies: - encoding - zod - '@restackio/integrations-twilio@0.0.4': + '@restackio/integrations-twilio@0.0.5': dependencies: twilio: 5.3.0 transitivePeerDependencies: - debug - supports-color - '@restackio/integrations-websocket@0.0.11(bufferutil@4.0.8)': + '@restackio/integrations-websocket@0.0.12(bufferutil@4.0.8)': dependencies: ws: 8.18.0(bufferutil@4.0.8) transitivePeerDependencies: From caddf01197155b13d8015ac529fb5296c3657f1f Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Fri, 27 Sep 2024 10:11:54 +0200 Subject: [PATCH 071/122] consistent envs Former-commit-id: 1e745cfba599efc07a2780c9d8768e24a0b7a472 Former-commit-id: f73fe7c7f0bf267612b4bf352a86969b1df1dd66 --- examples/hello/.env.example | 6 +++--- examples/hello/restack_up.mjs | 13 +++++++------ examples/posthog/.env.example | 6 +++--- examples/voice/.env.example | 6 +++--- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/examples/hello/.env.example b/examples/hello/.env.example index 908cfe9..adccfc3 100644 --- a/examples/hello/.env.example +++ b/examples/hello/.env.example @@ -2,8 +2,8 @@ OPENAI_API_KEY= # Restack -RESTACK_ENGINE_ENV_ID= -RESTACK_ENGINE_ENV_ADDRESS= -RESTACK_ENGINE_ENV_API_KEY= +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= RESTACK_CLOUD_TOKEN= \ No newline at end of file diff --git a/examples/hello/restack_up.mjs b/examples/hello/restack_up.mjs index ed7b777..b1ba25b 100644 --- a/examples/hello/restack_up.mjs +++ b/examples/hello/restack_up.mjs @@ -1,20 +1,21 @@ import { RestackCloud } from "@restackio/restack-sdk-cloud-ts"; +import "dotenv/config"; const main = async () => { const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); const restackEngineEnvs = [ { - name: "RESTACK_ENGINE_ENV_ID", - value: process.env.RESTACK_ENGINE_ENV_ID, + name: "RESTACK_ENGINE_ID", + value: process.env.RESTACK_ENGINE_ID, }, { - name: "RESTACK_ENGINE_ENV_ADDRESS", - value: process.env.RESTACK_ENGINE_ENV_ADDRESS, + name: "RESTACK_ENGINE_ADDRESS", + value: process.env.RESTACK_ENGINE_ADDRESS, }, { - name: "RESTACK_ENGINE_ENV_API_KEY", - value: process.env.RESTACK_ENGINE_ENV_API_KEY, + name: "RESTACK_ENGINE_API_KEY", + value: process.env.RESTACK_ENGINE_API_KEY, }, ]; diff --git a/examples/posthog/.env.example b/examples/posthog/.env.example index 580ed92..33818e8 100644 --- a/examples/posthog/.env.example +++ b/examples/posthog/.env.example @@ -5,8 +5,8 @@ OPENAI_API_KEY= # Restack -RESTACK_ENGINE_ENV_ID= -RESTACK_ENGINE_ENV_ADDRESS= -RESTACK_ENGINE_ENV_API_KEY= +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= RESTACK_CLOUD_TOKEN= \ No newline at end of file diff --git a/examples/voice/.env.example b/examples/voice/.env.example index 13aabcf..1a7dcf9 100644 --- a/examples/voice/.env.example +++ b/examples/voice/.env.example @@ -15,8 +15,8 @@ YOUR_NUMBER= SERVER_HOST=5756-5-61-150-161.ngrok-free.app # Restack -RESTACK_ENGINE_ENV_ID= -RESTACK_ENGINE_ENV_ADDRESS= -RESTACK_ENGINE_ENV_API_KEY= +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= RESTACK_CLOUD_TOKEN= From ccda7f07e2f2f4b0562eaa69301e15ad5b020b40 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sat, 28 Sep 2024 13:27:45 +0200 Subject: [PATCH 072/122] Update readme.md Former-commit-id: 265a72df49720fe0ef122f744e4aba10cd640a13 Former-commit-id: 8e6ee4c15e011019d58335994a0ff56cb7d078bf --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 45aabfc..46a9eba 100644 --- a/readme.md +++ b/readme.md @@ -6,6 +6,10 @@ Restack Engine will run locally in the application # Alternative run Restack in Docker +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/local-operator:main + +or + docker compose up -d --build --pull always (will force repulling and rebuilding) From b119a2957604ab6d0d22c9fb02453108a5750ec4 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sat, 28 Sep 2024 14:36:06 +0200 Subject: [PATCH 073/122] fix workflow Former-commit-id: 17e90c3596c88811423055c6b6d8ab7dd0c566b2 Former-commit-id: 4f335e7b4bd9ea749f0261facca5c590cf327021 --- examples/posthog/package.json | 2 +- examples/posthog/pnpm-lock.yaml | 10 +++++----- examples/posthog/scheduleWorkflow.ts | 21 +++++++++++---------- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 44c6727..79295e4 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -17,7 +17,7 @@ "dependencies": { "@restackio/integrations-linear": "^0.0.3", "@restackio/integrations-openai": "^0.0.23", - "@restackio/restack-sdk-ts": "^0.0.66", + "@restackio/restack-sdk-ts": "^0.0.72", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", "typescript": "^5.6.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index 1a3728c..e1d188a 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.0.23 version: 0.0.23(zod@3.23.8) '@restackio/restack-sdk-ts': - specifier: ^0.0.66 - version: 0.0.66 + specifier: ^0.0.72 + version: 0.0.72 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -170,8 +170,8 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.66': - resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} + '@restackio/restack-sdk-ts@0.0.72': + resolution: {integrity: sha512-OSyZEGUGbZTFMDi8NdxxDgWkX/BkcKPN91NVBXFsmpRy9aIoXCBt7rCrQX+EMwknYic6zSdCnrgIlmPwFtUOvA==} engines: {node: '>=20'} '@swc/core-darwin-arm64@1.7.26': @@ -1324,7 +1324,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.66': + '@restackio/restack-sdk-ts@0.0.72': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 diff --git a/examples/posthog/scheduleWorkflow.ts b/examples/posthog/scheduleWorkflow.ts index 50c8d3d..60afd17 100644 --- a/examples/posthog/scheduleWorkflow.ts +++ b/examples/posthog/scheduleWorkflow.ts @@ -9,18 +9,19 @@ async function scheduleWorkflow() { input: { projectId: process.env.POSTHOG_PROJECT_ID, host: process.env.POSTHOG_HOST, - maxRecordings: 5, // Useful to limit cost when debugging locally. Comment out to run for all recordings - maxChunksPerRecordingBlob: 10, // Useful to limit cost when debugging locally. Comment out to process all chunks per recording + maxRecordings: 2, // Useful to limit cost when debugging locally. Comment out to run for all recordings + maxChunksPerRecordingBlob: 2, // Useful to limit cost when debugging locally. Comment out to process all chunks per recording linearTeamId: process.env.LINEAR_TEAM_ID, }, - schedule: { - calendars: [ - { - dayOfWeek: "*", - hour: 17, // Everyday at 5pm UTC = 10am PST - }, - ], - }, + // Uncomment to schedule workflow to run at a specific time + // schedule: { + // calendars: [ + // { + // dayOfWeek: "*", + // hour: 17, // Everyday at 5pm UTC = 10am PST + // }, + // ], + // }, }); console.log("Workflow scheduled successfully:", workflowRunId); From fae4d0823e53890d649303c3e637fba8f344e703 Mon Sep 17 00:00:00 2001 From: atapia Date: Thu, 3 Oct 2024 12:08:44 +0200 Subject: [PATCH 074/122] add getstarted example Former-commit-id: d20204cfff9890c4adad9c6a3475fad60fed080f Former-commit-id: e585a890920368c6a5f73f9a1f632b561f5e7e82 --- .gitignore | 3 +- examples/get-started/package.json | 30 +++++++++++++++++++ examples/get-started/readme.md | 25 ++++++++++++++++ examples/get-started/src/client.ts | 3 ++ .../get-started/src/functions/functions.ts | 7 +++++ examples/get-started/src/services.ts | 17 +++++++++++ .../get-started/src/workflows/workflow.ts | 14 +++++++++ examples/get-started/triggerWorkflow.ts | 16 ++++++++++ examples/get-started/tsconfig.json | 18 +++++++++++ 9 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 examples/get-started/package.json create mode 100644 examples/get-started/readme.md create mode 100644 examples/get-started/src/client.ts create mode 100644 examples/get-started/src/functions/functions.ts create mode 100644 examples/get-started/src/services.ts create mode 100644 examples/get-started/src/workflows/workflow.ts create mode 100644 examples/get-started/triggerWorkflow.ts create mode 100644 examples/get-started/tsconfig.json diff --git a/.gitignore b/.gitignore index 3319e05..00d9c71 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ dist .env .env* .npmrc -tsconfig.tsbuildinfo \ No newline at end of file +tsconfig.tsbuildinfo +.DS_Store \ No newline at end of file diff --git a/examples/get-started/package.json b/examples/get-started/package.json new file mode 100644 index 0000000..79caad5 --- /dev/null +++ b/examples/get-started/package.json @@ -0,0 +1,30 @@ +{ + "name": "sdk-example-ts", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "service": "ts-node src/services.ts", + "trigger": "ts-node ./triggerWorkflow.ts", + "start.watch": "nodemon --exec ts-node --esm src/services.ts", + "build": "tsc --build", + "clean": "rm -rf node_modules", + }, + "nodemonConfig": { + "ext": "ts", + "watch": [ + "src" + ] + }, + "dependencies": { + "@restackio/restack-sdk-ts": "^0.0.73", + "@temporalio/workflow": "^1.11.2" + }, + "devDependencies": { + "@restackio/restack-sdk-cloud-ts": "^1.0.15", + "@types/node": "^20.16.9", + "nodemon": "^2.0.22", + "ts-node": "^10.9.2", + "typescript": "^5.6.2" + } +} diff --git a/examples/get-started/readme.md b/examples/get-started/readme.md new file mode 100644 index 0000000..c15a136 --- /dev/null +++ b/examples/get-started/readme.md @@ -0,0 +1,25 @@ +# Run Restack in Docker + +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/local-operator:main + +# Open the Restack Desktop UI + +http://localhost:5233 + + +# Clone starter repo + +git clone https://github.com/restackio/starter-ts.git + +cd starter-ts + +# Install dependencies + +npm i + +# Publish your service +npm run service + +# Trigger the workflow + +npm run trigger \ No newline at end of file diff --git a/examples/get-started/src/client.ts b/examples/get-started/src/client.ts new file mode 100644 index 0000000..3352224 --- /dev/null +++ b/examples/get-started/src/client.ts @@ -0,0 +1,3 @@ +import Restack from "@restackio/restack-sdk-ts"; + +export const client = new Restack(); \ No newline at end of file diff --git a/examples/get-started/src/functions/functions.ts b/examples/get-started/src/functions/functions.ts new file mode 100644 index 0000000..ba11a84 --- /dev/null +++ b/examples/get-started/src/functions/functions.ts @@ -0,0 +1,7 @@ +export async function goodbye(name: String) { + return { message: `Goodbye, ${name}!` }; +}; + +export async function welcome(name: String) { + return { message: `Hello, ${name}!` }; +}; \ No newline at end of file diff --git a/examples/get-started/src/services.ts b/examples/get-started/src/services.ts new file mode 100644 index 0000000..e713e1c --- /dev/null +++ b/examples/get-started/src/services.ts @@ -0,0 +1,17 @@ +import { welcome, goodbye } from "./functions/functions"; +import { client } from "./client"; + + +async function services() { + + const workflowsPath = require.resolve("./workflows/workflow"); + + client.startService({ + workflowsPath, + functions: { welcome, goodbye } + }); + +}; + +services(); + diff --git a/examples/get-started/src/workflows/workflow.ts b/examples/get-started/src/workflows/workflow.ts new file mode 100644 index 0000000..d4825b8 --- /dev/null +++ b/examples/get-started/src/workflows/workflow.ts @@ -0,0 +1,14 @@ +import { welcome, goodbye } from "../functions/functions"; +import { log, step } from "@restackio/restack-sdk-ts/workflow"; + + +export async function greetingWorkflow(name: String) { + + const welcomeMessage = await step().welcome('human'); + log.info(welcomeMessage); + + const goodbyeMessage = await step().goodbye('human'); + log.info(goodbyeMessage); + +}; + diff --git a/examples/get-started/triggerWorkflow.ts b/examples/get-started/triggerWorkflow.ts new file mode 100644 index 0000000..2688e41 --- /dev/null +++ b/examples/get-started/triggerWorkflow.ts @@ -0,0 +1,16 @@ +import { client } from "./src/client"; + +async function triggerWorkflow() { + + const workflowId = `${Date.now()}-helloWorkflow`; + const runId = await client.scheduleWorkflow({ + workflowName: "greetingWorkflow", + workflowId, + }); + + const result = await client.getWorkflowResult({ workflowId, runId }); + process.exit(0); // Exit the process successfully + +}; + +triggerWorkflow(); \ No newline at end of file diff --git a/examples/get-started/tsconfig.json b/examples/get-started/tsconfig.json new file mode 100644 index 0000000..b1c84c5 --- /dev/null +++ b/examples/get-started/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "module": "commonjs", + "esModuleInterop": true, + "target": "ES2022", + "noImplicitAny": true, + "moduleResolution": "node", + "sourceMap": true, + "types": ["node"], + "outDir": "dist", + "baseUrl": ".", + "paths": { + "*": ["node_modules/*"] + } + }, + "exclude": ["node_modules"] + } + From ac8afccd863f13a586383279d215b49b9d92ab7c Mon Sep 17 00:00:00 2001 From: atapia Date: Thu, 3 Oct 2024 13:00:59 +0200 Subject: [PATCH 075/122] remove DS_store and update readme Former-commit-id: 09a2d581158ce9fe1958a81d0bcc38f4777c6870 Former-commit-id: ac705bc59fd8daa41ae0534869f4d396a42589c5 --- .DS_Store | Bin 6148 -> 0 bytes examples/get-started/readme.md | 13 +++++-------- 2 files changed, 5 insertions(+), 8 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index ec84f868e039d614a3188d4e0858a7179bff9d60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOHRWu5Pd_lsKkOwY*<=i4I(#4t8ju|0NNmsXq1SSy)VTTI0k3ojmMxyWC21# z2xcVvP3(F8JSnyZfGi%H5|{y)vM7o=Bc{!xT?aY1AW9nJ8f)C+3=M8Z2KtRny7pr{ zaJ^gXu)qE-cd|o=9_MWD(Qj_c<+^Ko-A3_p^z?aV+tu}I)2+y$knyxFpXXm;H{W3Q zcl)cp;IwY8fGgk%xB~xN0p8ha(?dhAT>)3X6?j)b&xgRGSY?cc>F8jUQUIbpqm$9s zTtYb^W0f%)vWF%{B^p(7iXld4d&qHB#%O4CNKQT^&-|9WNSdAFhZGK}483**T!Eni z6Z@R${eQ_{W;DqkQvAyma0ULD0#ek=dcjTQyY<8N^sWsoS1f887uBKBA3Os1q36g+ e>a_l#KI5v4(NIUx_CzQ8Lm&y_l`HTA3cLbL;67vk diff --git a/examples/get-started/readme.md b/examples/get-started/readme.md index c15a136..82eeac2 100644 --- a/examples/get-started/readme.md +++ b/examples/get-started/readme.md @@ -1,25 +1,22 @@ # Run Restack in Docker - docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/local-operator:main # Open the Restack Desktop UI - http://localhost:5233 - # Clone starter repo +git clone https://github.com/restackio/sdk-ts-examples/ -git clone https://github.com/restackio/starter-ts.git - -cd starter-ts +cd sdk-ts-examples/examples/get-started # Install dependencies - npm i # Publish your service npm run service # Trigger the workflow +npm run trigger -npm run trigger \ No newline at end of file +# Check the Desktop UI to see your workflow executed +http://localhost:5233 \ No newline at end of file From 4542468a84a88b161bab10ac170af46c5bca77fa Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Thu, 3 Oct 2024 13:52:00 +0200 Subject: [PATCH 076/122] Update readme.md edit readme Former-commit-id: 4ebe54ad28b2cbd2b53ea52ae5dfe72b7bf68118 Former-commit-id: 31627d63732a6a161fac409fb6749d56a2afd84c --- examples/get-started/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/get-started/readme.md b/examples/get-started/readme.md index 82eeac2..7742cde 100644 --- a/examples/get-started/readme.md +++ b/examples/get-started/readme.md @@ -1,7 +1,7 @@ # Run Restack in Docker docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/local-operator:main -# Open the Restack Desktop UI +# Open the development UI http://localhost:5233 # Clone starter repo @@ -18,5 +18,5 @@ npm run service # Trigger the workflow npm run trigger -# Check the Desktop UI to see your workflow executed -http://localhost:5233 \ No newline at end of file +# Check the development UI to see your workflow executed +http://localhost:5233 From 2d5497bd9d7bf16ce97ab1f9b6f74fa5f76fd4be Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Thu, 3 Oct 2024 13:52:50 +0200 Subject: [PATCH 077/122] Update readme.md Former-commit-id: 3f14702ee4e2e21639a86be211ae9cc44d8034c0 Former-commit-id: c6c6c022f2c8dc23be541e31abcd05cdde95cc37 --- examples/get-started/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/get-started/readme.md b/examples/get-started/readme.md index 7742cde..9ed0725 100644 --- a/examples/get-started/readme.md +++ b/examples/get-started/readme.md @@ -1,7 +1,7 @@ # Run Restack in Docker docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/local-operator:main -# Open the development UI +# Open the Desktop UI http://localhost:5233 # Clone starter repo @@ -18,5 +18,5 @@ npm run service # Trigger the workflow npm run trigger -# Check the development UI to see your workflow executed +# Check the Desktop UI to see your workflow executed http://localhost:5233 From 5a0ed43a1aa98db65c22374be78f84229783c64e Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Thu, 3 Oct 2024 15:48:39 +0200 Subject: [PATCH 078/122] Update and rename triggerWorkflow.ts to scheduleWorkflow.ts Former-commit-id: 172f4f5f28c22425a88bb82b1a0b2f9d9ad57668 Former-commit-id: c3012cd66e2b04856cffe42e860817c68de0d754 --- .../get-started/{triggerWorkflow.ts => scheduleWorkflow.ts} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename examples/get-started/{triggerWorkflow.ts => scheduleWorkflow.ts} (86%) diff --git a/examples/get-started/triggerWorkflow.ts b/examples/get-started/scheduleWorkflow.ts similarity index 86% rename from examples/get-started/triggerWorkflow.ts rename to examples/get-started/scheduleWorkflow.ts index 2688e41..5da6da5 100644 --- a/examples/get-started/triggerWorkflow.ts +++ b/examples/get-started/scheduleWorkflow.ts @@ -1,6 +1,6 @@ import { client } from "./src/client"; -async function triggerWorkflow() { +async function scheduleWorkflow() { const workflowId = `${Date.now()}-helloWorkflow`; const runId = await client.scheduleWorkflow({ @@ -13,4 +13,4 @@ async function triggerWorkflow() { }; -triggerWorkflow(); \ No newline at end of file +scheduleWorkflow(); From 8e1d59c446afefe33082e95923ece417f20654ab Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Thu, 3 Oct 2024 15:49:11 +0200 Subject: [PATCH 079/122] Update scheduleWorkflow.ts Former-commit-id: 82de444f0f341fef17f3adf1d91858c0105ea51c Former-commit-id: 817509059f0bd907f7a05343b921aeed13d1cbb4 --- examples/get-started/scheduleWorkflow.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/get-started/scheduleWorkflow.ts b/examples/get-started/scheduleWorkflow.ts index 5da6da5..e23bb22 100644 --- a/examples/get-started/scheduleWorkflow.ts +++ b/examples/get-started/scheduleWorkflow.ts @@ -2,7 +2,7 @@ import { client } from "./src/client"; async function scheduleWorkflow() { - const workflowId = `${Date.now()}-helloWorkflow`; + const workflowId = `${Date.now()}-greetingWorkflow`; const runId = await client.scheduleWorkflow({ workflowName: "greetingWorkflow", workflowId, From 66bc98ff9e17d5f170bad0d7bb5e112b779a0126 Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Thu, 3 Oct 2024 16:50:09 +0200 Subject: [PATCH 080/122] Update package.json Former-commit-id: 112937db639ad318f7769270c0c4bee6d6d119e6 Former-commit-id: a49b4b6753c6e3b8332788f390af1027573ae977 --- examples/get-started/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 79caad5..4bad4fd 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -8,7 +8,7 @@ "trigger": "ts-node ./triggerWorkflow.ts", "start.watch": "nodemon --exec ts-node --esm src/services.ts", "build": "tsc --build", - "clean": "rm -rf node_modules", + "clean": "rm -rf node_modules" }, "nodemonConfig": { "ext": "ts", From bf4115bf5d9456453193cc7c6e0860b02f165bc4 Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Thu, 3 Oct 2024 16:53:17 +0200 Subject: [PATCH 081/122] Update package.json Former-commit-id: 0f73d17f29bed44a06a33e70f13f120af0589788 Former-commit-id: e418b582a7fcc12d3c6ad27687496ec57496c9f3 --- examples/get-started/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 4bad4fd..43baa2c 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -5,7 +5,7 @@ "main": "index.js", "scripts": { "service": "ts-node src/services.ts", - "trigger": "ts-node ./triggerWorkflow.ts", + "schedule": "ts-node ./scheduleWorkflow.ts", "start.watch": "nodemon --exec ts-node --esm src/services.ts", "build": "tsc --build", "clean": "rm -rf node_modules" From 115c7c2511e5adc6273767e1d1c17a0aa682b322 Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Sun, 6 Oct 2024 14:08:25 +0200 Subject: [PATCH 082/122] Update readme.md Former-commit-id: 3d499299a8b77a42089935263dea76c74df3d9e3 Former-commit-id: cc688ad4eab522dcf23524b2d9664fcb7c210405 --- examples/get-started/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/get-started/readme.md b/examples/get-started/readme.md index 9ed0725..334ac21 100644 --- a/examples/get-started/readme.md +++ b/examples/get-started/readme.md @@ -15,8 +15,8 @@ npm i # Publish your service npm run service -# Trigger the workflow -npm run trigger +# Schedule the workflow +npm run schedule # Check the Desktop UI to see your workflow executed http://localhost:5233 From 26658551c967f50db42f8b8cc97bce2d16ab76ab Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Sun, 6 Oct 2024 14:09:05 +0200 Subject: [PATCH 083/122] Update readme.md Former-commit-id: 5bcacf85d1dff3cea22754feedbc27c5e5b1e003 Former-commit-id: 1c980effe2ccb414f0cac265c6bd6f869592c6e6 --- examples/get-started/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/get-started/readme.md b/examples/get-started/readme.md index 334ac21..23dcb88 100644 --- a/examples/get-started/readme.md +++ b/examples/get-started/readme.md @@ -12,7 +12,7 @@ cd sdk-ts-examples/examples/get-started # Install dependencies npm i -# Publish your service +# Run your service in the background npm run service # Schedule the workflow From 3765ae59885b4d9335043dbfc571a8c60f675dd2 Mon Sep 17 00:00:00 2001 From: aboutphilippe Date: Sun, 6 Oct 2024 18:18:12 +0200 Subject: [PATCH 084/122] move to ai sdk Former-commit-id: 6f32908b7bafa0b296753ce171ea19aa01a14b9a Former-commit-id: f7bcd66f1cefcddfadbc798800fc8b848fee495b --- examples/get-started/package.json | 2 +- examples/get-started/pnpm-lock.yaml | 1817 +++++++++++++++++ examples/get-started/src/client.ts | 4 +- .../get-started/src/workflows/workflow.ts | 12 +- examples/hello/package.json | 2 +- examples/hello/pnpm-lock.yaml | 309 +-- examples/hello/src/client.ts | 2 +- examples/hello/src/workflows/hello.ts | 2 +- examples/nextjs/next.config.mjs | 2 +- examples/nextjs/package.json | 2 +- examples/nextjs/pnpm-lock.yaml | 446 ++-- examples/nextjs/src/app/actions/trigger.ts | 2 +- examples/nextjs/src/app/page.tsx | 2 +- examples/posthog/package.json | 2 +- examples/posthog/pnpm-lock.yaml | 38 +- examples/posthog/src/client.ts | 2 +- .../posthog/sessionRecording/blobChunks.ts | 4 +- .../posthog/sessionRecording/recordings.ts | 2 +- .../posthog/sessionRecording/snapshotBlob.ts | 2 +- .../posthog/sessionRecording/snapshots.ts | 2 +- .../functions/utils/sendEventToWorkflow.ts | 4 +- examples/posthog/src/workflows/chunk.ts | 2 +- examples/posthog/src/workflows/digest.ts | 2 +- examples/posthog/src/workflows/recording.ts | 4 +- examples/voice/package.json | 2 +- examples/voice/pnpm-lock.yaml | 371 ++-- examples/voice/src/client.ts | 2 +- .../voice/src/functions/erp/checkInventory.ts | 2 +- .../voice/src/functions/erp/checkPrice.ts | 2 +- .../voice/src/functions/erp/placeOrder.ts | 2 +- .../functions/utils/sendEventToWorkflow.ts | 4 +- examples/voice/src/server.ts | 2 +- .../workflows/conversation/conversation.ts | 9 +- .../src/workflows/conversation/events.ts | 2 +- examples/voice/src/workflows/room/events.ts | 2 +- examples/voice/src/workflows/room/room.ts | 4 +- examples/voice/src/workflows/twilioCall.ts | 2 +- 37 files changed, 2392 insertions(+), 682 deletions(-) create mode 100644 examples/get-started/pnpm-lock.yaml diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 43baa2c..b0a57f4 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -17,7 +17,7 @@ ] }, "dependencies": { - "@restackio/restack-sdk-ts": "^0.0.73", + "@restackio/ai": "^0.0.75", "@temporalio/workflow": "^1.11.2" }, "devDependencies": { diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml new file mode 100644 index 0000000..6de0a4e --- /dev/null +++ b/examples/get-started/pnpm-lock.yaml @@ -0,0 +1,1817 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@restackio/ai': + specifier: ^0.0.75 + version: 0.0.75 + '@temporalio/workflow': + specifier: ^1.11.2 + version: 1.11.2 + devDependencies: + '@restackio/restack-sdk-cloud-ts': + specifier: ^1.0.15 + version: 1.0.16 + '@types/node': + specifier: ^20.16.9 + version: 20.16.10 + nodemon: + specifier: ^2.0.22 + version: 2.0.22 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.2) + typescript: + specifier: ^5.6.2 + version: 5.6.2 + +packages: + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@grpc/grpc-js@1.12.0': + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@restackio/ai@0.0.75': + resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + engines: {node: '>=20'} + + '@restackio/restack-sdk-cloud-ts@1.0.16': + resolution: {integrity: sha512-oIanzD6ym6c+hZ6eMJozTaIxGmMn1hPZRwogzz4v2hdd40IpdbwuHc98bPrHjswS1rZa+vjPjLbKoSuLlZloOQ==} + engines: {node: '>=18'} + + '@swc/core-darwin-arm64@1.7.26': + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.26': + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.26': + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.26': + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.26': + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.26': + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.26': + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.26': + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.26': + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.26': + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.26': + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + + '@temporalio/activity@1.11.2': + resolution: {integrity: sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==} + + '@temporalio/client@1.11.2': + resolution: {integrity: sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==} + + '@temporalio/common@1.11.2': + resolution: {integrity: sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==} + + '@temporalio/core-bridge@1.11.2': + resolution: {integrity: sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==} + + '@temporalio/proto@1.11.2': + resolution: {integrity: sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==} + + '@temporalio/worker@1.11.2': + resolution: {integrity: sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==} + engines: {node: '>= 16.0.0'} + + '@temporalio/workflow@1.11.2': + resolution: {integrity: sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@20.16.10': + resolution: {integrity: sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + hasBin: true + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + engines: {node: '>=10.0.0'} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + memfs@4.12.0: + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} + engines: {node: '>= 4.0.0'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + ms@3.0.0-canary.1: + resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} + engines: {node: '>=12.13'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nodemon@2.0.22: + resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} + engines: {node: '>=8.10.0'} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + simple-git@3.27.0: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + + simple-update-notifier@1.1.0: + resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} + engines: {node: '>=8.10.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-loader@4.0.2: + resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} + engines: {node: '>=10'} + hasBin: true + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + engines: {node: '>=14.17'} + hasBin: true + + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unionfs@4.5.4: + resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@grpc/grpc-js@1.12.0': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 + + '@jsonjoy.com/util@1.5.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@restackio/ai@0.0.75': + dependencies: + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/worker': 1.11.2 + '@temporalio/workflow': 1.11.2 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@restackio/restack-sdk-cloud-ts@1.0.16': + dependencies: + chalk: 4.1.2 + dotenv: 16.4.5 + open: 10.1.0 + simple-git: 3.27.0 + yup: 1.4.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + + '@swc/core-darwin-arm64@1.7.26': + optional: true + + '@swc/core-darwin-x64@1.7.26': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.26': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.26': + optional: true + + '@swc/core-linux-arm64-musl@1.7.26': + optional: true + + '@swc/core-linux-x64-gnu@1.7.26': + optional: true + + '@swc/core-linux-x64-musl@1.7.26': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.26': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.26': + optional: true + + '@swc/core-win32-x64-msvc@1.7.26': + optional: true + + '@swc/core@1.7.26': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.12': + dependencies: + '@swc/counter': 0.1.3 + + '@temporalio/activity@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + abort-controller: 3.0.0 + + '@temporalio/client@1.11.2': + dependencies: + '@grpc/grpc-js': 1.12.0 + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/common@1.11.2': + dependencies: + '@temporalio/proto': 1.11.2 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/proto@1.11.2': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/worker@1.11.2': + dependencies: + '@swc/core': 1.7.26 + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/common': 1.11.2 + '@temporalio/core-bridge': 1.11.2 + '@temporalio/proto': 1.11.2 + '@temporalio/workflow': 1.11.2 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.12.0 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + unionfs: 4.5.4 + webpack: 5.95.0(@swc/core@1.7.26) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/workflow@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@20.16.10': + dependencies: + undici-types: 6.19.8 + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + arg@5.0.2: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + + buffer-from@1.1.2: {} + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + caniuse-lite@1.0.30001667: {} + + cargo-cp-artifact@0.1.9: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrome-trace-event@1.0.4: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + create-require@1.1.1: {} + + debug@3.2.7(supports-color@5.5.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + define-lazy-prop@3.0.0: {} + + diff@4.0.2: {} + + dotenv@16.4.5: {} + + electron-to-chromium@1.5.32: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-module-lexer@1.5.4: {} + + escalade@3.2.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + fs-monkey@1.0.6: {} + + fsevents@2.3.3: + optional: true + + get-caller-file@2.0.5: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + graceful-fs@4.2.11: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + heap-js@2.5.0: {} + + hyperdyperid@1.2.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore-by-default@1.0.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-number@7.0.0: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isexe@3.1.1: {} + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.16.10 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + loader-runner@4.3.0: {} + + lodash.camelcase@4.3.0: {} + + long@5.2.3: {} + + make-error@1.3.6: {} + + memfs@4.12.0: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + merge-stream@2.0.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + ms@2.1.3: {} + + ms@3.0.0-canary.1: {} + + neo-async@2.6.2: {} + + node-releases@2.0.18: {} + + nodemon@2.0.22: + dependencies: + chokidar: 3.6.0 + debug: 3.2.7(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 5.7.2 + simple-update-notifier: 1.1.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + + normalize-path@3.0.0: {} + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + property-expr@2.0.6: {} + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.4.0 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.16.10 + long: 5.2.3 + + pstree.remy@1.1.8: {} + + punycode@2.3.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + require-directory@2.1.1: {} + + run-applescript@7.0.0: {} + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + semver@5.7.2: {} + + semver@7.0.0: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + simple-git@3.27.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + simple-update-notifier@1.1.0: + dependencies: + semver: 7.0.0 + + source-map-js@1.2.1: {} + + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.95.0(@swc/core@1.7.26) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + '@swc/core': 1.7.26 + '@swc/counter': 0.1.3 + webpack: 5.95.0(@swc/core@1.7.26) + + tapable@2.2.1: {} + + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.34.1 + webpack: 5.95.0(@swc/core@1.7.26) + optionalDependencies: + '@swc/core': 1.7.26 + + terser@5.34.1: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + thingies@1.21.0(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + tiny-case@1.0.3: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toposort@2.0.2: {} + + touch@3.1.1: {} + + tree-dump@1.0.2(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.16.10 + acorn: 8.12.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.26 + + tslib@2.7.0: {} + + type-fest@2.19.0: {} + + typescript@5.6.2: {} + + undefsafe@2.0.5: {} + + undici-types@6.19.8: {} + + unionfs@4.5.4: + dependencies: + fs-monkey: 1.0.6 + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webpack-sources@3.2.3: {} + + webpack@5.95.0(@swc/core@1.7.26): + dependencies: + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.24.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yn@3.1.1: {} + + yup@1.4.0: + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + + zod@3.23.8: {} diff --git a/examples/get-started/src/client.ts b/examples/get-started/src/client.ts index 3352224..2808392 100644 --- a/examples/get-started/src/client.ts +++ b/examples/get-started/src/client.ts @@ -1,3 +1,3 @@ -import Restack from "@restackio/restack-sdk-ts"; +import Restack from "@restackio/ai"; -export const client = new Restack(); \ No newline at end of file +export const client = new Restack(); diff --git a/examples/get-started/src/workflows/workflow.ts b/examples/get-started/src/workflows/workflow.ts index d4825b8..4855ec1 100644 --- a/examples/get-started/src/workflows/workflow.ts +++ b/examples/get-started/src/workflows/workflow.ts @@ -1,14 +1,10 @@ import { welcome, goodbye } from "../functions/functions"; -import { log, step } from "@restackio/restack-sdk-ts/workflow"; - +import { log, step } from "@restackio/ai/workflow"; export async function greetingWorkflow(name: String) { - - const welcomeMessage = await step().welcome('human'); + const welcomeMessage = await step().welcome("human"); log.info(welcomeMessage); - const goodbyeMessage = await step().goodbye('human'); + const goodbyeMessage = await step().goodbye("human"); log.info(goodbyeMessage); - -}; - +} diff --git a/examples/hello/package.json b/examples/hello/package.json index 8c1fd0d..f3b729a 100644 --- a/examples/hello/package.json +++ b/examples/hello/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "@restackio/integrations-openai": "^0.0.23", - "@restackio/restack-sdk-ts": "^0.0.66", + "@restackio/ai": "^0.0.75", "@temporalio/workflow": "^1.11.2", "dotenv": "^16.4.5", "zod": "^3.23.8", diff --git a/examples/hello/pnpm-lock.yaml b/examples/hello/pnpm-lock.yaml index a3c988c..663b4c8 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/hello/pnpm-lock.yaml @@ -8,12 +8,12 @@ importers: .: dependencies: + '@restackio/ai': + specifier: ^0.0.75 + version: 0.0.75 '@restackio/integrations-openai': specifier: ^0.0.23 version: 0.0.23(zod@3.23.8) - '@restackio/restack-sdk-ts': - specifier: ^0.0.66 - version: 0.0.66 '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.2 @@ -28,21 +28,21 @@ importers: version: 3.23.3(zod@3.23.8) devDependencies: '@restackio/restack-sdk-cloud-ts': - specifier: ^1.0.15 - version: 1.0.15 + specifier: ^1.0.16 + version: 1.0.16 '@types/node': - specifier: ^20.16.9 - version: 20.16.9 + specifier: ^20.16.10 + version: 20.16.10 nodemon: specifier: ^2.0.22 version: 2.0.22 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.28)(@types/node@20.16.9)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.5.4) integrations/openai: dependencies: - '@restackio/restack-sdk-ts': + '@restackio/ai': specifier: ^0.0.40 version: 0.0.40 '@temporalio/worker': @@ -78,8 +78,8 @@ packages: resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} engines: {node: '>=12.10.0'} - '@grpc/grpc-js@1.11.3': - resolution: {integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==} + '@grpc/grpc-js@1.12.0': + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -132,6 +132,12 @@ packages: peerDependencies: tslib: '2' + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@kwsites/file-exists@1.1.1': resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} @@ -168,21 +174,21 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/integrations-openai@0.0.23': - resolution: {integrity: sha512-cTKk3mirbn25i4S/wG5b0o6gAoiPojkHptIP0q/C0aTLysm/Ps0daL4cVY/Q0hXmKfXLQ9+rxHkJOLS5zhMYrw==} - - '@restackio/restack-sdk-cloud-ts@1.0.15': - resolution: {integrity: sha512-urTGjAPUchi2tUWtDkn9xEKWXaDkH8iPXQJR9//0ZDUsiMgVBu11d/DXZhTngjMiv/nu1Z9WJ8rqWcOlQ4K3VA==} - engines: {node: '>=18'} - - '@restackio/restack-sdk-ts@0.0.40': + '@restackio/ai@0.0.40': resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.66': - resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} + '@restackio/ai@0.0.75': + resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} engines: {node: '>=20'} + '@restackio/integrations-openai@0.0.23': + resolution: {integrity: sha512-cTKk3mirbn25i4S/wG5b0o6gAoiPojkHptIP0q/C0aTLysm/Ps0daL4cVY/Q0hXmKfXLQ9+rxHkJOLS5zhMYrw==} + + '@restackio/restack-sdk-cloud-ts@1.0.16': + resolution: {integrity: sha512-oIanzD6ym6c+hZ6eMJozTaIxGmMn1hPZRwogzz4v2hdd40IpdbwuHc98bPrHjswS1rZa+vjPjLbKoSuLlZloOQ==} + engines: {node: '>=18'} + '@swc/core-darwin-arm64@1.7.2': resolution: {integrity: sha512-Zb8KiGaESzOgh5HBnp6Vhs2fRpngHIT81JOfIo0oaGlzAckamnG7UAXC/yK6cQ8q2KXc78utJ/yq/NM2yVKLqw==} engines: {node: '>=10'} @@ -195,12 +201,6 @@ packages: cpu: [arm64] os: [darwin] - '@swc/core-darwin-arm64@1.7.28': - resolution: {integrity: sha512-BNkj6enHo2pdzOpCtQGKZbXT2A/qWIr0CVtbTM4WkJ3MCK/glbFsyO6X59p1r8+gfaZG4bWYnTTu+RuUAcsL5g==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - '@swc/core-darwin-x64@1.7.2': resolution: {integrity: sha512-qb0HY9GEexpPm46Hb3OY7E6xb4r+eniiThm+0Gcnhf19EZV2ZlsCC8Rdbhmav33x++ZqSDzZ44fxMY2vnN5VDg==} engines: {node: '>=10'} @@ -213,12 +213,6 @@ packages: cpu: [x64] os: [darwin] - '@swc/core-darwin-x64@1.7.28': - resolution: {integrity: sha512-96zQ+X5Fd6P/RNPkOyikTJgEc2M4TzznfYvjRd2hye5h22jhxCLL/csoauDgN7lYfd7mwsZ/sVXwJTMKl+vZSA==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.2': resolution: {integrity: sha512-x2+MOK3RzH3yEkaukKtpDW/udM1x9GoYtXaLNqlq6ovAzZPQ9FDFI0pm1asL4akHUw3s7YTh1aUY7QscstJAHQ==} engines: {node: '>=10'} @@ -231,12 +225,6 @@ packages: cpu: [arm] os: [linux] - '@swc/core-linux-arm-gnueabihf@1.7.28': - resolution: {integrity: sha512-l2100Wx6LdXMOmOW3+KoHhBhyZrGdz8ylkygcVOC0QHp6YIATfuG+rRHksfyEWCSOdL3anM9MJZJX26KT/s+XQ==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - '@swc/core-linux-arm64-gnu@1.7.2': resolution: {integrity: sha512-4J3HGEDus7a9xnrJUFGyJJgvj4w+BFGiZvs08xbw4Z1ZN4uHJQiJiDsQEAWWciKUxrOndP3SocUq/GhEGiDm0g==} engines: {node: '>=10'} @@ -249,12 +237,6 @@ packages: cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.28': - resolution: {integrity: sha512-03m6iQ5Bv9u2VPnNRyaBmE8eHi056eE39L0gXcqGoo46GAGuoqYHt9pDz8wS6EgoN4t85iBMUZrkCNqFKkN6ZQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - '@swc/core-linux-arm64-musl@1.7.2': resolution: {integrity: sha512-4FhQmYbj8SCmir4pHRLSn8IIFmRKHTL3eZFtOpm26RLME7rXL7Yt33DpzIeTRoHFIesI5NEfaR38WU5mY7P1pA==} engines: {node: '>=10'} @@ -267,12 +249,6 @@ packages: cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.28': - resolution: {integrity: sha512-vqVOpG/jc8mvTKQjaPBLhr7tnWyzuztOHsPnJqMWmg7zGcMeQC/2c5pU4uzRAfXMTp25iId6s4Y4wWfPS1EeDw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - '@swc/core-linux-x64-gnu@1.7.2': resolution: {integrity: sha512-Loz10Hy6z5mBIAOe6OInOVsYu+PVxyknCB3thtr7QH+uqEz6dcXhU2ERrO2Lf4dsTsFs/Wb80rv8zTSwB8dpsw==} engines: {node: '>=10'} @@ -285,12 +261,6 @@ packages: cpu: [x64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.28': - resolution: {integrity: sha512-HGwpWuB83Kr+V0E+zT5UwIIY9OxiS8aLd0UVMRVWuO8SrQyKm9HKJ46+zoAb8tfJrpZftfxvbn2ayZWR7gqosA==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - '@swc/core-linux-x64-musl@1.7.2': resolution: {integrity: sha512-8p8qNWaLcTa+qHX4NSv1KNm8BQ6zPoLXuOBo9DtOEqc+K60IISGKPCAS7TJlCcv0q20JnmxZ/cEWW5Qo4TR4XQ==} engines: {node: '>=10'} @@ -303,12 +273,6 @@ packages: cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.28': - resolution: {integrity: sha512-q2Y2T8y8EgFtIiRyInnAXNe94aaHX74F0ha1Bl9VdRxE0u1/So+3VLbPvtp4V3Z6pj5pOePfCQJKifnllgAQ9A==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - '@swc/core-win32-arm64-msvc@1.7.2': resolution: {integrity: sha512-eNWAYOalBlFrhv/IVSQ1dxu7qIGuhxlUJZTYa8jsgLnKt93vAFd2cjLtKZ85k1OibBnq9PkKQyo4NKVr4hBavw==} engines: {node: '>=10'} @@ -321,12 +285,6 @@ packages: cpu: [arm64] os: [win32] - '@swc/core-win32-arm64-msvc@1.7.28': - resolution: {integrity: sha512-bCqh4uBT/59h3dWK1v91In6qzz8rKoWoFRxCtNQLIK4jP55K0U231ZK9oN7neZD6bzcOUeFvOGgcyMAgDfFWfA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - '@swc/core-win32-ia32-msvc@1.7.2': resolution: {integrity: sha512-BbpaCPCnbQHCzpQ9yDH3qp1Y5Ijd0NSMNk4qqESN2WWx0ojV2uBTjPou5NC2MZxk8fM3iJpJ05enf+IeaXuh6A==} engines: {node: '>=10'} @@ -339,12 +297,6 @@ packages: cpu: [ia32] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.28': - resolution: {integrity: sha512-XTHbHrksnrqK3JSJ2sbuMWvdJ6/G0roRpgyVTmNDfhTYPOwcVaL/mSrPGLwbksYUbq7ckwoKzrobhdxvQzPsDA==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - '@swc/core-win32-x64-msvc@1.7.2': resolution: {integrity: sha512-21mf4Jg9Arx0lUnmRQtYd8IQB4WkY4LHJrvcz3EmKbwCTCXI5rQ6Ifnjk7EmG3Tizv0giHqQBQLu5NXWBz45Mg==} engines: {node: '>=10'} @@ -357,12 +309,6 @@ packages: cpu: [x64] os: [win32] - '@swc/core-win32-x64-msvc@1.7.28': - resolution: {integrity: sha512-jyXeoq6nX8abiCy2EpporsC5ywNENs4ocYuvxo1LSxDktWN1E2MTXq3cdJcEWB2Vydxq0rDcsGyzkRPMzFhkZw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - '@swc/core@1.7.2': resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} engines: {node: '>=10'} @@ -381,15 +327,6 @@ packages: '@swc/helpers': optional: true - '@swc/core@1.7.28': - resolution: {integrity: sha512-XapcMgsOS0cKh01AFEj+qXOk6KM4NZhp7a5vPicdhkRR8RzvjrCa7DTtijMxfotU8bqaEHguxmiIag2HUlT8QQ==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': '*' - peerDependenciesMeta: - '@swc/helpers': - optional: true - '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -470,11 +407,11 @@ packages: '@types/node@18.19.42': resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} - '@types/node@18.19.53': - resolution: {integrity: sha512-GLxgUgHhDKO1Edw9Q0lvMbiO/IQXJwJlMaqxSGBXMpPy8uhkCs2iiPFaB2Q/gmobnFkckD3rqTBMVjXdwq+nKg==} + '@types/node@18.19.54': + resolution: {integrity: sha512-+BRgt0G5gYjTvdLac9sIeE0iZcJxi4Jc4PV5EUzqi+88jmQLr+fRZdv2tCTV7IHKSGxM6SaLoOXQWWUiLUItMw==} - '@types/node@20.16.9': - resolution: {integrity: sha512-rkvIVJxsOfBejxK7I0FO5sa2WxFmJCzoDwcd88+fq/CUfynNywTo/1/T6hyFz22CyztsnLS9nVlHOnTI36RH5w==} + '@types/node@20.16.10': + resolution: {integrity: sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -616,8 +553,8 @@ packages: caniuse-lite@1.0.30001660: resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} - caniuse-lite@1.0.30001664: - resolution: {integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -703,8 +640,8 @@ packages: electron-to-chromium@1.5.20: resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} - electron-to-chromium@1.5.29: - resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==} + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -944,8 +881,8 @@ packages: zod: optional: true - openai@4.64.0: - resolution: {integrity: sha512-+o4vDKn2xzNMeR71rFMCPLr2penpwoALgRoJyIboIBOlkKjw+SoRiBOlO9ss1diXM4Elv01L/iliyr2oqY/l+A==} + openai@4.67.1: + resolution: {integrity: sha512-2YbRFy6qaYRJabK2zLMn4txrB2xBy0KP5g/eoqeSPTT31mIJMnkT75toagvfE555IKa2RdrzJrZwdDsUipsAMw==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -1096,8 +1033,8 @@ packages: engines: {node: '>=10'} hasBin: true - terser@5.34.0: - resolution: {integrity: sha512-y5NUX+U9HhVsK/zihZwoq4r9dICLyV2jXGOriDAVOeKhq3LKVjgJbGO90FisozXLlJfvjHqgckGmJFBb9KYoWQ==} + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} engines: {node: '>=10'} hasBin: true @@ -1179,6 +1116,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1274,7 +1217,7 @@ snapshots: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 - '@grpc/grpc-js@1.11.3': + '@grpc/grpc-js@1.12.0': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -1322,7 +1265,7 @@ snapshots: '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) - '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) hyperdyperid: 1.2.0 thingies: 1.21.0(tslib@2.7.0) tslib: 2.7.0 @@ -1331,6 +1274,10 @@ snapshots: dependencies: tslib: 2.7.0 + '@jsonjoy.com/util@1.5.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + '@kwsites/file-exists@1.1.1': dependencies: debug: 4.3.7 @@ -1362,25 +1309,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/integrations-openai@0.0.23(zod@3.23.8)': - dependencies: - openai: 4.64.0(zod@3.23.8) - transitivePeerDependencies: - - encoding - - zod - - '@restackio/restack-sdk-cloud-ts@1.0.15': - dependencies: - chalk: 4.1.2 - dotenv: 16.4.5 - open: 10.1.0 - simple-git: 3.27.0 - yup: 1.4.0 - zod: 3.23.8 - transitivePeerDependencies: - - supports-color - - '@restackio/restack-sdk-ts@0.0.40': + '@restackio/ai@0.0.40': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 @@ -1392,7 +1321,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-ts@0.0.66': + '@restackio/ai@0.0.75': dependencies: '@temporalio/activity': 1.11.2 '@temporalio/client': 1.11.2 @@ -1404,96 +1333,84 @@ snapshots: - uglify-js - webpack-cli + '@restackio/integrations-openai@0.0.23(zod@3.23.8)': + dependencies: + openai: 4.67.1(zod@3.23.8) + transitivePeerDependencies: + - encoding + - zod + + '@restackio/restack-sdk-cloud-ts@1.0.16': + dependencies: + chalk: 4.1.2 + dotenv: 16.4.5 + open: 10.1.0 + simple-git: 3.27.0 + yup: 1.4.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + '@swc/core-darwin-arm64@1.7.2': optional: true '@swc/core-darwin-arm64@1.7.26': optional: true - '@swc/core-darwin-arm64@1.7.28': - optional: true - '@swc/core-darwin-x64@1.7.2': optional: true '@swc/core-darwin-x64@1.7.26': optional: true - '@swc/core-darwin-x64@1.7.28': - optional: true - '@swc/core-linux-arm-gnueabihf@1.7.2': optional: true '@swc/core-linux-arm-gnueabihf@1.7.26': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.28': - optional: true - '@swc/core-linux-arm64-gnu@1.7.2': optional: true '@swc/core-linux-arm64-gnu@1.7.26': optional: true - '@swc/core-linux-arm64-gnu@1.7.28': - optional: true - '@swc/core-linux-arm64-musl@1.7.2': optional: true '@swc/core-linux-arm64-musl@1.7.26': optional: true - '@swc/core-linux-arm64-musl@1.7.28': - optional: true - '@swc/core-linux-x64-gnu@1.7.2': optional: true '@swc/core-linux-x64-gnu@1.7.26': optional: true - '@swc/core-linux-x64-gnu@1.7.28': - optional: true - '@swc/core-linux-x64-musl@1.7.2': optional: true '@swc/core-linux-x64-musl@1.7.26': optional: true - '@swc/core-linux-x64-musl@1.7.28': - optional: true - '@swc/core-win32-arm64-msvc@1.7.2': optional: true '@swc/core-win32-arm64-msvc@1.7.26': optional: true - '@swc/core-win32-arm64-msvc@1.7.28': - optional: true - '@swc/core-win32-ia32-msvc@1.7.2': optional: true '@swc/core-win32-ia32-msvc@1.7.26': optional: true - '@swc/core-win32-ia32-msvc@1.7.28': - optional: true - '@swc/core-win32-x64-msvc@1.7.2': optional: true '@swc/core-win32-x64-msvc@1.7.26': optional: true - '@swc/core-win32-x64-msvc@1.7.28': - optional: true - '@swc/core@1.7.2': dependencies: '@swc/counter': 0.1.3 @@ -1527,22 +1444,6 @@ snapshots: '@swc/core-win32-ia32-msvc': 1.7.26 '@swc/core-win32-x64-msvc': 1.7.26 - '@swc/core@1.7.28': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 - optionalDependencies: - '@swc/core-darwin-arm64': 1.7.28 - '@swc/core-darwin-x64': 1.7.28 - '@swc/core-linux-arm-gnueabihf': 1.7.28 - '@swc/core-linux-arm64-gnu': 1.7.28 - '@swc/core-linux-arm64-musl': 1.7.28 - '@swc/core-linux-x64-gnu': 1.7.28 - '@swc/core-linux-x64-musl': 1.7.28 - '@swc/core-win32-arm64-msvc': 1.7.28 - '@swc/core-win32-ia32-msvc': 1.7.28 - '@swc/core-win32-x64-msvc': 1.7.28 - '@swc/counter@0.1.3': {} '@swc/types@0.1.12': @@ -1570,7 +1471,7 @@ snapshots: '@temporalio/client@1.11.2': dependencies: - '@grpc/grpc-js': 1.11.3 + '@grpc/grpc-js': 1.12.0 '@temporalio/common': 1.11.2 '@temporalio/proto': 1.11.2 abort-controller: 3.0.0 @@ -1642,7 +1543,7 @@ snapshots: '@temporalio/worker@1.11.2': dependencies: - '@swc/core': 1.7.28 + '@swc/core': 1.7.26 '@temporalio/activity': 1.11.2 '@temporalio/client': 1.11.2 '@temporalio/common': 1.11.2 @@ -1654,11 +1555,11 @@ snapshots: memfs: 4.12.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.28)) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)) + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) unionfs: 4.5.4 - webpack: 5.95.0(@swc/core@1.7.28) + webpack: 5.95.0(@swc/core@1.7.26) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1691,7 +1592,7 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.10 form-data: 4.0.0 '@types/node@14.18.63': {} @@ -1700,11 +1601,11 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@18.19.53': + '@types/node@18.19.54': dependencies: undici-types: 5.26.5 - '@types/node@20.16.9': + '@types/node@20.16.10': dependencies: undici-types: 6.19.8 @@ -1860,10 +1761,10 @@ snapshots: browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001664 - electron-to-chromium: 1.5.29 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.24.0) + update-browserslist-db: 1.1.1(browserslist@4.24.0) buffer-from@1.1.2: {} @@ -1873,7 +1774,7 @@ snapshots: caniuse-lite@1.0.30001660: {} - caniuse-lite@1.0.30001664: {} + caniuse-lite@1.0.30001667: {} cargo-cp-artifact@0.1.9: {} @@ -1945,7 +1846,7 @@ snapshots: electron-to-chromium@1.5.20: {} - electron-to-chromium@1.5.29: {} + electron-to-chromium@1.5.32: {} emoji-regex@8.0.0: {} @@ -2057,7 +1958,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.10 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2083,7 +1984,7 @@ snapshots: memfs@4.12.0: dependencies: '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) - '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) tree-dump: 1.0.2(tslib@2.7.0) tslib: 2.7.0 @@ -2149,9 +2050,9 @@ snapshots: transitivePeerDependencies: - encoding - openai@4.64.0(zod@3.23.8): + openai@4.67.1(zod@3.23.8): dependencies: - '@types/node': 18.19.53 + '@types/node': 18.19.54 '@types/node-fetch': 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -2185,7 +2086,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.16.9 + '@types/node': 20.16.10 long: 5.2.3 pstree.remy@1.1.8: {} @@ -2246,11 +2147,11 @@ snapshots: source-map-js: 1.2.1 webpack: 5.94.0(@swc/core@1.7.26) - source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.28)): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.7.28) + webpack: 5.95.0(@swc/core@1.7.26) source-map-support@0.5.21: dependencies: @@ -2289,11 +2190,11 @@ snapshots: '@swc/counter': 0.1.3 webpack: 5.94.0(@swc/core@1.7.26) - swc-loader@0.2.6(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)): + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): dependencies: - '@swc/core': 1.7.28 + '@swc/core': 1.7.26 '@swc/counter': 0.1.3 - webpack: 5.95.0(@swc/core@1.7.28) + webpack: 5.95.0(@swc/core@1.7.26) tapable@2.2.1: {} @@ -2308,16 +2209,16 @@ snapshots: optionalDependencies: '@swc/core': 1.7.26 - terser-webpack-plugin@5.3.10(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.34.0 - webpack: 5.95.0(@swc/core@1.7.28) + terser: 5.34.1 + webpack: 5.95.0(@swc/core@1.7.26) optionalDependencies: - '@swc/core': 1.7.28 + '@swc/core': 1.7.26 terser@5.32.0: dependencies: @@ -2326,7 +2227,7 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - terser@5.34.0: + terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -2373,14 +2274,14 @@ snapshots: optionalDependencies: '@swc/core': 1.7.2 - ts-node@10.9.2(@swc/core@1.7.28)(@types/node@20.16.9)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.16.9 + '@types/node': 20.16.10 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2391,7 +2292,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.28 + '@swc/core': 1.7.26 tslib@2.7.0: {} @@ -2417,7 +2318,7 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.0 - update-browserslist-db@1.1.0(browserslist@4.24.0): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: browserslist: 4.24.0 escalade: 3.2.0 @@ -2472,7 +2373,7 @@ snapshots: - esbuild - uglify-js - webpack@5.95.0(@swc/core@1.7.28): + webpack@5.95.0(@swc/core@1.7.26): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -2494,7 +2395,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.28)(webpack@5.95.0(@swc/core@1.7.28)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/examples/hello/src/client.ts b/examples/hello/src/client.ts index fcd89b0..b990acd 100644 --- a/examples/hello/src/client.ts +++ b/examples/hello/src/client.ts @@ -1,4 +1,4 @@ -import Restack from "@restackio/restack-sdk-ts"; +import Restack from "@restackio/ai"; import "dotenv/config"; diff --git a/examples/hello/src/workflows/hello.ts b/examples/hello/src/workflows/hello.ts index aa3af4c..747adb2 100644 --- a/examples/hello/src/workflows/hello.ts +++ b/examples/hello/src/workflows/hello.ts @@ -1,4 +1,4 @@ -import { log, step } from "@restackio/restack-sdk-ts/workflow"; +import { log, step } from "@restackio/ai/workflow"; import * as functions from "../functions"; import { z } from "zod"; import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; diff --git a/examples/nextjs/next.config.mjs b/examples/nextjs/next.config.mjs index 2b8bb87..e6b8205 100644 --- a/examples/nextjs/next.config.mjs +++ b/examples/nextjs/next.config.mjs @@ -1,7 +1,7 @@ /** @type {import('next').NextConfig} */ const nextConfig = { experimental: { - serverComponentsExternalPackages: ['@restackio/restack-sdk-ts'], + serverComponentsExternalPackages: ['@restackio/ai'], }, } export default nextConfig; diff --git a/examples/nextjs/package.json b/examples/nextjs/package.json index d621303..cf15bda 100644 --- a/examples/nextjs/package.json +++ b/examples/nextjs/package.json @@ -10,7 +10,7 @@ "clean": "rm -rf node_modules" }, "dependencies": { - "@restackio/restack-sdk-ts": "^0.0.66", + "@restackio/ai": "^0.0.75", "next": "14.2.13", "react": "^18", "react-dom": "^18" diff --git a/examples/nextjs/pnpm-lock.yaml b/examples/nextjs/pnpm-lock.yaml index 637efb0..aac6b0c 100644 --- a/examples/nextjs/pnpm-lock.yaml +++ b/examples/nextjs/pnpm-lock.yaml @@ -8,42 +8,42 @@ importers: .: dependencies: - '@restackio/restack-sdk-ts': - specifier: ^0.0.66 - version: 0.0.66(@swc/helpers@0.5.11) + '@restackio/ai': + specifier: ^0.0.75 + version: 0.0.75(@swc/helpers@0.5.11) next: specifier: 14.2.13 version: 14.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: ^18 + specifier: ^18.3.1 version: 18.3.1 react-dom: - specifier: ^18 + specifier: ^18.3.1 version: 18.3.1(react@18.3.1) devDependencies: '@types/node': - specifier: ^20 - version: 20.16.7 + specifier: ^20.16.10 + version: 20.16.10 '@types/react': - specifier: ^18 - version: 18.3.9 + specifier: ^18.3.11 + version: 18.3.11 '@types/react-dom': - specifier: ^18 + specifier: ^18.3.0 version: 18.3.0 eslint: - specifier: ^8 + specifier: ^8.57.1 version: 8.57.1 eslint-config-next: specifier: 14.2.13 version: 14.2.13(eslint@8.57.1)(typescript@5.6.2) postcss: - specifier: ^8 + specifier: ^8.4.47 version: 8.4.47 tailwindcss: - specifier: ^3.4.1 + specifier: ^3.4.13 version: 3.4.13 typescript: - specifier: ^5 + specifier: ^5.6.2 version: 5.6.2 packages: @@ -70,8 +70,8 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@grpc/grpc-js@1.11.3': - resolution: {integrity: sha512-i9UraDzFHMR+Iz/MhFLljT+fCpgxZ3O6CxwGJ8YuNYHJItIHUzKJpW2LvoFZNnGPwqc9iWy9RAucxV0JoR9aUQ==} + '@grpc/grpc-js@1.12.0': + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -132,8 +132,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.3.0': - resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -248,8 +248,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/restack-sdk-ts@0.0.66': - resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} + '@restackio/ai@0.0.75': + resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} engines: {node: '>=20'} '@rtsao/scc@1.1.0': @@ -258,68 +258,68 @@ packages: '@rushstack/eslint-patch@1.10.4': resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} - '@swc/core-darwin-arm64@1.7.28': - resolution: {integrity: sha512-BNkj6enHo2pdzOpCtQGKZbXT2A/qWIr0CVtbTM4WkJ3MCK/glbFsyO6X59p1r8+gfaZG4bWYnTTu+RuUAcsL5g==} + '@swc/core-darwin-arm64@1.7.26': + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.28': - resolution: {integrity: sha512-96zQ+X5Fd6P/RNPkOyikTJgEc2M4TzznfYvjRd2hye5h22jhxCLL/csoauDgN7lYfd7mwsZ/sVXwJTMKl+vZSA==} + '@swc/core-darwin-x64@1.7.26': + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.28': - resolution: {integrity: sha512-l2100Wx6LdXMOmOW3+KoHhBhyZrGdz8ylkygcVOC0QHp6YIATfuG+rRHksfyEWCSOdL3anM9MJZJX26KT/s+XQ==} + '@swc/core-linux-arm-gnueabihf@1.7.26': + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.28': - resolution: {integrity: sha512-03m6iQ5Bv9u2VPnNRyaBmE8eHi056eE39L0gXcqGoo46GAGuoqYHt9pDz8wS6EgoN4t85iBMUZrkCNqFKkN6ZQ==} + '@swc/core-linux-arm64-gnu@1.7.26': + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.28': - resolution: {integrity: sha512-vqVOpG/jc8mvTKQjaPBLhr7tnWyzuztOHsPnJqMWmg7zGcMeQC/2c5pU4uzRAfXMTp25iId6s4Y4wWfPS1EeDw==} + '@swc/core-linux-arm64-musl@1.7.26': + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.28': - resolution: {integrity: sha512-HGwpWuB83Kr+V0E+zT5UwIIY9OxiS8aLd0UVMRVWuO8SrQyKm9HKJ46+zoAb8tfJrpZftfxvbn2ayZWR7gqosA==} + '@swc/core-linux-x64-gnu@1.7.26': + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.28': - resolution: {integrity: sha512-q2Y2T8y8EgFtIiRyInnAXNe94aaHX74F0ha1Bl9VdRxE0u1/So+3VLbPvtp4V3Z6pj5pOePfCQJKifnllgAQ9A==} + '@swc/core-linux-x64-musl@1.7.26': + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.28': - resolution: {integrity: sha512-bCqh4uBT/59h3dWK1v91In6qzz8rKoWoFRxCtNQLIK4jP55K0U231ZK9oN7neZD6bzcOUeFvOGgcyMAgDfFWfA==} + '@swc/core-win32-arm64-msvc@1.7.26': + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.28': - resolution: {integrity: sha512-XTHbHrksnrqK3JSJ2sbuMWvdJ6/G0roRpgyVTmNDfhTYPOwcVaL/mSrPGLwbksYUbq7ckwoKzrobhdxvQzPsDA==} + '@swc/core-win32-ia32-msvc@1.7.26': + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.28': - resolution: {integrity: sha512-jyXeoq6nX8abiCy2EpporsC5ywNENs4ocYuvxo1LSxDktWN1E2MTXq3cdJcEWB2Vydxq0rDcsGyzkRPMzFhkZw==} + '@swc/core-win32-x64-msvc@1.7.26': + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.28': - resolution: {integrity: sha512-XapcMgsOS0cKh01AFEj+qXOk6KM4NZhp7a5vPicdhkRR8RzvjrCa7DTtijMxfotU8bqaEHguxmiIag2HUlT8QQ==} + '@swc/core@1.7.26': + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -339,27 +339,27 @@ packages: '@swc/types@0.1.12': resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - '@temporalio/activity@1.11.1': - resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} + '@temporalio/activity@1.11.2': + resolution: {integrity: sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==} - '@temporalio/client@1.11.1': - resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} + '@temporalio/client@1.11.2': + resolution: {integrity: sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==} - '@temporalio/common@1.11.1': - resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} + '@temporalio/common@1.11.2': + resolution: {integrity: sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==} - '@temporalio/core-bridge@1.11.1': - resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} + '@temporalio/core-bridge@1.11.2': + resolution: {integrity: sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==} - '@temporalio/proto@1.11.1': - resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} + '@temporalio/proto@1.11.2': + resolution: {integrity: sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==} - '@temporalio/worker@1.11.1': - resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} + '@temporalio/worker@1.11.2': + resolution: {integrity: sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==} engines: {node: '>= 16.0.0'} - '@temporalio/workflow@1.11.1': - resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} + '@temporalio/workflow@1.11.2': + resolution: {integrity: sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==} '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -370,8 +370,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@20.16.7': - resolution: {integrity: sha512-QkDQjAY3gkvJNcZOWwzy3BN34RweT0OQ9zJyvLCU0kSK22dO2QYh/NHGfbEAYylPYzRB1/iXcojS79wOg5gFSw==} + '@types/node@20.16.10': + resolution: {integrity: sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==} '@types/prop-types@15.7.13': resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} @@ -379,11 +379,11 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.9': - resolution: {integrity: sha512-+BpAVyTpJkNWWSSnaLBk6ePpHLOGJKnEQNbINNovPWzvEUyAe3e+/d494QdEh71RekM/qV7lw6jzf1HGrJyAtQ==} + '@types/react@18.3.11': + resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} - '@typescript-eslint/eslint-plugin@8.7.0': - resolution: {integrity: sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==} + '@typescript-eslint/eslint-plugin@8.8.0': + resolution: {integrity: sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -393,8 +393,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.7.0': - resolution: {integrity: sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==} + '@typescript-eslint/parser@8.8.0': + resolution: {integrity: sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -403,12 +403,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.7.0': - resolution: {integrity: sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==} + '@typescript-eslint/scope-manager@8.8.0': + resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.7.0': - resolution: {integrity: sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==} + '@typescript-eslint/type-utils@8.8.0': + resolution: {integrity: sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -416,12 +416,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.7.0': - resolution: {integrity: sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==} + '@typescript-eslint/types@8.8.0': + resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.7.0': - resolution: {integrity: sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==} + '@typescript-eslint/typescript-estree@8.8.0': + resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -429,14 +429,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.7.0': - resolution: {integrity: sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==} + '@typescript-eslint/utils@8.8.0': + resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.7.0': - resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} + '@typescript-eslint/visitor-keys@8.8.0': + resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': @@ -640,8 +640,8 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001663: - resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -759,8 +759,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.28: - resolution: {integrity: sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==} + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -842,8 +842,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.11.1: - resolution: {integrity: sha512-EwcbfLOhwVMAfatfqLecR2yv3dE5+kQ8kx+Rrt0DvDXEVwW86KQ/xbMDQhtp5l42VXukD5SOF8mQQHbaNtO0CQ==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -863,12 +863,12 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.30.0: - resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true @@ -885,8 +885,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.36.1: - resolution: {integrity: sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==} + eslint-plugin-react@7.37.1: + resolution: {integrity: sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 @@ -906,6 +906,7 @@ packages: eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true espree@9.6.1: @@ -1478,8 +1479,8 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -1616,8 +1617,8 @@ packages: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} require-directory@2.1.1: @@ -1846,8 +1847,8 @@ packages: uglify-js: optional: true - terser@5.33.0: - resolution: {integrity: sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==} + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} engines: {node: '>=10'} hasBin: true @@ -1930,8 +1931,8 @@ packages: unionfs@4.5.4: resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2052,7 +2053,7 @@ snapshots: '@eslint/js@8.57.1': {} - '@grpc/grpc-js@1.11.3': + '@grpc/grpc-js@1.12.0': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -2116,12 +2117,12 @@ snapshots: '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) - '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) hyperdyperid: 1.2.0 thingies: 1.21.0(tslib@2.7.0) tslib: 2.7.0 - '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': + '@jsonjoy.com/util@1.5.0(tslib@2.7.0)': dependencies: tslib: 2.7.0 @@ -2198,12 +2199,12 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/restack-sdk-ts@0.0.66(@swc/helpers@0.5.11)': + '@restackio/ai@0.0.75(@swc/helpers@0.5.11)': dependencies: - '@temporalio/activity': 1.11.1 - '@temporalio/client': 1.11.1 - '@temporalio/worker': 1.11.1(@swc/helpers@0.5.11) - '@temporalio/workflow': 1.11.1 + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/worker': 1.11.2(@swc/helpers@0.5.11) + '@temporalio/workflow': 1.11.2 transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -2214,51 +2215,51 @@ snapshots: '@rushstack/eslint-patch@1.10.4': {} - '@swc/core-darwin-arm64@1.7.28': + '@swc/core-darwin-arm64@1.7.26': optional: true - '@swc/core-darwin-x64@1.7.28': + '@swc/core-darwin-x64@1.7.26': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.28': + '@swc/core-linux-arm-gnueabihf@1.7.26': optional: true - '@swc/core-linux-arm64-gnu@1.7.28': + '@swc/core-linux-arm64-gnu@1.7.26': optional: true - '@swc/core-linux-arm64-musl@1.7.28': + '@swc/core-linux-arm64-musl@1.7.26': optional: true - '@swc/core-linux-x64-gnu@1.7.28': + '@swc/core-linux-x64-gnu@1.7.26': optional: true - '@swc/core-linux-x64-musl@1.7.28': + '@swc/core-linux-x64-musl@1.7.26': optional: true - '@swc/core-win32-arm64-msvc@1.7.28': + '@swc/core-win32-arm64-msvc@1.7.26': optional: true - '@swc/core-win32-ia32-msvc@1.7.28': + '@swc/core-win32-ia32-msvc@1.7.26': optional: true - '@swc/core-win32-x64-msvc@1.7.28': + '@swc/core-win32-x64-msvc@1.7.26': optional: true - '@swc/core@1.7.28(@swc/helpers@0.5.11)': + '@swc/core@1.7.26(@swc/helpers@0.5.11)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.28 - '@swc/core-darwin-x64': 1.7.28 - '@swc/core-linux-arm-gnueabihf': 1.7.28 - '@swc/core-linux-arm64-gnu': 1.7.28 - '@swc/core-linux-arm64-musl': 1.7.28 - '@swc/core-linux-x64-gnu': 1.7.28 - '@swc/core-linux-x64-musl': 1.7.28 - '@swc/core-win32-arm64-msvc': 1.7.28 - '@swc/core-win32-ia32-msvc': 1.7.28 - '@swc/core-win32-x64-msvc': 1.7.28 + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 '@swc/helpers': 0.5.11 '@swc/counter@0.1.3': {} @@ -2277,68 +2278,68 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@temporalio/activity@1.11.1': + '@temporalio/activity@1.11.2': dependencies: - '@temporalio/common': 1.11.1 + '@temporalio/common': 1.11.2 abort-controller: 3.0.0 - '@temporalio/client@1.11.1': + '@temporalio/client@1.11.2': dependencies: - '@grpc/grpc-js': 1.11.3 - '@temporalio/common': 1.11.1 - '@temporalio/proto': 1.11.1 + '@grpc/grpc-js': 1.12.0 + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 abort-controller: 3.0.0 long: 5.2.3 uuid: 9.0.1 - '@temporalio/common@1.11.1': + '@temporalio/common@1.11.2': dependencies: - '@temporalio/proto': 1.11.1 + '@temporalio/proto': 1.11.2 long: 5.2.3 ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.11.1': + '@temporalio/core-bridge@1.11.2': dependencies: - '@temporalio/common': 1.11.1 + '@temporalio/common': 1.11.2 arg: 5.0.2 cargo-cp-artifact: 0.1.9 which: 4.0.0 - '@temporalio/proto@1.11.1': + '@temporalio/proto@1.11.2': dependencies: long: 5.2.3 protobufjs: 7.4.0 - '@temporalio/worker@1.11.1(@swc/helpers@0.5.11)': + '@temporalio/worker@1.11.2(@swc/helpers@0.5.11)': dependencies: - '@swc/core': 1.7.28(@swc/helpers@0.5.11) - '@temporalio/activity': 1.11.1 - '@temporalio/client': 1.11.1 - '@temporalio/common': 1.11.1 - '@temporalio/core-bridge': 1.11.1 - '@temporalio/proto': 1.11.1 - '@temporalio/workflow': 1.11.1 + '@swc/core': 1.7.26(@swc/helpers@0.5.11) + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/common': 1.11.2 + '@temporalio/core-bridge': 1.11.2 + '@temporalio/proto': 1.11.2 + '@temporalio/workflow': 1.11.2 abort-controller: 3.0.0 heap-js: 2.5.0 memfs: 4.12.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11))) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))) + swc-loader: 0.2.6(@swc/core@1.7.26(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11))) unionfs: 4.5.4 - webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11)) transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@temporalio/workflow@1.11.1': + '@temporalio/workflow@1.11.2': dependencies: - '@temporalio/common': 1.11.1 - '@temporalio/proto': 1.11.1 + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 '@types/estree@1.0.6': {} @@ -2346,7 +2347,7 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@20.16.7': + '@types/node@20.16.10': dependencies: undici-types: 6.19.8 @@ -2354,21 +2355,21 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.11 - '@types/react@18.3.9': + '@types/react@18.3.11': dependencies: '@types/prop-types': 15.7.13 csstype: 3.1.3 - '@typescript-eslint/eslint-plugin@8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/type-utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/parser': 8.8.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.8.0 + '@typescript-eslint/type-utils': 8.8.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 @@ -2379,12 +2380,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/scope-manager': 8.8.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.8.0 debug: 4.3.7 eslint: 8.57.1 optionalDependencies: @@ -2392,15 +2393,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.7.0': + '@typescript-eslint/scope-manager@8.8.0': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/visitor-keys': 8.8.0 - '@typescript-eslint/type-utils@8.7.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.8.0(eslint@8.57.1)(typescript@5.6.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) - '@typescript-eslint/utils': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.0(eslint@8.57.1)(typescript@5.6.2) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: @@ -2409,12 +2410,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.7.0': {} + '@typescript-eslint/types@8.8.0': {} - '@typescript-eslint/typescript-estree@8.7.0(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/visitor-keys': 8.7.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/visitor-keys': 8.8.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -2426,20 +2427,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.7.0(eslint@8.57.1)(typescript@5.6.2)': + '@typescript-eslint/utils@8.8.0(eslint@8.57.1)(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.7.0 - '@typescript-eslint/types': 8.7.0 - '@typescript-eslint/typescript-estree': 8.7.0(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.8.0 + '@typescript-eslint/types': 8.8.0 + '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2) eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.7.0': + '@typescript-eslint/visitor-keys@8.8.0': dependencies: - '@typescript-eslint/types': 8.7.0 + '@typescript-eslint/types': 8.8.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -2668,10 +2669,10 @@ snapshots: browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001663 - electron-to-chromium: 1.5.28 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.24.0) + update-browserslist-db: 1.1.1(browserslist@4.24.0) buffer-from@1.1.2: {} @@ -2691,7 +2692,7 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001663: {} + caniuse-lite@1.0.30001667: {} cargo-cp-artifact@0.1.9: {} @@ -2787,7 +2788,7 @@ snapshots: object-is: 1.1.6 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 side-channel: 1.0.6 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 @@ -2821,7 +2822,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.28: {} + electron-to-chromium@1.5.32: {} emoji-regex@8.0.0: {} @@ -2868,7 +2869,7 @@ snapshots: object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 string.prototype.trim: 1.2.9 @@ -2946,14 +2947,14 @@ snapshots: dependencies: '@next/eslint-plugin-next': 14.2.13 '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/eslint-plugin': 8.7.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) - '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.8.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@8.57.1)(typescript@5.6.2) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) - eslint-plugin-react: 7.36.1(eslint@8.57.1) + eslint-plugin-react: 7.37.1(eslint@8.57.1) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) optionalDependencies: typescript: 5.6.2 @@ -2970,37 +2971,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.11.1(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.11.1(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@8.57.1)(typescript@5.6.2) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -3011,7 +3012,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.11.1(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.7.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.8.0(eslint@8.57.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -3020,9 +3021,10 @@ snapshots: object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.7.0(eslint@8.57.1)(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.0(eslint@8.57.1)(typescript@5.6.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -3052,7 +3054,7 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-react@7.36.1(eslint@8.57.1): + eslint-plugin-react@7.37.1(eslint@8.57.1): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -3263,7 +3265,7 @@ snapshots: jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 glob@7.2.3: @@ -3477,7 +3479,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.16.7 + '@types/node': 20.16.10 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -3550,7 +3552,7 @@ snapshots: memfs@4.12.0: dependencies: '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) - '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) tree-dump: 1.0.2(tslib@2.7.0) tslib: 2.7.0 @@ -3602,7 +3604,7 @@ snapshots: '@next/env': 14.2.13 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001663 + caniuse-lite: 1.0.30001667 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -3692,7 +3694,7 @@ snapshots: dependencies: p-limit: 3.1.0 - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} parent-module@1.0.1: dependencies: @@ -3788,7 +3790,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.16.7 + '@types/node': 20.16.10 long: 5.2.3 punycode@2.3.1: {} @@ -3829,7 +3831,7 @@ snapshots: globalthis: 1.0.4 which-builtin-type: 1.1.4 - regexp.prototype.flags@1.5.2: + regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -3936,11 +3938,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11))): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11)) source-map-support@0.5.21: dependencies: @@ -3985,7 +3987,7 @@ snapshots: gopd: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 set-function-name: 2.0.2 side-channel: 1.0.6 @@ -4050,11 +4052,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))): + swc-loader@0.2.6(@swc/core@1.7.26(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11))): dependencies: - '@swc/core': 1.7.28(@swc/helpers@0.5.11) + '@swc/core': 1.7.26(@swc/helpers@0.5.11) '@swc/counter': 0.1.3 - webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11)) tailwindcss@3.4.13: dependencies: @@ -4085,18 +4087,18 @@ snapshots: tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11))): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.33.0 - webpack: 5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)) + terser: 5.34.1 + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11)) optionalDependencies: - '@swc/core': 1.7.28(@swc/helpers@0.5.11) + '@swc/core': 1.7.26(@swc/helpers@0.5.11) - terser@5.33.0: + terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -4193,7 +4195,7 @@ snapshots: dependencies: fs-monkey: 1.0.6 - update-browserslist-db@1.1.0(browserslist@4.24.0): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: browserslist: 4.24.0 escalade: 3.2.0 @@ -4214,7 +4216,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11)): + webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11)): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -4236,7 +4238,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.28(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.28(@swc/helpers@0.5.11))) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.11))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.11))) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/examples/nextjs/src/app/actions/trigger.ts b/examples/nextjs/src/app/actions/trigger.ts index 8c3a43e..63b98c4 100644 --- a/examples/nextjs/src/app/actions/trigger.ts +++ b/examples/nextjs/src/app/actions/trigger.ts @@ -1,5 +1,5 @@ "use server"; -import Restack from "@restackio/restack-sdk-ts"; +import Restack from "@restackio/ai"; import { Example } from "../components/examplesList"; const connectionOptions = { diff --git a/examples/nextjs/src/app/page.tsx b/examples/nextjs/src/app/page.tsx index ae07181..8897389 100644 --- a/examples/nextjs/src/app/page.tsx +++ b/examples/nextjs/src/app/page.tsx @@ -17,7 +17,7 @@ export default function Home() {
  • Use Restack Engine SDK with{" "} - @restackio/restack-sdk-ts + @restackio/ai
  • diff --git a/examples/posthog/package.json b/examples/posthog/package.json index 79295e4..c4a0cc3 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -17,7 +17,7 @@ "dependencies": { "@restackio/integrations-linear": "^0.0.3", "@restackio/integrations-openai": "^0.0.23", - "@restackio/restack-sdk-ts": "^0.0.72", + "@restackio/ai": "^0.0.75", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", "typescript": "^5.6.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index e1d188a..6172c6e 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -8,15 +8,15 @@ importers: .: dependencies: + '@restackio/ai': + specifier: ^0.0.75 + version: 0.0.75 '@restackio/integrations-linear': specifier: ^0.0.3 version: 0.0.3 '@restackio/integrations-openai': specifier: ^0.0.23 version: 0.0.23(zod@3.23.8) - '@restackio/restack-sdk-ts': - specifier: ^0.0.72 - version: 0.0.72 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -160,6 +160,10 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@restackio/ai@0.0.75': + resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + engines: {node: '>=20'} + '@restackio/integrations-linear@0.0.3': resolution: {integrity: sha512-eb+Uq71aPW6IV7+rV8fBwmgGOtutD1WKwJoOwPgPsKQ6sm5V3WH+1A60vR35/Y54h8k1ZD5X4Fmz9qslOAlaXA==} @@ -170,10 +174,6 @@ packages: resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} engines: {node: '>=20'} - '@restackio/restack-sdk-ts@0.0.72': - resolution: {integrity: sha512-OSyZEGUGbZTFMDi8NdxxDgWkX/BkcKPN91NVBXFsmpRy9aIoXCBt7rCrQX+EMwknYic6zSdCnrgIlmPwFtUOvA==} - engines: {node: '>=20'} - '@swc/core-darwin-arm64@1.7.26': resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} engines: {node: '>=10'} @@ -1300,6 +1300,18 @@ snapshots: '@protobufjs/utf8@1.1.0': {} + '@restackio/ai@0.0.75': + dependencies: + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1 + '@temporalio/workflow': 1.11.1 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + '@restackio/integrations-linear@0.0.3': dependencies: '@linear/sdk': 29.0.0 @@ -1324,18 +1336,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.72': - dependencies: - '@temporalio/activity': 1.11.1 - '@temporalio/client': 1.11.1 - '@temporalio/worker': 1.11.1 - '@temporalio/workflow': 1.11.1 - transitivePeerDependencies: - - '@swc/helpers' - - esbuild - - uglify-js - - webpack-cli - '@swc/core-darwin-arm64@1.7.26': optional: true diff --git a/examples/posthog/src/client.ts b/examples/posthog/src/client.ts index fcd89b0..b990acd 100644 --- a/examples/posthog/src/client.ts +++ b/examples/posthog/src/client.ts @@ -1,4 +1,4 @@ -import Restack from "@restackio/restack-sdk-ts"; +import Restack from "@restackio/ai"; import "dotenv/config"; diff --git a/examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts b/examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts index 4db32c1..497ae53 100644 --- a/examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts +++ b/examples/posthog/src/functions/posthog/sessionRecording/blobChunks.ts @@ -1,7 +1,7 @@ -import { functionInfo, log } from "@restackio/restack-sdk-ts/function"; +import { functionInfo, log } from "@restackio/ai/function"; import "dotenv/config"; import { posthogGetSnapshotBlob } from "./snapshotBlob"; -import Restack from "@restackio/restack-sdk-ts"; +import Restack from "@restackio/ai"; import { chunkWorkflow } from "../../../workflows/chunk"; export async function posthogBlobChunks({ diff --git a/examples/posthog/src/functions/posthog/sessionRecording/recordings.ts b/examples/posthog/src/functions/posthog/sessionRecording/recordings.ts index 198edeb..c3b3eea 100644 --- a/examples/posthog/src/functions/posthog/sessionRecording/recordings.ts +++ b/examples/posthog/src/functions/posthog/sessionRecording/recordings.ts @@ -1,4 +1,4 @@ -import { log } from "@restackio/restack-sdk-ts/function"; +import { log } from "@restackio/ai/function"; import "dotenv/config"; export type PosthogRecording = { diff --git a/examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts b/examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts index 6623a09..fe4092e 100644 --- a/examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts +++ b/examples/posthog/src/functions/posthog/sessionRecording/snapshotBlob.ts @@ -1,4 +1,4 @@ -import { log } from "@restackio/restack-sdk-ts/function"; +import { log } from "@restackio/ai/function"; import "dotenv/config"; export async function posthogGetSnapshotBlob({ diff --git a/examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts b/examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts index 0e17bc9..621e21f 100644 --- a/examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts +++ b/examples/posthog/src/functions/posthog/sessionRecording/snapshots.ts @@ -1,4 +1,4 @@ -import { log } from "@restackio/restack-sdk-ts/function"; +import { log } from "@restackio/ai/function"; import "dotenv/config"; export type PosthogSnapshot = { diff --git a/examples/posthog/src/functions/utils/sendEventToWorkflow.ts b/examples/posthog/src/functions/utils/sendEventToWorkflow.ts index 2258f0f..0c59b04 100644 --- a/examples/posthog/src/functions/utils/sendEventToWorkflow.ts +++ b/examples/posthog/src/functions/utils/sendEventToWorkflow.ts @@ -1,5 +1,5 @@ -import Restack from "@restackio/restack-sdk-ts"; -import { SendWorkflowEvent } from "@restackio/restack-sdk-ts/event"; +import Restack from "@restackio/ai"; +import { SendWorkflowEvent } from "@restackio/ai/event"; export async function workflowSendEvent({ event, diff --git a/examples/posthog/src/workflows/chunk.ts b/examples/posthog/src/workflows/chunk.ts index 999456e..67d7f6c 100644 --- a/examples/posthog/src/workflows/chunk.ts +++ b/examples/posthog/src/workflows/chunk.ts @@ -1,4 +1,4 @@ -import { log, step } from "@restackio/restack-sdk-ts/workflow"; +import { log, step } from "@restackio/ai/workflow"; import * as functions from "../functions"; import * as openaiFunctions from "@restackio/integrations-openai/functions"; import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; diff --git a/examples/posthog/src/workflows/digest.ts b/examples/posthog/src/workflows/digest.ts index a46c344..700ce7c 100644 --- a/examples/posthog/src/workflows/digest.ts +++ b/examples/posthog/src/workflows/digest.ts @@ -1,4 +1,4 @@ -import { executeChild, step } from "@restackio/restack-sdk-ts/workflow"; +import { executeChild, step } from "@restackio/ai/workflow"; import { recordingWorkflow } from "./recording"; import * as functions from "../functions"; import * as openaiFunctions from "@restackio/integrations-openai/functions"; diff --git a/examples/posthog/src/workflows/recording.ts b/examples/posthog/src/workflows/recording.ts index 2b7207a..f73d318 100644 --- a/examples/posthog/src/workflows/recording.ts +++ b/examples/posthog/src/workflows/recording.ts @@ -1,6 +1,6 @@ -import { defineEvent, onEvent } from "@restackio/restack-sdk-ts/event"; +import { defineEvent, onEvent } from "@restackio/ai/event"; import * as functions from "../functions"; -import { condition, log, step } from "@restackio/restack-sdk-ts/workflow"; +import { condition, log, step } from "@restackio/ai/workflow"; import z from "zod"; import { ChunkSummary } from "./chunk"; import zodToJsonSchema from "zod-to-json-schema"; diff --git a/examples/voice/package.json b/examples/voice/package.json index ce8c765..fb1f60e 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -22,7 +22,7 @@ "@restackio/integrations-openai": "^0.0.3", "@restackio/integrations-twilio": "^0.0.5", "@restackio/integrations-websocket": "^0.0.12", - "@restackio/restack-sdk-ts": "^0.0.66", + "@restackio/ai": "^0.0.75", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index cae8e39..5e5834a 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -9,8 +9,11 @@ importers: .: dependencies: '@deepgram/sdk': - specifier: ^3.6.0 - version: 3.6.0(bufferutil@4.0.8)(encoding@0.1.12) + specifier: ^3.8.0 + version: 3.8.0(bufferutil@4.0.8)(encoding@0.1.12) + '@restackio/ai': + specifier: ^0.0.75 + version: 0.0.75 '@restackio/integrations-deepgram': specifier: ^0.0.8 version: 0.0.8(bufferutil@4.0.8)(encoding@0.1.12) @@ -23,9 +26,6 @@ importers: '@restackio/integrations-websocket': specifier: ^0.0.12 version: 0.0.12(bufferutil@4.0.8) - '@restackio/restack-sdk-ts': - specifier: ^0.0.66 - version: 0.0.66 '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -39,14 +39,14 @@ importers: specifier: ^4.21.0 version: 4.21.0 openai: - specifier: ^4.59.0 - version: 4.59.0(encoding@0.1.12)(zod@3.23.8) + specifier: ^4.67.1 + version: 4.67.1(encoding@0.1.12)(zod@3.23.8) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) + version: 10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.6.2) twilio: - specifier: ^5.3.0 - version: 5.3.0 + specifier: ^5.3.3 + version: 5.3.3 typescript: specifier: ^5.6.2 version: 5.6.2 @@ -65,8 +65,8 @@ importers: version: 4.0.8 devDependencies: '@restackio/restack-sdk-cloud-ts': - specifier: ^1.0.5 - version: 1.0.5 + specifier: ^1.0.16 + version: 1.0.16 '@types/cors': specifier: ^2.8.17 version: 2.8.17 @@ -74,8 +74,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^22.5.4 - version: 22.5.4 + specifier: ^22.7.4 + version: 22.7.4 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 @@ -83,11 +83,11 @@ importers: specifier: ^8.5.12 version: 8.5.12 nodemon: - specifier: ^3.1.4 - version: 3.1.4 + specifier: ^3.1.7 + version: 3.1.7 ts-node-dev: specifier: ^2.0.0 - version: 2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) + version: 2.0.0(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.6.2) packages: @@ -99,12 +99,12 @@ packages: resolution: {integrity: sha512-8B1C/oTxTxyHlSFubAhNRgCbQ2SQ5wwvtlByn8sDYZvdDtdn/VE2yEPZ4BvUnrKWmsbTQY6/ooLV+9Ka2qmDSQ==} engines: {node: '>=18.0.0'} - '@deepgram/sdk@3.6.0': - resolution: {integrity: sha512-uErkoOyBjdk3u4UyowxN6LtjuLv8s1V/29WVeR2Y2M1wKGo93s8dlYFsF3R1SWeMaeJOimpCcwjWvMQbYrmS6Q==} + '@deepgram/sdk@3.8.0': + resolution: {integrity: sha512-c9GYmyjwzrtz3wlq9hkS32atpwga4P7pQzpTt9EL2+VnIibs71vHml1v+d0RGA3l4ugcXT2swKqdw9aVS9PJMg==} engines: {node: '>=18.0.0'} - '@grpc/grpc-js@1.11.2': - resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} + '@grpc/grpc-js@1.12.0': + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -151,8 +151,8 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.3.0': - resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -193,6 +193,10 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@restackio/ai@0.0.75': + resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + engines: {node: '>=20'} + '@restackio/integrations-deepgram@0.0.8': resolution: {integrity: sha512-99GHdrP0dt4UsYYAySLWQFzAOx469FzmmXXwvpbmbQ4ZELavmyR4QMxxs1IGWvL9B1kMq2kdUyvJyVt9q48H/w==} @@ -205,13 +209,9 @@ packages: '@restackio/integrations-websocket@0.0.12': resolution: {integrity: sha512-6fWEjmpNGwo4qE+p2Mm/aGNjHMFvsFkddt/QA/cQMuASLRG9D1ohApfckpy/4zpyYkjNBJq/GWQnXbeJnFzskw==} - '@restackio/restack-sdk-cloud-ts@1.0.5': - resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} - engines: {node: '>=20'} - - '@restackio/restack-sdk-ts@0.0.66': - resolution: {integrity: sha512-qn2jjb3ZEd3kqX2tqqalvL3R5zuj0YZw+7XhfN7I7oh/T0lMaS5mSm9ca220mTU3BIM5L23uIbaEUZae/DqDGA==} - engines: {node: '>=20'} + '@restackio/restack-sdk-cloud-ts@1.0.16': + resolution: {integrity: sha512-oIanzD6ym6c+hZ6eMJozTaIxGmMn1hPZRwogzz4v2hdd40IpdbwuHc98bPrHjswS1rZa+vjPjLbKoSuLlZloOQ==} + engines: {node: '>=18'} '@swc/core-darwin-arm64@1.7.26': resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} @@ -288,28 +288,37 @@ packages: '@swc/types@0.1.12': resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - '@temporalio/activity@1.11.1': - resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} + '@temporalio/activity@1.11.2': + resolution: {integrity: sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==} - '@temporalio/client@1.11.1': - resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} + '@temporalio/client@1.11.2': + resolution: {integrity: sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==} '@temporalio/common@1.11.1': resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} - '@temporalio/core-bridge@1.11.1': - resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} + '@temporalio/common@1.11.2': + resolution: {integrity: sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==} + + '@temporalio/core-bridge@1.11.2': + resolution: {integrity: sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==} '@temporalio/proto@1.11.1': resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} - '@temporalio/worker@1.11.1': - resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} + '@temporalio/proto@1.11.2': + resolution: {integrity: sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==} + + '@temporalio/worker@1.11.2': + resolution: {integrity: sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==} engines: {node: '>= 16.0.0'} '@temporalio/workflow@1.11.1': resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} + '@temporalio/workflow@1.11.2': + resolution: {integrity: sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -331,11 +340,11 @@ packages: '@types/cors@2.8.17': resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -352,14 +361,14 @@ packages: '@types/node-fetch@2.6.11': resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - '@types/node@18.19.50': - resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} + '@types/node@18.19.54': + resolution: {integrity: sha512-+BRgt0G5gYjTvdLac9sIeE0iZcJxi4Jc4PV5EUzqi+88jmQLr+fRZdv2tCTV7IHKSGxM6SaLoOXQWWUiLUItMw==} - '@types/node@22.5.4': - resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/qs@6.9.16': + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -516,8 +525,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -543,8 +552,8 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001660: - resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -677,8 +686,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.20: - resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -993,8 +1002,8 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - memfs@4.11.1: - resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} + memfs@4.12.0: + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} engines: {node: '>= 4.0.0'} merge-descriptors@1.0.3: @@ -1068,8 +1077,8 @@ packages: node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - nodemon@3.1.4: - resolution: {integrity: sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==} + nodemon@3.1.7: + resolution: {integrity: sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==} engines: {node: '>=10'} hasBin: true @@ -1096,17 +1105,8 @@ packages: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} - openai@4.59.0: - resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==} - hasBin: true - peerDependencies: - zod: ^3.23.8 - peerDependenciesMeta: - zod: - optional: true - - openai@4.61.0: - resolution: {integrity: sha512-xkygRBRLIUumxzKGb1ug05pWmJROQsHkGuj/N6Jiw2dj0dI19JvbFpErSZKmJ/DA+0IvpcugZqCAyk8iLpyM6Q==} + openai@4.67.1: + resolution: {integrity: sha512-2YbRFy6qaYRJabK2zLMn4txrB2xBy0KP5g/eoqeSPTT31mIJMnkT75toagvfE555IKa2RdrzJrZwdDsUipsAMw==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -1239,8 +1239,8 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} - simple-git@3.26.0: - resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} + simple-git@3.27.0: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} simple-update-notifier@2.0.0: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} @@ -1329,8 +1329,8 @@ packages: uglify-js: optional: true - terser@5.32.0: - resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} engines: {node: '>=10'} hasBin: true @@ -1402,8 +1402,8 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - twilio@5.3.0: - resolution: {integrity: sha512-bwveAxChPPFR2umttraRjUJdq/WY0OJCCgetzuKqLoGYqYSyYGsiFYYFAB5EOL/XnzCQNwAvq5622u+jqMTLOA==} + twilio@5.3.3: + resolution: {integrity: sha512-sI2A304/nMLnv6Vu1U6CREOvuLslUvo6ULhNNEa+mVZz29zMlzv20XQAExIVWxyXTBU4iIjOQY6giY58p1eb8Q==} engines: {node: '>=14.0'} type-fest@2.19.0: @@ -1435,8 +1435,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -1478,8 +1478,8 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.94.0: - resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -1555,7 +1555,7 @@ snapshots: dependencies: dayjs: 1.11.13 - '@deepgram/sdk@3.6.0(bufferutil@4.0.8)(encoding@0.1.12)': + '@deepgram/sdk@3.8.0(bufferutil@4.0.8)(encoding@0.1.12)': dependencies: '@deepgram/captions': 1.2.0 cross-fetch: 3.1.8(encoding@0.1.12) @@ -1567,7 +1567,7 @@ snapshots: - encoding - utf-8-validate - '@grpc/grpc-js@1.11.2': + '@grpc/grpc-js@1.12.0': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -1615,12 +1615,12 @@ snapshots: '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) - '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) hyperdyperid: 1.2.0 thingies: 1.21.0(tslib@2.7.0) tslib: 2.7.0 - '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': + '@jsonjoy.com/util@1.5.0(tslib@2.7.0)': dependencies: tslib: 2.7.0 @@ -1655,9 +1655,21 @@ snapshots: '@protobufjs/utf8@1.1.0': {} + '@restackio/ai@0.0.75': + dependencies: + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/worker': 1.11.2 + '@temporalio/workflow': 1.11.1 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + '@restackio/integrations-deepgram@0.0.8(bufferutil@4.0.8)(encoding@0.1.12)': dependencies: - '@deepgram/sdk': 3.6.0(bufferutil@4.0.8)(encoding@0.1.12) + '@deepgram/sdk': 3.8.0(bufferutil@4.0.8)(encoding@0.1.12) transitivePeerDependencies: - bufferutil - encoding @@ -1665,14 +1677,14 @@ snapshots: '@restackio/integrations-openai@0.0.3(encoding@0.1.12)(zod@3.23.8)': dependencies: - openai: 4.61.0(encoding@0.1.12)(zod@3.23.8) + openai: 4.67.1(encoding@0.1.12)(zod@3.23.8) transitivePeerDependencies: - encoding - zod '@restackio/integrations-twilio@0.0.5': dependencies: - twilio: 5.3.0 + twilio: 5.3.3 transitivePeerDependencies: - debug - supports-color @@ -1684,29 +1696,17 @@ snapshots: - bufferutil - utf-8-validate - '@restackio/restack-sdk-cloud-ts@1.0.5': + '@restackio/restack-sdk-cloud-ts@1.0.16': dependencies: chalk: 4.1.2 dotenv: 16.4.5 open: 10.1.0 - simple-git: 3.26.0 + simple-git: 3.27.0 yup: 1.4.0 zod: 3.23.8 transitivePeerDependencies: - supports-color - '@restackio/restack-sdk-ts@0.0.66': - dependencies: - '@temporalio/activity': 1.11.1 - '@temporalio/client': 1.11.1 - '@temporalio/worker': 1.11.1 - '@temporalio/workflow': 1.11.1 - transitivePeerDependencies: - - '@swc/helpers' - - esbuild - - uglify-js - - webpack-cli - '@swc/core-darwin-arm64@1.7.26': optional: true @@ -1759,16 +1759,16 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@temporalio/activity@1.11.1': + '@temporalio/activity@1.11.2': dependencies: - '@temporalio/common': 1.11.1 + '@temporalio/common': 1.11.2 abort-controller: 3.0.0 - '@temporalio/client@1.11.1': + '@temporalio/client@1.11.2': dependencies: - '@grpc/grpc-js': 1.11.2 - '@temporalio/common': 1.11.1 - '@temporalio/proto': 1.11.1 + '@grpc/grpc-js': 1.12.0 + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 abort-controller: 3.0.0 long: 5.2.3 uuid: 9.0.1 @@ -1780,9 +1780,16 @@ snapshots: ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.11.1': + '@temporalio/common@1.11.2': dependencies: - '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.2 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 arg: 5.0.2 cargo-cp-artifact: 0.1.9 which: 4.0.0 @@ -1792,25 +1799,30 @@ snapshots: long: 5.2.3 protobufjs: 7.4.0 - '@temporalio/worker@1.11.1': + '@temporalio/proto@1.11.2': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/worker@1.11.2': dependencies: '@swc/core': 1.7.26 - '@temporalio/activity': 1.11.1 - '@temporalio/client': 1.11.1 - '@temporalio/common': 1.11.1 - '@temporalio/core-bridge': 1.11.1 - '@temporalio/proto': 1.11.1 - '@temporalio/workflow': 1.11.1 + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/common': 1.11.2 + '@temporalio/core-bridge': 1.11.2 + '@temporalio/proto': 1.11.2 + '@temporalio/workflow': 1.11.2 abort-controller: 3.0.0 heap-js: 2.5.0 - memfs: 4.11.1 + memfs: 4.12.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.26)) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) unionfs: 4.5.4 - webpack: 5.94.0(@swc/core@1.7.26) + webpack: 5.95.0(@swc/core@1.7.26) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1822,6 +1834,11 @@ snapshots: '@temporalio/common': 1.11.1 '@temporalio/proto': 1.11.1 + '@temporalio/workflow@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -1833,30 +1850,30 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.5.4 + '@types/node': 22.7.4 '@types/connect@3.4.38': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.7.4 '@types/cors@2.8.17': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.7.4 - '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} - '@types/express-serve-static-core@4.19.5': + '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.5.4 - '@types/qs': 6.9.15 + '@types/node': 22.7.4 + '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.5 - '@types/qs': 6.9.15 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 '@types/http-errors@2.0.4': {} @@ -1867,30 +1884,30 @@ snapshots: '@types/node-fetch@2.6.11': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.7.4 form-data: 4.0.0 - '@types/node@18.19.50': + '@types/node@18.19.54': dependencies: undici-types: 5.26.5 - '@types/node@22.5.4': + '@types/node@22.7.4': dependencies: undici-types: 6.19.8 - '@types/qs@6.9.15': {} + '@types/qs@6.9.16': {} '@types/range-parser@1.2.7': {} '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.5.4 + '@types/node': 22.7.4 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.5.4 + '@types/node': 22.7.4 '@types/send': 0.17.4 '@types/strip-bom@3.0.0': {} @@ -1901,7 +1918,7 @@ snapshots: '@types/ws@8.5.12': dependencies: - '@types/node': 22.5.4 + '@types/node': 22.7.4 '@webassemblyjs/ast@1.12.1': dependencies: @@ -2080,12 +2097,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.3: + browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.20 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) + update-browserslist-db: 1.1.1(browserslist@4.24.0) buffer-equal-constant-time@1.0.1: {} @@ -2110,7 +2127,7 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - caniuse-lite@1.0.30001660: {} + caniuse-lite@1.0.30001667: {} cargo-cp-artifact@0.1.9: {} @@ -2225,7 +2242,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.20: {} + electron-to-chromium@1.5.32: {} emoji-regex@8.0.0: {} @@ -2479,7 +2496,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.5.4 + '@types/node': 22.7.4 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2535,10 +2552,10 @@ snapshots: media-typer@0.3.0: {} - memfs@4.11.1: + memfs@4.12.0: dependencies: '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) - '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) tree-dump: 1.0.2(tslib@2.7.0) tslib: 2.7.0 @@ -2587,7 +2604,7 @@ snapshots: node-releases@2.0.18: {} - nodemon@3.1.4: + nodemon@3.1.7: dependencies: chokidar: 3.6.0 debug: 4.3.7(supports-color@5.5.0) @@ -2621,33 +2638,15 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 - openai@4.59.0(encoding@0.1.12)(zod@3.23.8): - dependencies: - '@types/node': 18.19.50 - '@types/node-fetch': 2.6.11 - '@types/qs': 6.9.15 - abort-controller: 3.0.0 - agentkeepalive: 4.5.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0(encoding@0.1.12) - qs: 6.13.0 - optionalDependencies: - zod: 3.23.8 - transitivePeerDependencies: - - encoding - - openai@4.61.0(encoding@0.1.12)(zod@3.23.8): + openai@4.67.1(encoding@0.1.12)(zod@3.23.8): dependencies: - '@types/node': 18.19.50 + '@types/node': 18.19.54 '@types/node-fetch': 2.6.11 - '@types/qs': 6.9.15 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0(encoding@0.1.12) - qs: 6.13.0 optionalDependencies: zod: 3.23.8 transitivePeerDependencies: @@ -2683,7 +2682,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.5.4 + '@types/node': 22.7.4 long: 5.2.3 proxy-addr@2.0.7: @@ -2799,7 +2798,7 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 - simple-git@3.26.0: + simple-git@3.27.0: dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 @@ -2813,11 +2812,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.26)): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.94.0(@swc/core@1.7.26) + webpack: 5.95.0(@swc/core@1.7.26) source-map-support@0.5.21: dependencies: @@ -2858,26 +2857,26 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): dependencies: '@swc/core': 1.7.26 '@swc/counter': 0.1.3 - webpack: 5.94.0(@swc/core@1.7.26) + webpack: 5.95.0(@swc/core@1.7.26) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.32.0 - webpack: 5.94.0(@swc/core@1.7.26) + terser: 5.34.1 + webpack: 5.95.0(@swc/core@1.7.26) optionalDependencies: '@swc/core': 1.7.26 - terser@5.32.0: + terser@5.34.1: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 @@ -2908,7 +2907,7 @@ snapshots: tree-kill@1.2.2: {} - ts-node-dev@2.0.0(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): + ts-node-dev@2.0.0(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.6.2): dependencies: chokidar: 3.6.0 dynamic-dedupe: 0.3.0 @@ -2918,7 +2917,7 @@ snapshots: rimraf: 2.7.1 source-map-support: 0.5.21 tree-kill: 1.2.2 - ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2) + ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.6.2) tsconfig: 7.0.0 typescript: 5.6.2 transitivePeerDependencies: @@ -2926,14 +2925,14 @@ snapshots: - '@swc/wasm' - '@types/node' - ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.5.4)(typescript@5.6.2): + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.5.4 + '@types/node': 22.7.4 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2955,7 +2954,7 @@ snapshots: tslib@2.7.0: {} - twilio@5.3.0: + twilio@5.3.3: dependencies: axios: 1.7.7 dayjs: 1.11.13 @@ -2989,9 +2988,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.0(browserslist@4.23.3): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 escalade: 3.2.0 picocolors: 1.1.0 @@ -3020,15 +3019,15 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.94.0(@swc/core@1.7.26): + webpack@5.95.0(@swc/core@1.7.26): dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.1 acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.3 + browserslist: 4.24.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 @@ -3042,7 +3041,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/examples/voice/src/client.ts b/examples/voice/src/client.ts index fcd89b0..b990acd 100644 --- a/examples/voice/src/client.ts +++ b/examples/voice/src/client.ts @@ -1,4 +1,4 @@ -import Restack from "@restackio/restack-sdk-ts"; +import Restack from "@restackio/ai"; import "dotenv/config"; diff --git a/examples/voice/src/functions/erp/checkInventory.ts b/examples/voice/src/functions/erp/checkInventory.ts index ef6796c..18ba6c6 100644 --- a/examples/voice/src/functions/erp/checkInventory.ts +++ b/examples/voice/src/functions/erp/checkInventory.ts @@ -1,4 +1,4 @@ -import { log, sleep } from "@restackio/restack-sdk-ts/function"; +import { log, sleep } from "@restackio/ai/function"; import { z } from "zod"; import { toolInput } from "./tools"; diff --git a/examples/voice/src/functions/erp/checkPrice.ts b/examples/voice/src/functions/erp/checkPrice.ts index 939d8af..089d594 100644 --- a/examples/voice/src/functions/erp/checkPrice.ts +++ b/examples/voice/src/functions/erp/checkPrice.ts @@ -1,4 +1,4 @@ -import { log, sleep } from "@restackio/restack-sdk-ts/function"; +import { log, sleep } from "@restackio/ai/function"; import { z } from "zod"; import { toolInput } from "./tools"; diff --git a/examples/voice/src/functions/erp/placeOrder.ts b/examples/voice/src/functions/erp/placeOrder.ts index fc41813..6e6b360 100644 --- a/examples/voice/src/functions/erp/placeOrder.ts +++ b/examples/voice/src/functions/erp/placeOrder.ts @@ -1,4 +1,4 @@ -import { log, sleep } from "@restackio/restack-sdk-ts/function"; +import { log, sleep } from "@restackio/ai/function"; import { z } from "zod"; import { toolInputWithQty } from "./tools"; diff --git a/examples/voice/src/functions/utils/sendEventToWorkflow.ts b/examples/voice/src/functions/utils/sendEventToWorkflow.ts index 2258f0f..0c59b04 100644 --- a/examples/voice/src/functions/utils/sendEventToWorkflow.ts +++ b/examples/voice/src/functions/utils/sendEventToWorkflow.ts @@ -1,5 +1,5 @@ -import Restack from "@restackio/restack-sdk-ts"; -import { SendWorkflowEvent } from "@restackio/restack-sdk-ts/event"; +import Restack from "@restackio/ai"; +import { SendWorkflowEvent } from "@restackio/ai/event"; export async function workflowSendEvent({ event, diff --git a/examples/voice/src/server.ts b/examples/voice/src/server.ts index 5d58609..c718824 100644 --- a/examples/voice/src/server.ts +++ b/examples/voice/src/server.ts @@ -3,7 +3,7 @@ import express from "express"; import { createServer } from "http"; import WebSocket, { WebSocketServer } from "ws"; import VoiceResponse from "twilio/lib/twiml/VoiceResponse"; -import Restack from "@restackio/restack-sdk-ts"; +import Restack from "@restackio/ai"; import { roomWorkflow } from "./workflows/room/room"; import { RoomInfo, streamInfoEvent } from "./workflows/room/events"; import cors from "cors"; diff --git a/examples/voice/src/workflows/conversation/conversation.ts b/examples/voice/src/workflows/conversation/conversation.ts index 074b523..6ab24e4 100644 --- a/examples/voice/src/workflows/conversation/conversation.ts +++ b/examples/voice/src/workflows/conversation/conversation.ts @@ -1,11 +1,6 @@ -import { - step, - log, - workflowInfo, - condition, -} from "@restackio/restack-sdk-ts/workflow"; +import { step, log, workflowInfo, condition } from "@restackio/ai/workflow"; import * as functions from "../../functions"; -import { onEvent } from "@restackio/restack-sdk-ts/event"; +import { onEvent } from "@restackio/ai/event"; import { streamEvent, toolCallEvent, conversationEndEvent } from "./events"; import { openaiTaskQueue } from "@restackio/integrations-openai/taskQueue"; import * as openaiFunctions from "@restackio/integrations-openai/functions"; diff --git a/examples/voice/src/workflows/conversation/events.ts b/examples/voice/src/workflows/conversation/events.ts index a170d0b..f7d61c4 100644 --- a/examples/voice/src/workflows/conversation/events.ts +++ b/examples/voice/src/workflows/conversation/events.ts @@ -1,4 +1,4 @@ -import { defineEvent } from "@restackio/restack-sdk-ts/event"; +import { defineEvent } from "@restackio/ai/event"; import { StreamEvent, ToolCallEvent, diff --git a/examples/voice/src/workflows/room/events.ts b/examples/voice/src/workflows/room/events.ts index 0251abd..36a6bb8 100644 --- a/examples/voice/src/workflows/room/events.ts +++ b/examples/voice/src/workflows/room/events.ts @@ -1,4 +1,4 @@ -import { defineEvent } from "@restackio/restack-sdk-ts/event"; +import { defineEvent } from "@restackio/ai/event"; import { WebsocketEvent } from "@restackio/integrations-websocket/types"; export type RoomInfo = { diff --git a/examples/voice/src/workflows/room/room.ts b/examples/voice/src/workflows/room/room.ts index 97cee85..0e4a634 100644 --- a/examples/voice/src/workflows/room/room.ts +++ b/examples/voice/src/workflows/room/room.ts @@ -4,8 +4,8 @@ import { condition, startChild, workflowInfo, -} from "@restackio/restack-sdk-ts/workflow"; -import { onEvent } from "@restackio/restack-sdk-ts/event"; +} from "@restackio/ai/workflow"; +import { onEvent } from "@restackio/ai/event"; import * as functions from "../../functions"; import { conversationWorkflow } from "../conversation/conversation"; import { diff --git a/examples/voice/src/workflows/twilioCall.ts b/examples/voice/src/workflows/twilioCall.ts index 71de901..3d9bd92 100644 --- a/examples/voice/src/workflows/twilioCall.ts +++ b/examples/voice/src/workflows/twilioCall.ts @@ -1,4 +1,4 @@ -import { log, step } from "@restackio/restack-sdk-ts/workflow"; +import { log, step } from "@restackio/ai/workflow"; import * as twilioFunctions from "@restackio/integrations-twilio/functions"; import { twilioTaskQueue } from "@restackio/integrations-twilio/taskQueue"; interface Output { From 71d93637285891d12b1aaef132e87fc1d69b59d7 Mon Sep 17 00:00:00 2001 From: leawn Date: Mon, 7 Oct 2024 11:24:48 +0200 Subject: [PATCH 085/122] Fix docker image name Former-commit-id: 0827787646eae5b290a903658739d891e3935b52 Former-commit-id: 69598066c5411f220774b95362a51a1d7d1595f4 --- docker-compose.yaml | 2 +- examples/get-started/readme.md | 2 +- readme.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 32aa00b..7607a2c 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,7 +1,7 @@ name: restack-engine services: studio: - image: ghcr.io/restackio/local-operator:main + image: ghcr.io/restackio/engine:main ports: - "5233:5233" - "6233:6233" diff --git a/examples/get-started/readme.md b/examples/get-started/readme.md index 23dcb88..4d80e4b 100644 --- a/examples/get-started/readme.md +++ b/examples/get-started/readme.md @@ -1,5 +1,5 @@ # Run Restack in Docker -docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/local-operator:main +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main # Open the Desktop UI http://localhost:5233 diff --git a/readme.md b/readme.md index 46a9eba..fee1235 100644 --- a/readme.md +++ b/readme.md @@ -6,7 +6,7 @@ Restack Engine will run locally in the application # Alternative run Restack in Docker -docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/local-operator:main +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main or From ca21f0b4f0b2d68acc9eff4bca2815c004923e7f Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Tue, 8 Oct 2024 14:23:03 +0200 Subject: [PATCH 086/122] Update workflow.ts Former-commit-id: 6f5aaaa775746db875de6583e4e9024649e4280f Former-commit-id: 2a66ebf7361a8c24d04b5b6b881ded05142fd29f --- examples/get-started/src/workflows/workflow.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/get-started/src/workflows/workflow.ts b/examples/get-started/src/workflows/workflow.ts index 4855ec1..48f546c 100644 --- a/examples/get-started/src/workflows/workflow.ts +++ b/examples/get-started/src/workflows/workflow.ts @@ -1,4 +1,3 @@ -import { welcome, goodbye } from "../functions/functions"; import { log, step } from "@restackio/ai/workflow"; export async function greetingWorkflow(name: String) { From 5984333e59e06b10739cdf92492712dc84d3240a Mon Sep 17 00:00:00 2001 From: atapia Date: Tue, 15 Oct 2024 15:34:10 +0200 Subject: [PATCH 087/122] add npx Former-commit-id: a5e98a4c063f290121023c50f4c8f6fc317144d0 Former-commit-id: 80bd88d4fa36bd7e0a81403957f793b090a88915 --- examples/get-started/bin/get-started.js | 37 + examples/get-started/package-lock.json | 2111 +++++++++++++++++++++++ examples/get-started/package.json | 46 +- 3 files changed, 2172 insertions(+), 22 deletions(-) create mode 100755 examples/get-started/bin/get-started.js create mode 100644 examples/get-started/package-lock.json diff --git a/examples/get-started/bin/get-started.js b/examples/get-started/bin/get-started.js new file mode 100755 index 0000000..41704df --- /dev/null +++ b/examples/get-started/bin/get-started.js @@ -0,0 +1,37 @@ +#!/usr/bin/env node + +const fs = require('fs'); +const path = require('path'); +const { execSync } = require('child_process'); + +const packageRoot = path.join(__dirname, '..'); +const currentDir = process.cwd(); + +function copyFiles() { + const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; + filesToCopy.forEach(file => { + fs.cpSync(path.join(packageRoot, file), path.join(currentDir, file), { recursive: true }); + }); + + // Copy package.json separately and modify it + const packageJson = require(path.join(packageRoot, 'package.json')); + delete packageJson.bin; + delete packageJson.files; + fs.writeFileSync(path.join(currentDir, 'package.json'), JSON.stringify(packageJson, null, 2)); +} + +function installDependencies() { + console.log('Installing dependencies...'); + execSync('npm install', { stdio: 'inherit', cwd: currentDir }); +} + +function main() { + console.log('Creating Restack get-started project...'); + copyFiles(); + installDependencies(); + console.log('Project created successfully!'); + console.log('To start the service, run: npm run service'); + console.log('To schedule a workflow, run: npm run schedule'); +} + +main(); \ No newline at end of file diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json new file mode 100644 index 0000000..20da248 --- /dev/null +++ b/examples/get-started/package-lock.json @@ -0,0 +1,2111 @@ +{ + "name": "@restackio/get-started", + "version": "1.0.4", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@restackio/get-started", + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", + "nodemon": "^2.0.22", + "ts-node": "^10.9.2", + "typescript": "^5.6.2" + }, + "bin": { + "get-started": "bin/get-started.js" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", + "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@restackio/ai": { + "version": "0.0.75", + "resolved": "https://registry.npmjs.org/@restackio/ai/-/ai-0.0.75.tgz", + "integrity": "sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==", + "dependencies": { + "@temporalio/activity": "^1.11.1", + "@temporalio/client": "^1.11.1", + "@temporalio/worker": "^1.11.1", + "@temporalio/workflow": "^1.11.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@swc/core": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.35.tgz", + "integrity": "sha512-3cUteCTbr2r5jqfgx0r091sfq5Mgh6F1SQh8XAOnSvtKzwv2bC31mvBHVAieD1uPa2kHJhLav20DQgXOhpEitw==", + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.13" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.35", + "@swc/core-darwin-x64": "1.7.35", + "@swc/core-linux-arm-gnueabihf": "1.7.35", + "@swc/core-linux-arm64-gnu": "1.7.35", + "@swc/core-linux-arm64-musl": "1.7.35", + "@swc/core-linux-x64-gnu": "1.7.35", + "@swc/core-linux-x64-musl": "1.7.35", + "@swc/core-win32-arm64-msvc": "1.7.35", + "@swc/core-win32-ia32-msvc": "1.7.35", + "@swc/core-win32-x64-msvc": "1.7.35" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.35.tgz", + "integrity": "sha512-BQSSozVxjxS+SVQz6e3GC/+OBWGIK3jfe52pWdANmycdjF3ch7lrCKTHTU7eHwyoJ96mofszPf5AsiVJF34Fwg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.35.tgz", + "integrity": "sha512-44TYdKN/EWtkU88foXR7IGki9JzhEJzaFOoPevfi9Xe7hjAD/x2+AJOWWqQNzDPMz9+QewLdUVLyR6s5okRgtg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.35.tgz", + "integrity": "sha512-ccfA5h3zxwioD+/z/AmYtkwtKz9m4rWTV7RoHq6Jfsb0cXHrd6tbcvgqRWXra1kASlE+cDWsMtEZygs9dJRtUQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.35.tgz", + "integrity": "sha512-hx65Qz+G4iG/IVtxJKewC5SJdki8PAPFGl6gC/57Jb0+jA4BIoGLD/J3Q3rCPeoHfdqpkCYpahtyUq8CKx41Jg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.35.tgz", + "integrity": "sha512-kL6tQL9No7UEoEvDRuPxzPTpxrvbwYteNRbdChSSP74j13/55G2/2hLmult5yFFaWuyoyU/2lvzjRL/i8OLZxg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.35.tgz", + "integrity": "sha512-Ke4rcLQSwCQ2LHdJX1FtnqmYNQ3IX6BddKlUtS7mcK13IHkQzZWp0Dcu6MgNA3twzb/dBpKX5GLy07XdGgfmyw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.35.tgz", + "integrity": "sha512-T30tlLnz0kYyDFyO5RQF5EQ4ENjW9+b56hEGgFUYmfhFhGA4E4V67iEx7KIG4u0whdPG7oy3qjyyIeTb7nElEw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.35.tgz", + "integrity": "sha512-CfM/k8mvtuMyX+okRhemfLt784PLS0KF7Q9djA8/Dtavk0L5Ghnq+XsGltO3d8B8+XZ7YOITsB14CrjehzeHsg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.35.tgz", + "integrity": "sha512-ATB3uuH8j/RmS64EXQZJSbo2WXfRNpTnQszHME/sGaexsuxeijrp3DTYSFAA3R2Bu6HbIIX6jempe1Au8I3j+A==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.35.tgz", + "integrity": "sha512-iDGfQO1571NqWUXtLYDhwIELA/wadH42ioGn+J9R336nWx40YICzy9UQyslWRhqzhQ5kT+QXAW/MoCWc058N6Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/types": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", + "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@temporalio/activity": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/activity/-/activity-1.11.2.tgz", + "integrity": "sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==", + "dependencies": { + "@temporalio/common": "1.11.2", + "abort-controller": "^3.0.0" + } + }, + "node_modules/@temporalio/client": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/client/-/client-1.11.2.tgz", + "integrity": "sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==", + "dependencies": { + "@grpc/grpc-js": "^1.10.7", + "@temporalio/common": "1.11.2", + "@temporalio/proto": "1.11.2", + "abort-controller": "^3.0.0", + "long": "^5.2.3", + "uuid": "^9.0.1" + } + }, + "node_modules/@temporalio/common": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/common/-/common-1.11.2.tgz", + "integrity": "sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==", + "dependencies": { + "@temporalio/proto": "1.11.2", + "long": "^5.2.3", + "ms": "^3.0.0-canary.1", + "proto3-json-serializer": "^2.0.0" + } + }, + "node_modules/@temporalio/core-bridge": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/core-bridge/-/core-bridge-1.11.2.tgz", + "integrity": "sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==", + "hasInstallScript": true, + "dependencies": { + "@temporalio/common": "1.11.2", + "arg": "^5.0.2", + "cargo-cp-artifact": "^0.1.8", + "which": "^4.0.0" + } + }, + "node_modules/@temporalio/proto": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/proto/-/proto-1.11.2.tgz", + "integrity": "sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==", + "dependencies": { + "long": "^5.2.3", + "protobufjs": "^7.2.5" + } + }, + "node_modules/@temporalio/worker": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/worker/-/worker-1.11.2.tgz", + "integrity": "sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==", + "dependencies": { + "@swc/core": "^1.3.102", + "@temporalio/activity": "1.11.2", + "@temporalio/client": "1.11.2", + "@temporalio/common": "1.11.2", + "@temporalio/core-bridge": "1.11.2", + "@temporalio/proto": "1.11.2", + "@temporalio/workflow": "1.11.2", + "abort-controller": "^3.0.0", + "heap-js": "^2.3.0", + "memfs": "^4.6.0", + "rxjs": "^7.8.1", + "source-map": "^0.7.4", + "source-map-loader": "^4.0.2", + "supports-color": "^8.1.1", + "swc-loader": "^0.2.3", + "unionfs": "^4.5.1", + "webpack": "^5.94.0" + }, + "engines": { + "node": ">= 16.0.0" + } + }, + "node_modules/@temporalio/workflow": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/workflow/-/workflow-1.11.2.tgz", + "integrity": "sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==", + "dependencies": { + "@temporalio/common": "1.11.2", + "@temporalio/proto": "1.11.2" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/cargo-cp-artifact": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz", + "integrity": "sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==", + "bin": { + "cargo-cp-artifact": "bin/cargo-cp-artifact.js" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.35", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.35.tgz", + "integrity": "sha512-hOSRInrIDm0Brzp4IHW2F/VM+638qOL2CzE0DgpnGzKW27C95IqqeqgKz/hxHGnvPxvQGpHUGD5qRVC9EZY2+A==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/heap-js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.5.0.tgz", + "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/memfs": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.13.0.tgz", + "integrity": "sha512-dIs5KGy24fbdDhIAg0RxXpFqQp3RwL6wgSMRF9OSuphL/Uc9a4u2/SDJKPLj/zUgtOGKuHrRMrj563+IErj4Cg==", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "3.0.0-canary.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", + "integrity": "sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==", + "engines": { + "node": ">=12.13" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", + "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/swc-loader": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.6.tgz", + "integrity": "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==", + "dependencies": { + "@swc/counter": "^0.1.3" + }, + "peerDependencies": { + "@swc/core": "^1.2.147", + "webpack": ">=2" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.34.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "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" + }, + "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 + } + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/unionfs": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/unionfs/-/unionfs-4.5.4.tgz", + "integrity": "sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==", + "dependencies": { + "fs-monkey": "^1.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + } +} diff --git a/examples/get-started/package.json b/examples/get-started/package.json index b0a57f4..fc3594d 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,30 +1,32 @@ { - "name": "sdk-example-ts", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "service": "ts-node src/services.ts", - "schedule": "ts-node ./scheduleWorkflow.ts", - "start.watch": "nodemon --exec ts-node --esm src/services.ts", - "build": "tsc --build", - "clean": "rm -rf node_modules" - }, - "nodemonConfig": { - "ext": "ts", - "watch": [ - "src" - ] + "name": "@restackio/get-started", + "version": "1.0.4", + "description": "Get started with Restack AI SDK", + "bin": { + "get-started": "bin/get-started.js" }, + "files": [ + "bin", + "src", + "scheduleWorkflow.ts", + "tsconfig.json" + ], + "keywords": [ + "restack", + "starter", + "template" + ], + "author": "Your Name", + "license": "MIT", "dependencies": { + "nodemon": "^2.0.22", + "ts-node": "^10.9.2", + "typescript": "^5.6.2", "@restackio/ai": "^0.0.75", "@temporalio/workflow": "^1.11.2" }, - "devDependencies": { - "@restackio/restack-sdk-cloud-ts": "^1.0.15", - "@types/node": "^20.16.9", - "nodemon": "^2.0.22", - "ts-node": "^10.9.2", - "typescript": "^5.6.2" + "scripts": { + "service": "ts-node src/services.ts", + "schedule": "ts-node scheduleWorkflow.ts" } } From 2e577c7e56c9a44fe5e84c012b819daadbc72043 Mon Sep 17 00:00:00 2001 From: Andres Tapia Date: Thu, 17 Oct 2024 16:48:02 +0200 Subject: [PATCH 088/122] Update scheduleWorkflow.ts remove process.exit() Former-commit-id: 988fe94c466a6c640e0cc36a1b4d478a4d368d5b Former-commit-id: 782183b6813b0ad2f853312faa09d2739b731bfa --- examples/get-started/scheduleWorkflow.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/get-started/scheduleWorkflow.ts b/examples/get-started/scheduleWorkflow.ts index e23bb22..2bcbed1 100644 --- a/examples/get-started/scheduleWorkflow.ts +++ b/examples/get-started/scheduleWorkflow.ts @@ -9,7 +9,6 @@ async function scheduleWorkflow() { }); const result = await client.getWorkflowResult({ workflowId, runId }); - process.exit(0); // Exit the process successfully }; From f3b68aed105a55f7357ea87d3959be27c6e129eb Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Mon, 21 Oct 2024 15:41:27 +0200 Subject: [PATCH 089/122] New get started Former-commit-id: 27dd57065b18d7d0d529471da0825144b178f304 Former-commit-id: 0ab9d3f8715d0dda9b926b3cc8dac273f6cf7bbf --- examples/get-started-new/package.json | 16 + examples/get-started-new/pnpm-lock.yaml | 1248 +++++++++++++++++ examples/get-started-new/scheduleWorkflow.ts | 16 + examples/get-started-new/src/client.ts | 3 + .../src/functions/functions.ts | 7 + .../get-started-new/src/get-started-new.ts | 66 + examples/get-started-new/src/services.ts | 17 + .../get-started-new/src/workflows/workflow.ts | 9 + examples/get-started-new/tsconfig.json | 17 + 9 files changed, 1399 insertions(+) create mode 100644 examples/get-started-new/package.json create mode 100644 examples/get-started-new/pnpm-lock.yaml create mode 100644 examples/get-started-new/scheduleWorkflow.ts create mode 100644 examples/get-started-new/src/client.ts create mode 100644 examples/get-started-new/src/functions/functions.ts create mode 100644 examples/get-started-new/src/get-started-new.ts create mode 100644 examples/get-started-new/src/services.ts create mode 100644 examples/get-started-new/src/workflows/workflow.ts create mode 100644 examples/get-started-new/tsconfig.json diff --git a/examples/get-started-new/package.json b/examples/get-started-new/package.json new file mode 100644 index 0000000..1e451e2 --- /dev/null +++ b/examples/get-started-new/package.json @@ -0,0 +1,16 @@ +{ + "name": "@restackio/get-started-new", + "bin": "dist/get-started-new.js", + "devDependencies": { + "@types/node": "22.7.6", + "tsup": "^8.3.0", + "typescript": "5.6.3" + }, + "dependencies": { + "@clack/prompts": "0.7.0" + }, + "scripts": { + "start": "tsx src/index.ts" + }, + "type": "module" +} diff --git a/examples/get-started-new/pnpm-lock.yaml b/examples/get-started-new/pnpm-lock.yaml new file mode 100644 index 0000000..2fa78bc --- /dev/null +++ b/examples/get-started-new/pnpm-lock.yaml @@ -0,0 +1,1248 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@clack/prompts': + specifier: 0.7.0 + version: 0.7.0 + devDependencies: + '@types/node': + specifier: 22.7.6 + version: 22.7.6 + tsup: + specifier: ^8.3.0 + version: 8.3.0(typescript@5.6.3) + typescript: + specifier: 5.6.3 + version: 5.6.3 + +packages: + + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/node@22.7.6': + resolution: {integrity: sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tinyglobby@0.2.9: + resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} + engines: {node: '>=12.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsup@8.3.0: + resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + +snapshots: + + '@clack/core@0.3.4': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.7.0': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + + '@types/estree@1.0.6': {} + + '@types/node@22.7.6': + dependencies: + undici-types: 6.19.8 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + bundle-require@5.0.0(esbuild@0.23.1): + dependencies: + esbuild: 0.23.1 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@4.1.1: {} + + consola@3.2.3: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fsevents@2.3.3: + optional: true + + get-stream@6.0.1: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + human-signals@2.1.0: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-stream@2.0.1: {} + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + joycon@3.1.1: {} + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + load-tsconfig@0.2.5: {} + + lodash.sortby@4.7.0: {} + + lru-cache@10.4.3: {} + + merge-stream@2.0.0: {} + + mimic-fn@2.1.0: {} + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.1.2: {} + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + normalize-path@3.0.0: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + object-assign@4.1.1: {} + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + package-json-from-dist@1.0.1: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pirates@4.0.6: {} + + postcss-load-config@6.0.1: + dependencies: + lilconfig: 3.1.2 + + punycode@2.3.1: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + resolve-from@5.0.0: {} + + rollup@4.24.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sisteransi@1.0.5: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-final-newline@2.0.0: {} + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tinyglobby@0.2.9: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + ts-interface-checker@0.1.13: {} + + tsup@8.3.0(typescript@5.6.3): + dependencies: + bundle-require: 5.0.0(esbuild@0.23.1) + cac: 6.7.14 + chokidar: 3.6.0 + consola: 3.2.3 + debug: 4.3.7 + esbuild: 0.23.1 + execa: 5.1.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1 + resolve-from: 5.0.0 + rollup: 4.24.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyglobby: 0.2.9 + tree-kill: 1.2.2 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + typescript@5.6.3: {} + + undici-types@6.19.8: {} + + webidl-conversions@4.0.2: {} + + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 diff --git a/examples/get-started-new/scheduleWorkflow.ts b/examples/get-started-new/scheduleWorkflow.ts new file mode 100644 index 0000000..e23bb22 --- /dev/null +++ b/examples/get-started-new/scheduleWorkflow.ts @@ -0,0 +1,16 @@ +import { client } from "./src/client"; + +async function scheduleWorkflow() { + + const workflowId = `${Date.now()}-greetingWorkflow`; + const runId = await client.scheduleWorkflow({ + workflowName: "greetingWorkflow", + workflowId, + }); + + const result = await client.getWorkflowResult({ workflowId, runId }); + process.exit(0); // Exit the process successfully + +}; + +scheduleWorkflow(); diff --git a/examples/get-started-new/src/client.ts b/examples/get-started-new/src/client.ts new file mode 100644 index 0000000..2808392 --- /dev/null +++ b/examples/get-started-new/src/client.ts @@ -0,0 +1,3 @@ +import Restack from "@restackio/ai"; + +export const client = new Restack(); diff --git a/examples/get-started-new/src/functions/functions.ts b/examples/get-started-new/src/functions/functions.ts new file mode 100644 index 0000000..ba11a84 --- /dev/null +++ b/examples/get-started-new/src/functions/functions.ts @@ -0,0 +1,7 @@ +export async function goodbye(name: String) { + return { message: `Goodbye, ${name}!` }; +}; + +export async function welcome(name: String) { + return { message: `Hello, ${name}!` }; +}; \ No newline at end of file diff --git a/examples/get-started-new/src/get-started-new.ts b/examples/get-started-new/src/get-started-new.ts new file mode 100644 index 0000000..402780b --- /dev/null +++ b/examples/get-started-new/src/get-started-new.ts @@ -0,0 +1,66 @@ +#!/usr/bin/env node +import * as clack from '@clack/prompts'; +import fs from 'fs'; +import { execSync } from 'child_process'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import packageJson from '../package.json'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const packageRoot = path.join(__dirname, '..'); + +async function main() { + clack.intro('Welcome Restack Get started'!); + + const currentDir = process.cwd(); + + // Copy files + const projectName = (await clack.text({ + message: 'Enter the project folder name:', + placeholder: './restack-get-started', + defaultValue: 'restack-get-started', + initialValue: 'restack-get-started', + validate(value) { + if (value.length === 0) return `⚠️ Project folder name is required`; + } + })) as string; + + if (projectName) { + const targetDir = path.join(currentDir, projectName); + console.log('🚀 ~ main ~ targetDir:', targetDir); + const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; + filesToCopy.forEach(file => { + fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); + }); + + // Copy package.json separately and modify it + delete packageJson.bin; + delete packageJson.files; + fs.writeFileSync(path.join(currentDir, 'package.json'), JSON.stringify(packageJson, null, 2)); + } + + const installDependencies = (await clack.confirm({ + message: 'Install dependencies?', + initialValue: true, + })) as boolean; + + if (installDependencies) { + console.log('Installing dependencies...'); + execSync('npm install', { stdio: 'inherit', cwd: currentDir }); + } + + const startRestack = (await clack.confirm({ + message: 'Start Restack Engine?', + initialValue: true, + })) as boolean; + + if (startRestack) { + console.log('Starting Restack Engine...'); + execSync('docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main', { stdio: 'inherit', cwd: currentDir }); + } + + clack.outro('👋 Goodbye'); +} + +main(); diff --git a/examples/get-started-new/src/services.ts b/examples/get-started-new/src/services.ts new file mode 100644 index 0000000..e713e1c --- /dev/null +++ b/examples/get-started-new/src/services.ts @@ -0,0 +1,17 @@ +import { welcome, goodbye } from "./functions/functions"; +import { client } from "./client"; + + +async function services() { + + const workflowsPath = require.resolve("./workflows/workflow"); + + client.startService({ + workflowsPath, + functions: { welcome, goodbye } + }); + +}; + +services(); + diff --git a/examples/get-started-new/src/workflows/workflow.ts b/examples/get-started-new/src/workflows/workflow.ts new file mode 100644 index 0000000..48f546c --- /dev/null +++ b/examples/get-started-new/src/workflows/workflow.ts @@ -0,0 +1,9 @@ +import { log, step } from "@restackio/ai/workflow"; + +export async function greetingWorkflow(name: String) { + const welcomeMessage = await step().welcome("human"); + log.info(welcomeMessage); + + const goodbyeMessage = await step().goodbye("human"); + log.info(goodbyeMessage); +} diff --git a/examples/get-started-new/tsconfig.json b/examples/get-started-new/tsconfig.json new file mode 100644 index 0000000..ac8e0f5 --- /dev/null +++ b/examples/get-started-new/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true, + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["**/*.ts", "src/**/*.ts"], + "exclude": ["dist", "node_modules"] +} From 2073c70c4781b1908eaa42d97732841bda5700a0 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Mon, 21 Oct 2024 17:15:33 +0200 Subject: [PATCH 090/122] Get started: upgrade Former-commit-id: a187fa5d037e3dca7be8a907809d13928efbc378 Former-commit-id: c395edb00949f4d38cd0d1033a9e1ed4766a7a77 --- examples/get-started-new/package.json | 16 - examples/get-started-new/pnpm-lock.yaml | 1248 ---- examples/get-started-new/scheduleWorkflow.ts | 16 - examples/get-started-new/src/client.ts | 3 - .../src/functions/functions.ts | 7 - examples/get-started-new/src/services.ts | 17 - .../get-started-new/src/workflows/workflow.ts | 9 - examples/get-started-new/tsconfig.json | 17 - examples/get-started/bin/get-started.js | 37 - examples/get-started/bin/get-started.mjs | 685 ++ .../bin/get-started.ts} | 40 +- examples/get-started/package-lock.json | 5713 +++++++++++------ examples/get-started/package.json | 12 +- examples/get-started/pnpm-lock.yaml | 1076 +++- 14 files changed, 5242 insertions(+), 3654 deletions(-) delete mode 100644 examples/get-started-new/package.json delete mode 100644 examples/get-started-new/pnpm-lock.yaml delete mode 100644 examples/get-started-new/scheduleWorkflow.ts delete mode 100644 examples/get-started-new/src/client.ts delete mode 100644 examples/get-started-new/src/functions/functions.ts delete mode 100644 examples/get-started-new/src/services.ts delete mode 100644 examples/get-started-new/src/workflows/workflow.ts delete mode 100644 examples/get-started-new/tsconfig.json delete mode 100755 examples/get-started/bin/get-started.js create mode 100755 examples/get-started/bin/get-started.mjs rename examples/{get-started-new/src/get-started-new.ts => get-started/bin/get-started.ts} (61%) diff --git a/examples/get-started-new/package.json b/examples/get-started-new/package.json deleted file mode 100644 index 1e451e2..0000000 --- a/examples/get-started-new/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "@restackio/get-started-new", - "bin": "dist/get-started-new.js", - "devDependencies": { - "@types/node": "22.7.6", - "tsup": "^8.3.0", - "typescript": "5.6.3" - }, - "dependencies": { - "@clack/prompts": "0.7.0" - }, - "scripts": { - "start": "tsx src/index.ts" - }, - "type": "module" -} diff --git a/examples/get-started-new/pnpm-lock.yaml b/examples/get-started-new/pnpm-lock.yaml deleted file mode 100644 index 2fa78bc..0000000 --- a/examples/get-started-new/pnpm-lock.yaml +++ /dev/null @@ -1,1248 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@clack/prompts': - specifier: 0.7.0 - version: 0.7.0 - devDependencies: - '@types/node': - specifier: 22.7.6 - version: 22.7.6 - tsup: - specifier: ^8.3.0 - version: 8.3.0(typescript@5.6.3) - typescript: - specifier: 5.6.3 - version: 5.6.3 - -packages: - - '@clack/core@0.3.4': - resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} - - '@clack/prompts@0.7.0': - resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} - bundledDependencies: - - is-unicode-supported - - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} - cpu: [x64] - os: [win32] - - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/node@22.7.6': - resolution: {integrity: sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - bundle-require@5.0.0: - resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} - hasBin: true - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - fdir@6.4.2: - resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - tinyglobby@0.2.9: - resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} - engines: {node: '>=12.0.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tsup@8.3.0: - resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - -snapshots: - - '@clack/core@0.3.4': - dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@clack/prompts@0.7.0': - dependencies: - '@clack/core': 0.3.4 - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@esbuild/aix-ppc64@0.23.1': - optional: true - - '@esbuild/android-arm64@0.23.1': - optional: true - - '@esbuild/android-arm@0.23.1': - optional: true - - '@esbuild/android-x64@0.23.1': - optional: true - - '@esbuild/darwin-arm64@0.23.1': - optional: true - - '@esbuild/darwin-x64@0.23.1': - optional: true - - '@esbuild/freebsd-arm64@0.23.1': - optional: true - - '@esbuild/freebsd-x64@0.23.1': - optional: true - - '@esbuild/linux-arm64@0.23.1': - optional: true - - '@esbuild/linux-arm@0.23.1': - optional: true - - '@esbuild/linux-ia32@0.23.1': - optional: true - - '@esbuild/linux-loong64@0.23.1': - optional: true - - '@esbuild/linux-mips64el@0.23.1': - optional: true - - '@esbuild/linux-ppc64@0.23.1': - optional: true - - '@esbuild/linux-riscv64@0.23.1': - optional: true - - '@esbuild/linux-s390x@0.23.1': - optional: true - - '@esbuild/linux-x64@0.23.1': - optional: true - - '@esbuild/netbsd-x64@0.23.1': - optional: true - - '@esbuild/openbsd-arm64@0.23.1': - optional: true - - '@esbuild/openbsd-x64@0.23.1': - optional: true - - '@esbuild/sunos-x64@0.23.1': - optional: true - - '@esbuild/win32-arm64@0.23.1': - optional: true - - '@esbuild/win32-ia32@0.23.1': - optional: true - - '@esbuild/win32-x64@0.23.1': - optional: true - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.24.0': - optional: true - - '@rollup/rollup-android-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-x64@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.24.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.24.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.24.0': - optional: true - - '@types/estree@1.0.6': {} - - '@types/node@22.7.6': - dependencies: - undici-types: 6.19.8 - - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - balanced-match@1.0.2: {} - - binary-extensions@2.3.0: {} - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - bundle-require@5.0.0(esbuild@0.23.1): - dependencies: - esbuild: 0.23.1 - load-tsconfig: 0.2.5 - - cac@6.7.14: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - commander@4.1.1: {} - - consola@3.2.3: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - debug@4.3.7: - dependencies: - ms: 2.1.3 - - eastasianwidth@0.2.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - esbuild@0.23.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - fdir@6.4.2(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - - fsevents@2.3.3: - optional: true - - get-stream@6.0.1: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob@10.4.5: - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - human-signals@2.1.0: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-stream@2.0.1: {} - - isexe@2.0.0: {} - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - joycon@3.1.1: {} - - lilconfig@3.1.2: {} - - lines-and-columns@1.2.4: {} - - load-tsconfig@0.2.5: {} - - lodash.sortby@4.7.0: {} - - lru-cache@10.4.3: {} - - merge-stream@2.0.0: {} - - mimic-fn@2.1.0: {} - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - - minipass@7.1.2: {} - - ms@2.1.3: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - normalize-path@3.0.0: {} - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - object-assign@4.1.1: {} - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - package-json-from-dist@1.0.1: {} - - path-key@3.1.1: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.2: {} - - pirates@4.0.6: {} - - postcss-load-config@6.0.1: - dependencies: - lilconfig: 3.1.2 - - punycode@2.3.1: {} - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - resolve-from@5.0.0: {} - - rollup@4.24.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 - fsevents: 2.3.3 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - sisteransi@1.0.5: {} - - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-final-newline@2.0.0: {} - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - tinyglobby@0.2.9: - dependencies: - fdir: 6.4.2(picomatch@4.0.2) - picomatch: 4.0.2 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - - tree-kill@1.2.2: {} - - ts-interface-checker@0.1.13: {} - - tsup@8.3.0(typescript@5.6.3): - dependencies: - bundle-require: 5.0.0(esbuild@0.23.1) - cac: 6.7.14 - chokidar: 3.6.0 - consola: 3.2.3 - debug: 4.3.7 - esbuild: 0.23.1 - execa: 5.1.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1 - resolve-from: 5.0.0 - rollup: 4.24.0 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tinyglobby: 0.2.9 - tree-kill: 1.2.2 - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - - typescript@5.6.3: {} - - undici-types@6.19.8: {} - - webidl-conversions@4.0.2: {} - - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 diff --git a/examples/get-started-new/scheduleWorkflow.ts b/examples/get-started-new/scheduleWorkflow.ts deleted file mode 100644 index e23bb22..0000000 --- a/examples/get-started-new/scheduleWorkflow.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { client } from "./src/client"; - -async function scheduleWorkflow() { - - const workflowId = `${Date.now()}-greetingWorkflow`; - const runId = await client.scheduleWorkflow({ - workflowName: "greetingWorkflow", - workflowId, - }); - - const result = await client.getWorkflowResult({ workflowId, runId }); - process.exit(0); // Exit the process successfully - -}; - -scheduleWorkflow(); diff --git a/examples/get-started-new/src/client.ts b/examples/get-started-new/src/client.ts deleted file mode 100644 index 2808392..0000000 --- a/examples/get-started-new/src/client.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Restack from "@restackio/ai"; - -export const client = new Restack(); diff --git a/examples/get-started-new/src/functions/functions.ts b/examples/get-started-new/src/functions/functions.ts deleted file mode 100644 index ba11a84..0000000 --- a/examples/get-started-new/src/functions/functions.ts +++ /dev/null @@ -1,7 +0,0 @@ -export async function goodbye(name: String) { - return { message: `Goodbye, ${name}!` }; -}; - -export async function welcome(name: String) { - return { message: `Hello, ${name}!` }; -}; \ No newline at end of file diff --git a/examples/get-started-new/src/services.ts b/examples/get-started-new/src/services.ts deleted file mode 100644 index e713e1c..0000000 --- a/examples/get-started-new/src/services.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { welcome, goodbye } from "./functions/functions"; -import { client } from "./client"; - - -async function services() { - - const workflowsPath = require.resolve("./workflows/workflow"); - - client.startService({ - workflowsPath, - functions: { welcome, goodbye } - }); - -}; - -services(); - diff --git a/examples/get-started-new/src/workflows/workflow.ts b/examples/get-started-new/src/workflows/workflow.ts deleted file mode 100644 index 48f546c..0000000 --- a/examples/get-started-new/src/workflows/workflow.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { log, step } from "@restackio/ai/workflow"; - -export async function greetingWorkflow(name: String) { - const welcomeMessage = await step().welcome("human"); - log.info(welcomeMessage); - - const goodbyeMessage = await step().goodbye("human"); - log.info(goodbyeMessage); -} diff --git a/examples/get-started-new/tsconfig.json b/examples/get-started-new/tsconfig.json deleted file mode 100644 index ac8e0f5..0000000 --- a/examples/get-started-new/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "Node", - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "strict": true, - "skipLibCheck": true, - "baseUrl": ".", - "paths": { - "@/*": ["src/*"] - } - }, - "include": ["**/*.ts", "src/**/*.ts"], - "exclude": ["dist", "node_modules"] -} diff --git a/examples/get-started/bin/get-started.js b/examples/get-started/bin/get-started.js deleted file mode 100755 index 41704df..0000000 --- a/examples/get-started/bin/get-started.js +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env node - -const fs = require('fs'); -const path = require('path'); -const { execSync } = require('child_process'); - -const packageRoot = path.join(__dirname, '..'); -const currentDir = process.cwd(); - -function copyFiles() { - const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; - filesToCopy.forEach(file => { - fs.cpSync(path.join(packageRoot, file), path.join(currentDir, file), { recursive: true }); - }); - - // Copy package.json separately and modify it - const packageJson = require(path.join(packageRoot, 'package.json')); - delete packageJson.bin; - delete packageJson.files; - fs.writeFileSync(path.join(currentDir, 'package.json'), JSON.stringify(packageJson, null, 2)); -} - -function installDependencies() { - console.log('Installing dependencies...'); - execSync('npm install', { stdio: 'inherit', cwd: currentDir }); -} - -function main() { - console.log('Creating Restack get-started project...'); - copyFiles(); - installDependencies(); - console.log('Project created successfully!'); - console.log('To start the service, run: npm run service'); - console.log('To schedule a workflow, run: npm run schedule'); -} - -main(); \ No newline at end of file diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs new file mode 100755 index 0000000..16c61b1 --- /dev/null +++ b/examples/get-started/bin/get-started.mjs @@ -0,0 +1,685 @@ +#!/usr/bin/env node +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// ../node_modules/sisteransi/src/index.js +var require_src = __commonJS({ + "../node_modules/sisteransi/src/index.js"(exports, module) { + "use strict"; + var ESC = "\x1B"; + var CSI = `${ESC}[`; + var beep = "\x07"; + var cursor = { + to(x3, y3) { + if (!y3) return `${CSI}${x3 + 1}G`; + return `${CSI}${y3 + 1};${x3 + 1}H`; + }, + move(x3, y3) { + let ret = ""; + if (x3 < 0) ret += `${CSI}${-x3}D`; + else if (x3 > 0) ret += `${CSI}${x3}C`; + if (y3 < 0) ret += `${CSI}${-y3}A`; + else if (y3 > 0) ret += `${CSI}${y3}B`; + return ret; + }, + up: (count = 1) => `${CSI}${count}A`, + down: (count = 1) => `${CSI}${count}B`, + forward: (count = 1) => `${CSI}${count}C`, + backward: (count = 1) => `${CSI}${count}D`, + nextLine: (count = 1) => `${CSI}E`.repeat(count), + prevLine: (count = 1) => `${CSI}F`.repeat(count), + left: `${CSI}G`, + hide: `${CSI}?25l`, + show: `${CSI}?25h`, + save: `${ESC}7`, + restore: `${ESC}8` + }; + var scroll = { + up: (count = 1) => `${CSI}S`.repeat(count), + down: (count = 1) => `${CSI}T`.repeat(count) + }; + var erase = { + screen: `${CSI}2J`, + up: (count = 1) => `${CSI}1J`.repeat(count), + down: (count = 1) => `${CSI}J`.repeat(count), + line: `${CSI}2K`, + lineEnd: `${CSI}K`, + lineStart: `${CSI}1K`, + lines(count) { + let clear = ""; + for (let i = 0; i < count; i++) + clear += this.line + (i < count - 1 ? cursor.up() : ""); + if (count) + clear += cursor.left; + return clear; + } + }; + module.exports = { cursor, scroll, erase, beep }; + } +}); + +// ../node_modules/picocolors/picocolors.js +var require_picocolors = __commonJS({ + "../node_modules/picocolors/picocolors.js"(exports, module) { + var p = process || {}; + var argv = p.argv || []; + var env = p.env || {}; + var isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI); + var formatter = (open, close, replace = open) => (input) => { + let string = "" + input, index = string.indexOf(close, open.length); + return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; + }; + var replaceClose = (string, close, replace, index) => { + let result = "", cursor = 0; + do { + result += string.substring(cursor, index) + replace; + cursor = index + close.length; + index = string.indexOf(close, cursor); + } while (~index); + return result + string.substring(cursor); + }; + var createColors = (enabled = isColorSupported) => { + let f = enabled ? formatter : () => String; + return { + isColorSupported: enabled, + reset: f("\x1B[0m", "\x1B[0m"), + bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), + dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), + italic: f("\x1B[3m", "\x1B[23m"), + underline: f("\x1B[4m", "\x1B[24m"), + inverse: f("\x1B[7m", "\x1B[27m"), + hidden: f("\x1B[8m", "\x1B[28m"), + strikethrough: f("\x1B[9m", "\x1B[29m"), + black: f("\x1B[30m", "\x1B[39m"), + red: f("\x1B[31m", "\x1B[39m"), + green: f("\x1B[32m", "\x1B[39m"), + yellow: f("\x1B[33m", "\x1B[39m"), + blue: f("\x1B[34m", "\x1B[39m"), + magenta: f("\x1B[35m", "\x1B[39m"), + cyan: f("\x1B[36m", "\x1B[39m"), + white: f("\x1B[37m", "\x1B[39m"), + gray: f("\x1B[90m", "\x1B[39m"), + bgBlack: f("\x1B[40m", "\x1B[49m"), + bgRed: f("\x1B[41m", "\x1B[49m"), + bgGreen: f("\x1B[42m", "\x1B[49m"), + bgYellow: f("\x1B[43m", "\x1B[49m"), + bgBlue: f("\x1B[44m", "\x1B[49m"), + bgMagenta: f("\x1B[45m", "\x1B[49m"), + bgCyan: f("\x1B[46m", "\x1B[49m"), + bgWhite: f("\x1B[47m", "\x1B[49m"), + blackBright: f("\x1B[90m", "\x1B[39m"), + redBright: f("\x1B[91m", "\x1B[39m"), + greenBright: f("\x1B[92m", "\x1B[39m"), + yellowBright: f("\x1B[93m", "\x1B[39m"), + blueBright: f("\x1B[94m", "\x1B[39m"), + magentaBright: f("\x1B[95m", "\x1B[39m"), + cyanBright: f("\x1B[96m", "\x1B[39m"), + whiteBright: f("\x1B[97m", "\x1B[39m"), + bgBlackBright: f("\x1B[100m", "\x1B[49m"), + bgRedBright: f("\x1B[101m", "\x1B[49m"), + bgGreenBright: f("\x1B[102m", "\x1B[49m"), + bgYellowBright: f("\x1B[103m", "\x1B[49m"), + bgBlueBright: f("\x1B[104m", "\x1B[49m"), + bgMagentaBright: f("\x1B[105m", "\x1B[49m"), + bgCyanBright: f("\x1B[106m", "\x1B[49m"), + bgWhiteBright: f("\x1B[107m", "\x1B[49m") + }; + }; + module.exports = createColors(); + module.exports.createColors = createColors; + } +}); + +// ../node_modules/@clack/core/dist/index.mjs +var import_sisteransi = __toESM(require_src(), 1); +import { stdin as $, stdout as k } from "node:process"; +var import_picocolors = __toESM(require_picocolors(), 1); +import _ from "node:readline"; +import { WriteStream as U } from "node:tty"; +function q({ onlyFirst: t = false } = {}) { + const u = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"); + return new RegExp(u, t ? void 0 : "g"); +} +function S(t) { + if (typeof t != "string") throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``); + return t.replace(q(), ""); +} +function j(t) { + return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; +} +var M = { exports: {} }; +(function(t) { + var u = {}; + t.exports = u, u.eastAsianWidth = function(e2) { + var s = e2.charCodeAt(0), C2 = e2.length == 2 ? e2.charCodeAt(1) : 0, D = s; + return 55296 <= s && s <= 56319 && 56320 <= C2 && C2 <= 57343 && (s &= 1023, C2 &= 1023, D = s << 10 | C2, D += 65536), D == 12288 || 65281 <= D && D <= 65376 || 65504 <= D && D <= 65510 ? "F" : D == 8361 || 65377 <= D && D <= 65470 || 65474 <= D && D <= 65479 || 65482 <= D && D <= 65487 || 65490 <= D && D <= 65495 || 65498 <= D && D <= 65500 || 65512 <= D && D <= 65518 ? "H" : 4352 <= D && D <= 4447 || 4515 <= D && D <= 4519 || 4602 <= D && D <= 4607 || 9001 <= D && D <= 9002 || 11904 <= D && D <= 11929 || 11931 <= D && D <= 12019 || 12032 <= D && D <= 12245 || 12272 <= D && D <= 12283 || 12289 <= D && D <= 12350 || 12353 <= D && D <= 12438 || 12441 <= D && D <= 12543 || 12549 <= D && D <= 12589 || 12593 <= D && D <= 12686 || 12688 <= D && D <= 12730 || 12736 <= D && D <= 12771 || 12784 <= D && D <= 12830 || 12832 <= D && D <= 12871 || 12880 <= D && D <= 13054 || 13056 <= D && D <= 19903 || 19968 <= D && D <= 42124 || 42128 <= D && D <= 42182 || 43360 <= D && D <= 43388 || 44032 <= D && D <= 55203 || 55216 <= D && D <= 55238 || 55243 <= D && D <= 55291 || 63744 <= D && D <= 64255 || 65040 <= D && D <= 65049 || 65072 <= D && D <= 65106 || 65108 <= D && D <= 65126 || 65128 <= D && D <= 65131 || 110592 <= D && D <= 110593 || 127488 <= D && D <= 127490 || 127504 <= D && D <= 127546 || 127552 <= D && D <= 127560 || 127568 <= D && D <= 127569 || 131072 <= D && D <= 194367 || 177984 <= D && D <= 196605 || 196608 <= D && D <= 262141 ? "W" : 32 <= D && D <= 126 || 162 <= D && D <= 163 || 165 <= D && D <= 166 || D == 172 || D == 175 || 10214 <= D && D <= 10221 || 10629 <= D && D <= 10630 ? "Na" : D == 161 || D == 164 || 167 <= D && D <= 168 || D == 170 || 173 <= D && D <= 174 || 176 <= D && D <= 180 || 182 <= D && D <= 186 || 188 <= D && D <= 191 || D == 198 || D == 208 || 215 <= D && D <= 216 || 222 <= D && D <= 225 || D == 230 || 232 <= D && D <= 234 || 236 <= D && D <= 237 || D == 240 || 242 <= D && D <= 243 || 247 <= D && D <= 250 || D == 252 || D == 254 || D == 257 || D == 273 || D == 275 || D == 283 || 294 <= D && D <= 295 || D == 299 || 305 <= D && D <= 307 || D == 312 || 319 <= D && D <= 322 || D == 324 || 328 <= D && D <= 331 || D == 333 || 338 <= D && D <= 339 || 358 <= D && D <= 359 || D == 363 || D == 462 || D == 464 || D == 466 || D == 468 || D == 470 || D == 472 || D == 474 || D == 476 || D == 593 || D == 609 || D == 708 || D == 711 || 713 <= D && D <= 715 || D == 717 || D == 720 || 728 <= D && D <= 731 || D == 733 || D == 735 || 768 <= D && D <= 879 || 913 <= D && D <= 929 || 931 <= D && D <= 937 || 945 <= D && D <= 961 || 963 <= D && D <= 969 || D == 1025 || 1040 <= D && D <= 1103 || D == 1105 || D == 8208 || 8211 <= D && D <= 8214 || 8216 <= D && D <= 8217 || 8220 <= D && D <= 8221 || 8224 <= D && D <= 8226 || 8228 <= D && D <= 8231 || D == 8240 || 8242 <= D && D <= 8243 || D == 8245 || D == 8251 || D == 8254 || D == 8308 || D == 8319 || 8321 <= D && D <= 8324 || D == 8364 || D == 8451 || D == 8453 || D == 8457 || D == 8467 || D == 8470 || 8481 <= D && D <= 8482 || D == 8486 || D == 8491 || 8531 <= D && D <= 8532 || 8539 <= D && D <= 8542 || 8544 <= D && D <= 8555 || 8560 <= D && D <= 8569 || D == 8585 || 8592 <= D && D <= 8601 || 8632 <= D && D <= 8633 || D == 8658 || D == 8660 || D == 8679 || D == 8704 || 8706 <= D && D <= 8707 || 8711 <= D && D <= 8712 || D == 8715 || D == 8719 || D == 8721 || D == 8725 || D == 8730 || 8733 <= D && D <= 8736 || D == 8739 || D == 8741 || 8743 <= D && D <= 8748 || D == 8750 || 8756 <= D && D <= 8759 || 8764 <= D && D <= 8765 || D == 8776 || D == 8780 || D == 8786 || 8800 <= D && D <= 8801 || 8804 <= D && D <= 8807 || 8810 <= D && D <= 8811 || 8814 <= D && D <= 8815 || 8834 <= D && D <= 8835 || 8838 <= D && D <= 8839 || D == 8853 || D == 8857 || D == 8869 || D == 8895 || D == 8978 || 9312 <= D && D <= 9449 || 9451 <= D && D <= 9547 || 9552 <= D && D <= 9587 || 9600 <= D && D <= 9615 || 9618 <= D && D <= 9621 || 9632 <= D && D <= 9633 || 9635 <= D && D <= 9641 || 9650 <= D && D <= 9651 || 9654 <= D && D <= 9655 || 9660 <= D && D <= 9661 || 9664 <= D && D <= 9665 || 9670 <= D && D <= 9672 || D == 9675 || 9678 <= D && D <= 9681 || 9698 <= D && D <= 9701 || D == 9711 || 9733 <= D && D <= 9734 || D == 9737 || 9742 <= D && D <= 9743 || 9748 <= D && D <= 9749 || D == 9756 || D == 9758 || D == 9792 || D == 9794 || 9824 <= D && D <= 9825 || 9827 <= D && D <= 9829 || 9831 <= D && D <= 9834 || 9836 <= D && D <= 9837 || D == 9839 || 9886 <= D && D <= 9887 || 9918 <= D && D <= 9919 || 9924 <= D && D <= 9933 || 9935 <= D && D <= 9953 || D == 9955 || 9960 <= D && D <= 9983 || D == 10045 || D == 10071 || 10102 <= D && D <= 10111 || 11093 <= D && D <= 11097 || 12872 <= D && D <= 12879 || 57344 <= D && D <= 63743 || 65024 <= D && D <= 65039 || D == 65533 || 127232 <= D && D <= 127242 || 127248 <= D && D <= 127277 || 127280 <= D && D <= 127337 || 127344 <= D && D <= 127386 || 917760 <= D && D <= 917999 || 983040 <= D && D <= 1048573 || 1048576 <= D && D <= 1114109 ? "A" : "N"; + }, u.characterLength = function(e2) { + var s = this.eastAsianWidth(e2); + return s == "F" || s == "W" || s == "A" ? 2 : 1; + }; + function F(e2) { + return e2.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; + } + u.length = function(e2) { + for (var s = F(e2), C2 = 0, D = 0; D < s.length; D++) C2 = C2 + this.characterLength(s[D]); + return C2; + }, u.slice = function(e2, s, C2) { + textLen = u.length(e2), s = s || 0, C2 = C2 || 1, s < 0 && (s = textLen + s), C2 < 0 && (C2 = textLen + C2); + for (var D = "", i = 0, n = F(e2), E2 = 0; E2 < n.length; E2++) { + var h2 = n[E2], o2 = u.length(h2); + if (i >= s - (o2 == 2 ? 1 : 0)) if (i + o2 <= C2) D += h2; + else break; + i += o2; + } + return D; + }; +})(M); +var J = M.exports; +var Q = j(J); +var X = function() { + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; +var DD = j(X); +function A(t, u = {}) { + if (typeof t != "string" || t.length === 0 || (u = { ambiguousIsNarrow: true, ...u }, t = S(t), t.length === 0)) return 0; + t = t.replace(DD(), " "); + const F = u.ambiguousIsNarrow ? 1 : 2; + let e2 = 0; + for (const s of t) { + const C2 = s.codePointAt(0); + if (C2 <= 31 || C2 >= 127 && C2 <= 159 || C2 >= 768 && C2 <= 879) continue; + switch (Q.eastAsianWidth(s)) { + case "F": + case "W": + e2 += 2; + break; + case "A": + e2 += F; + break; + default: + e2 += 1; + } + } + return e2; +} +var m = 10; +var T = (t = 0) => (u) => `\x1B[${u + t}m`; +var P = (t = 0) => (u) => `\x1B[${38 + t};5;${u}m`; +var W = (t = 0) => (u, F, e2) => `\x1B[${38 + t};2;${u};${F};${e2}m`; +var r = { modifier: { reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], overline: [53, 55], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], blackBright: [90, 39], gray: [90, 39], grey: [90, 39], redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], bgBlackBright: [100, 49], bgGray: [100, 49], bgGrey: [100, 49], bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; +Object.keys(r.modifier); +var uD = Object.keys(r.color); +var FD = Object.keys(r.bgColor); +[...uD, ...FD]; +function tD() { + const t = /* @__PURE__ */ new Map(); + for (const [u, F] of Object.entries(r)) { + for (const [e2, s] of Object.entries(F)) r[e2] = { open: `\x1B[${s[0]}m`, close: `\x1B[${s[1]}m` }, F[e2] = r[e2], t.set(s[0], s[1]); + Object.defineProperty(r, u, { value: F, enumerable: false }); + } + return Object.defineProperty(r, "codes", { value: t, enumerable: false }), r.color.close = "\x1B[39m", r.bgColor.close = "\x1B[49m", r.color.ansi = T(), r.color.ansi256 = P(), r.color.ansi16m = W(), r.bgColor.ansi = T(m), r.bgColor.ansi256 = P(m), r.bgColor.ansi16m = W(m), Object.defineProperties(r, { rgbToAnsi256: { value: (u, F, e2) => u === F && F === e2 ? u < 8 ? 16 : u > 248 ? 231 : Math.round((u - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(u / 255 * 5) + 6 * Math.round(F / 255 * 5) + Math.round(e2 / 255 * 5), enumerable: false }, hexToRgb: { value: (u) => { + const F = /[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16)); + if (!F) return [0, 0, 0]; + let [e2] = F; + e2.length === 3 && (e2 = [...e2].map((C2) => C2 + C2).join("")); + const s = Number.parseInt(e2, 16); + return [s >> 16 & 255, s >> 8 & 255, s & 255]; + }, enumerable: false }, hexToAnsi256: { value: (u) => r.rgbToAnsi256(...r.hexToRgb(u)), enumerable: false }, ansi256ToAnsi: { value: (u) => { + if (u < 8) return 30 + u; + if (u < 16) return 90 + (u - 8); + let F, e2, s; + if (u >= 232) F = ((u - 232) * 10 + 8) / 255, e2 = F, s = F; + else { + u -= 16; + const i = u % 36; + F = Math.floor(u / 36) / 5, e2 = Math.floor(i / 6) / 5, s = i % 6 / 5; + } + const C2 = Math.max(F, e2, s) * 2; + if (C2 === 0) return 30; + let D = 30 + (Math.round(s) << 2 | Math.round(e2) << 1 | Math.round(F)); + return C2 === 2 && (D += 60), D; + }, enumerable: false }, rgbToAnsi: { value: (u, F, e2) => r.ansi256ToAnsi(r.rgbToAnsi256(u, F, e2)), enumerable: false }, hexToAnsi: { value: (u) => r.ansi256ToAnsi(r.hexToAnsi256(u)), enumerable: false } }), r; +} +var eD = tD(); +var g = /* @__PURE__ */ new Set(["\x1B", "\x9B"]); +var sD = 39; +var b = "\x07"; +var O = "["; +var CD = "]"; +var I = "m"; +var w = `${CD}8;;`; +var N = (t) => `${g.values().next().value}${O}${t}${I}`; +var L = (t) => `${g.values().next().value}${w}${t}${b}`; +var iD = (t) => t.split(" ").map((u) => A(u)); +var y = (t, u, F) => { + const e2 = [...u]; + let s = false, C2 = false, D = A(S(t[t.length - 1])); + for (const [i, n] of e2.entries()) { + const E2 = A(n); + if (D + E2 <= F ? t[t.length - 1] += n : (t.push(n), D = 0), g.has(n) && (s = true, C2 = e2.slice(i + 1).join("").startsWith(w)), s) { + C2 ? n === b && (s = false, C2 = false) : n === I && (s = false); + continue; + } + D += E2, D === F && i < e2.length - 1 && (t.push(""), D = 0); + } + !D && t[t.length - 1].length > 0 && t.length > 1 && (t[t.length - 2] += t.pop()); +}; +var rD = (t) => { + const u = t.split(" "); + let F = u.length; + for (; F > 0 && !(A(u[F - 1]) > 0); ) F--; + return F === u.length ? t : u.slice(0, F).join(" ") + u.slice(F).join(""); +}; +var ED = (t, u, F = {}) => { + if (F.trim !== false && t.trim() === "") return ""; + let e2 = "", s, C2; + const D = iD(t); + let i = [""]; + for (const [E2, h2] of t.split(" ").entries()) { + F.trim !== false && (i[i.length - 1] = i[i.length - 1].trimStart()); + let o2 = A(i[i.length - 1]); + if (E2 !== 0 && (o2 >= u && (F.wordWrap === false || F.trim === false) && (i.push(""), o2 = 0), (o2 > 0 || F.trim === false) && (i[i.length - 1] += " ", o2++)), F.hard && D[E2] > u) { + const B2 = u - o2, p = 1 + Math.floor((D[E2] - B2 - 1) / u); + Math.floor((D[E2] - 1) / u) < p && i.push(""), y(i, h2, u); + continue; + } + if (o2 + D[E2] > u && o2 > 0 && D[E2] > 0) { + if (F.wordWrap === false && o2 < u) { + y(i, h2, u); + continue; + } + i.push(""); + } + if (o2 + D[E2] > u && F.wordWrap === false) { + y(i, h2, u); + continue; + } + i[i.length - 1] += h2; + } + F.trim !== false && (i = i.map((E2) => rD(E2))); + const n = [...i.join(` +`)]; + for (const [E2, h2] of n.entries()) { + if (e2 += h2, g.has(h2)) { + const { groups: B2 } = new RegExp(`(?:\\${O}(?\\d+)m|\\${w}(?.*)${b})`).exec(n.slice(E2).join("")) || { groups: {} }; + if (B2.code !== void 0) { + const p = Number.parseFloat(B2.code); + s = p === sD ? void 0 : p; + } else B2.uri !== void 0 && (C2 = B2.uri.length === 0 ? void 0 : B2.uri); + } + const o2 = eD.codes.get(Number(s)); + n[E2 + 1] === ` +` ? (C2 && (e2 += L("")), s && o2 && (e2 += N(o2))) : h2 === ` +` && (s && o2 && (e2 += N(s)), C2 && (e2 += L(C2))); + } + return e2; +}; +function R(t, u, F) { + return String(t).normalize().replace(/\r\n/g, ` +`).split(` +`).map((e2) => ED(e2, u, F)).join(` +`); +} +var oD = Object.defineProperty; +var nD = (t, u, F) => u in t ? oD(t, u, { enumerable: true, configurable: true, writable: true, value: F }) : t[u] = F; +var a = (t, u, F) => (nD(t, typeof u != "symbol" ? u + "" : u, F), F); +function aD(t, u) { + if (t === u) return; + const F = t.split(` +`), e2 = u.split(` +`), s = []; + for (let C2 = 0; C2 < Math.max(F.length, e2.length); C2++) F[C2] !== e2[C2] && s.push(C2); + return s; +} +var V = Symbol("clack:cancel"); +function v(t, u) { + t.isTTY && t.setRawMode(u); +} +var z = /* @__PURE__ */ new Map([["k", "up"], ["j", "down"], ["h", "left"], ["l", "right"]]); +var lD = /* @__PURE__ */ new Set(["up", "down", "left", "right", "space", "enter"]); +var x = class { + constructor({ render: u, input: F = $, output: e2 = k, ...s }, C2 = true) { + a(this, "input"), a(this, "output"), a(this, "rl"), a(this, "opts"), a(this, "_track", false), a(this, "_render"), a(this, "_cursor", 0), a(this, "state", "initial"), a(this, "value"), a(this, "error", ""), a(this, "subscribers", /* @__PURE__ */ new Map()), a(this, "_prevFrame", ""), this.opts = s, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = u.bind(this), this._track = C2, this.input = F, this.output = e2; + } + prompt() { + const u = new U(0); + return u._write = (F, e2, s) => { + this._track && (this.value = this.rl.line.replace(/\t/g, ""), this._cursor = this.rl.cursor, this.emit("value", this.value)), s(); + }, this.input.pipe(u), this.rl = _.createInterface({ input: this.input, output: u, tabSize: 2, prompt: "", escapeCodeTimeout: 50 }), _.emitKeypressEvents(this.input, this.rl), this.rl.prompt(), this.opts.initialValue !== void 0 && this._track && this.rl.write(this.opts.initialValue), this.input.on("keypress", this.onKeypress), v(this.input, true), this.output.on("resize", this.render), this.render(), new Promise((F, e2) => { + this.once("submit", () => { + this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), v(this.input, false), F(this.value); + }), this.once("cancel", () => { + this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), v(this.input, false), F(V); + }); + }); + } + on(u, F) { + const e2 = this.subscribers.get(u) ?? []; + e2.push({ cb: F }), this.subscribers.set(u, e2); + } + once(u, F) { + const e2 = this.subscribers.get(u) ?? []; + e2.push({ cb: F, once: true }), this.subscribers.set(u, e2); + } + emit(u, ...F) { + const e2 = this.subscribers.get(u) ?? [], s = []; + for (const C2 of e2) C2.cb(...F), C2.once && s.push(() => e2.splice(e2.indexOf(C2), 1)); + for (const C2 of s) C2(); + } + unsubscribe() { + this.subscribers.clear(); + } + onKeypress(u, F) { + if (this.state === "error" && (this.state = "active"), F?.name && !this._track && z.has(F.name) && this.emit("cursor", z.get(F.name)), F?.name && lD.has(F.name) && this.emit("cursor", F.name), u && (u.toLowerCase() === "y" || u.toLowerCase() === "n") && this.emit("confirm", u.toLowerCase() === "y"), u === " " && this.opts.placeholder && (this.value || (this.rl.write(this.opts.placeholder), this.emit("value", this.opts.placeholder))), u && this.emit("key", u.toLowerCase()), F?.name === "return") { + if (this.opts.validate) { + const e2 = this.opts.validate(this.value); + e2 && (this.error = e2, this.state = "error", this.rl.write(this.value)); + } + this.state !== "error" && (this.state = "submit"); + } + u === "" && (this.state = "cancel"), (this.state === "submit" || this.state === "cancel") && this.emit("finalize"), this.render(), (this.state === "submit" || this.state === "cancel") && this.close(); + } + close() { + this.input.unpipe(), this.input.removeListener("keypress", this.onKeypress), this.output.write(` +`), v(this.input, false), this.rl.close(), this.emit(`${this.state}`, this.value), this.unsubscribe(); + } + restoreCursor() { + const u = R(this._prevFrame, process.stdout.columns, { hard: true }).split(` +`).length - 1; + this.output.write(import_sisteransi.cursor.move(-999, u * -1)); + } + render() { + const u = R(this._render(this) ?? "", process.stdout.columns, { hard: true }); + if (u !== this._prevFrame) { + if (this.state === "initial") this.output.write(import_sisteransi.cursor.hide); + else { + const F = aD(this._prevFrame, u); + if (this.restoreCursor(), F && F?.length === 1) { + const e2 = F[0]; + this.output.write(import_sisteransi.cursor.move(0, e2)), this.output.write(import_sisteransi.erase.lines(1)); + const s = u.split(` +`); + this.output.write(s[e2]), this._prevFrame = u, this.output.write(import_sisteransi.cursor.move(0, s.length - e2 - 1)); + return; + } else if (F && F?.length > 1) { + const e2 = F[0]; + this.output.write(import_sisteransi.cursor.move(0, e2)), this.output.write(import_sisteransi.erase.down()); + const s = u.split(` +`).slice(e2); + this.output.write(s.join(` +`)), this._prevFrame = u; + return; + } + this.output.write(import_sisteransi.erase.down()); + } + this.output.write(u), this.state === "initial" && (this.state = "active"), this._prevFrame = u; + } + } +}; +var xD = class extends x { + get cursor() { + return this.value ? 0 : 1; + } + get _value() { + return this.cursor === 0; + } + constructor(u) { + super(u, false), this.value = !!u.initialValue, this.on("value", () => { + this.value = this._value; + }), this.on("confirm", (F) => { + this.output.write(import_sisteransi.cursor.move(0, -1)), this.value = F, this.state = "submit", this.close(); + }), this.on("cursor", () => { + this.value = !this.value; + }); + } +}; +var SD = Object.defineProperty; +var jD = (t, u, F) => u in t ? SD(t, u, { enumerable: true, configurable: true, writable: true, value: F }) : t[u] = F; +var MD = (t, u, F) => (jD(t, typeof u != "symbol" ? u + "" : u, F), F); +var TD = class extends x { + constructor(u) { + super(u), MD(this, "valueWithCursor", ""), this.on("finalize", () => { + this.value || (this.value = u.defaultValue), this.valueWithCursor = this.value; + }), this.on("value", () => { + if (this.cursor >= this.value.length) this.valueWithCursor = `${this.value}${import_picocolors.default.inverse(import_picocolors.default.hidden("_"))}`; + else { + const F = this.value.slice(0, this.cursor), e2 = this.value.slice(this.cursor); + this.valueWithCursor = `${F}${import_picocolors.default.inverse(e2[0])}${e2.slice(1)}`; + } + }); + } + get cursor() { + return this._cursor; + } +}; +var PD = globalThis.process.platform.startsWith("win"); + +// ../node_modules/@clack/prompts/dist/index.mjs +var import_picocolors2 = __toESM(require_picocolors(), 1); +var import_sisteransi2 = __toESM(require_src(), 1); +import h from "node:process"; +function q2() { + return h.platform !== "win32" ? h.env.TERM !== "linux" : Boolean(h.env.CI) || Boolean(h.env.WT_SESSION) || Boolean(h.env.TERMINUS_SUBLIME) || h.env.ConEmuTask === "{cmd::Cmder}" || h.env.TERM_PROGRAM === "Terminus-Sublime" || h.env.TERM_PROGRAM === "vscode" || h.env.TERM === "xterm-256color" || h.env.TERM === "alacritty" || h.env.TERMINAL_EMULATOR === "JetBrains-JediTerm"; +} +var _2 = q2(); +var o = (r2, n) => _2 ? r2 : n; +var H = o("\u25C6", "*"); +var I2 = o("\u25A0", "x"); +var x2 = o("\u25B2", "x"); +var S2 = o("\u25C7", "o"); +var K = o("\u250C", "T"); +var a2 = o("\u2502", "|"); +var d2 = o("\u2514", "\u2014"); +var b2 = o("\u25CF", ">"); +var E = o("\u25CB", " "); +var C = o("\u25FB", "[\u2022]"); +var w2 = o("\u25FC", "[+]"); +var M2 = o("\u25FB", "[ ]"); +var U2 = o("\u25AA", "\u2022"); +var B = o("\u2500", "-"); +var Z = o("\u256E", "+"); +var z2 = o("\u251C", "+"); +var X2 = o("\u256F", "+"); +var J2 = o("\u25CF", "\u2022"); +var Y = o("\u25C6", "*"); +var Q2 = o("\u25B2", "!"); +var ee = o("\u25A0", "x"); +var y2 = (r2) => { + switch (r2) { + case "initial": + case "active": + return import_picocolors2.default.cyan(H); + case "cancel": + return import_picocolors2.default.red(I2); + case "error": + return import_picocolors2.default.yellow(x2); + case "submit": + return import_picocolors2.default.green(S2); + } +}; +var te = (r2) => new TD({ validate: r2.validate, placeholder: r2.placeholder, defaultValue: r2.defaultValue, initialValue: r2.initialValue, render() { + const n = `${import_picocolors2.default.gray(a2)} +${y2(this.state)} ${r2.message} +`, i = r2.placeholder ? import_picocolors2.default.inverse(r2.placeholder[0]) + import_picocolors2.default.dim(r2.placeholder.slice(1)) : import_picocolors2.default.inverse(import_picocolors2.default.hidden("_")), t = this.value ? this.valueWithCursor : i; + switch (this.state) { + case "error": + return `${n.trim()} +${import_picocolors2.default.yellow(a2)} ${t} +${import_picocolors2.default.yellow(d2)} ${import_picocolors2.default.yellow(this.error)} +`; + case "submit": + return `${n}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.dim(this.value || r2.placeholder)}`; + case "cancel": + return `${n}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(this.value ?? ""))}${this.value?.trim() ? ` +` + import_picocolors2.default.gray(a2) : ""}`; + default: + return `${n}${import_picocolors2.default.cyan(a2)} ${t} +${import_picocolors2.default.cyan(d2)} +`; + } +} }).prompt(); +var se = (r2) => { + const n = r2.active ?? "Yes", i = r2.inactive ?? "No"; + return new xD({ active: n, inactive: i, initialValue: r2.initialValue ?? true, render() { + const t = `${import_picocolors2.default.gray(a2)} +${y2(this.state)} ${r2.message} +`, s = this.value ? n : i; + switch (this.state) { + case "submit": + return `${t}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.dim(s)}`; + case "cancel": + return `${t}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(s))} +${import_picocolors2.default.gray(a2)}`; + default: + return `${t}${import_picocolors2.default.cyan(a2)} ${this.value ? `${import_picocolors2.default.green(b2)} ${n}` : `${import_picocolors2.default.dim(E)} ${import_picocolors2.default.dim(n)}`} ${import_picocolors2.default.dim("/")} ${this.value ? `${import_picocolors2.default.dim(E)} ${import_picocolors2.default.dim(i)}` : `${import_picocolors2.default.green(b2)} ${i}`} +${import_picocolors2.default.cyan(d2)} +`; + } + } }).prompt(); +}; +var oe = (r2 = "") => { + process.stdout.write(`${import_picocolors2.default.gray(K)} ${r2} +`); +}; +var $e = (r2 = "") => { + process.stdout.write(`${import_picocolors2.default.gray(a2)} +${import_picocolors2.default.gray(d2)} ${r2} + +`); +}; + +// bin/get-started.ts +import fs from "fs"; +import { execSync } from "child_process"; +import path from "path"; +import { fileURLToPath } from "url"; + +// package.json +var package_default = { + name: "@restackio/get-started", + version: "1.0.4", + description: "Get started with Restack AI SDK", + bin: { + "get-started": "bin/get-started.mjs" + }, + files: [ + "bin", + "src", + "scheduleWorkflow.ts", + "tsconfig.json" + ], + keywords: [ + "restack", + "starter", + "template" + ], + author: "Your Name", + license: "MIT", + dependencies: { + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", + nodemon: "^2.0.22", + "ts-node": "^10.9.2", + typescript: "^5.6.2" + }, + scripts: { + "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", + service: "ts-node src/services.ts", + schedule: "ts-node scheduleWorkflow.ts" + }, + devDependencies: { + tsup: "8.3.0" + } +}; + +// bin/get-started.ts +var __filename = fileURLToPath(import.meta.url); +var __dirname = path.dirname(__filename); +var packageRoot = path.join(__dirname, ".."); +async function main() { + oe("Welcome Restack Get started"); + const currentDir = process.cwd(); + let targetDir; + const projectName = await te({ + message: "Enter the project folder name:", + placeholder: "./restack-get-started", + defaultValue: "restack-get-started", + initialValue: "restack-get-started", + validate(value) { + if (value.length === 0) return `\u26A0\uFE0F Project folder name is required`; + } + }); + if (projectName) { + console.log("\u{1F680} ~ main ~ targetDir:", targetDir); + targetDir = path.join(currentDir, projectName); + const filesToCopy = ["src", "scheduleWorkflow.ts", "tsconfig.json"]; + filesToCopy.forEach((file) => { + fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); + }); + delete package_default.bin; + delete package_default.files; + fs.writeFileSync(path.join(targetDir, "package.json"), JSON.stringify(package_default, null, 2)); + } + const installDependencies = await se({ + message: "Install dependencies?", + initialValue: true + }); + if (installDependencies) { + console.log("Installing dependencies..."); + execSync("npm install", { stdio: "inherit", cwd: targetDir }); + } + const startRestack = await se({ + message: "Start Restack Engine?", + initialValue: true + }); + if (startRestack) { + console.log("Starting Restack Engine..."); + execSync("docker rm -f studio", { stdio: "inherit", cwd: targetDir }); + execSync("docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main", { stdio: "inherit", cwd: currentDir }); + console.log(`Restack Engine Studio started on http://localhost:5233`); + } + const openRestack = await se({ + message: "Open Restack Engine Studio?", + initialValue: true + }); + if (openRestack) { + execSync("open http://localhost:5233", { stdio: "inherit", cwd: targetDir }); + } + const blue = "\x1B[34m"; + const noColor = "\x1B[0m"; + $e(` +Project created successfully! + +We suggest that you begin with following commands: + +To navigate to the project, run: "${blue}cd ${projectName}${noColor}" + +To start the service, run: "${blue}npm run service${noColor}" + +To schedule a workflow, run: "${blue}npm run schedule${noColor}" +`); +} +main(); diff --git a/examples/get-started-new/src/get-started-new.ts b/examples/get-started/bin/get-started.ts similarity index 61% rename from examples/get-started-new/src/get-started-new.ts rename to examples/get-started/bin/get-started.ts index 402780b..e7d1dc5 100644 --- a/examples/get-started-new/src/get-started-new.ts +++ b/examples/get-started/bin/get-started.ts @@ -4,8 +4,10 @@ import fs from 'fs'; import { execSync } from 'child_process'; import path from 'path'; import { fileURLToPath } from 'url'; +// @ts-ignore import packageJson from '../package.json'; +// @ts-ignore const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const packageRoot = path.join(__dirname, '..'); @@ -14,6 +16,7 @@ async function main() { clack.intro('Welcome Restack Get started'!); const currentDir = process.cwd(); + let targetDir: string; // Copy files const projectName = (await clack.text({ @@ -27,8 +30,7 @@ async function main() { })) as string; if (projectName) { - const targetDir = path.join(currentDir, projectName); - console.log('🚀 ~ main ~ targetDir:', targetDir); + targetDir = path.join(currentDir, projectName); const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; filesToCopy.forEach(file => { fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); @@ -37,7 +39,7 @@ async function main() { // Copy package.json separately and modify it delete packageJson.bin; delete packageJson.files; - fs.writeFileSync(path.join(currentDir, 'package.json'), JSON.stringify(packageJson, null, 2)); + fs.writeFileSync(path.join(targetDir, 'package.json'), JSON.stringify(packageJson, null, 2)); } const installDependencies = (await clack.confirm({ @@ -47,20 +49,44 @@ async function main() { if (installDependencies) { console.log('Installing dependencies...'); - execSync('npm install', { stdio: 'inherit', cwd: currentDir }); + execSync('npm install', { stdio: 'inherit', cwd: targetDir }); } - const startRestack = (await clack.confirm({ + const startRestack = (await clack.confirm({ message: 'Start Restack Engine?', initialValue: true, - })) as boolean; + })) as boolean; if (startRestack) { console.log('Starting Restack Engine...'); + execSync('docker rm -f studio', { stdio: 'inherit', cwd: targetDir }); execSync('docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main', { stdio: 'inherit', cwd: currentDir }); + console.log(`Restack Engine Studio started on http://localhost:5233`); } - clack.outro('👋 Goodbye'); + const openRestack = (await clack.confirm({ + message: 'Open Restack Engine Studio?', + initialValue: true, + })) as boolean; + + if (openRestack) { + execSync('open http://localhost:5233', { stdio: 'inherit', cwd: targetDir }); + } + + const blue = '\x1b[34m'; + const noColor = '\x1b[0m'; + + clack.outro(` +Project created successfully! + +We suggest that you begin with following commands: + +To navigate to the project, run: ${blue}cd ${projectName}${noColor} + +To start the service, run: ${blue}npm run service${noColor} + +To schedule a workflow, run: ${blue}npm run schedule${noColor} +`); } main(); diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index 20da248..cb1bdd9 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -1,2111 +1,3610 @@ { - "name": "@restackio/get-started", - "version": "1.0.4", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@restackio/get-started", - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "@restackio/ai": "^0.0.75", - "@temporalio/workflow": "^1.11.2", - "nodemon": "^2.0.22", - "ts-node": "^10.9.2", - "typescript": "^5.6.2" - }, - "bin": { - "get-started": "bin/get-started.js" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", - "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", - "dependencies": { - "@grpc/proto-loader": "^0.7.13", - "@js-sdsl/ordered-map": "^4.4.2" - }, - "engines": { - "node": ">=12.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", - "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.5", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@js-sdsl/ordered-map": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", - "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", - "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@restackio/ai": { - "version": "0.0.75", - "resolved": "https://registry.npmjs.org/@restackio/ai/-/ai-0.0.75.tgz", - "integrity": "sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==", - "dependencies": { - "@temporalio/activity": "^1.11.1", - "@temporalio/client": "^1.11.1", - "@temporalio/worker": "^1.11.1", - "@temporalio/workflow": "^1.11.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@swc/core": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.35.tgz", - "integrity": "sha512-3cUteCTbr2r5jqfgx0r091sfq5Mgh6F1SQh8XAOnSvtKzwv2bC31mvBHVAieD1uPa2kHJhLav20DQgXOhpEitw==", - "hasInstallScript": true, - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.13" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.35", - "@swc/core-darwin-x64": "1.7.35", - "@swc/core-linux-arm-gnueabihf": "1.7.35", - "@swc/core-linux-arm64-gnu": "1.7.35", - "@swc/core-linux-arm64-musl": "1.7.35", - "@swc/core-linux-x64-gnu": "1.7.35", - "@swc/core-linux-x64-musl": "1.7.35", - "@swc/core-win32-arm64-msvc": "1.7.35", - "@swc/core-win32-ia32-msvc": "1.7.35", - "@swc/core-win32-x64-msvc": "1.7.35" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.35.tgz", - "integrity": "sha512-BQSSozVxjxS+SVQz6e3GC/+OBWGIK3jfe52pWdANmycdjF3ch7lrCKTHTU7eHwyoJ96mofszPf5AsiVJF34Fwg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.35.tgz", - "integrity": "sha512-44TYdKN/EWtkU88foXR7IGki9JzhEJzaFOoPevfi9Xe7hjAD/x2+AJOWWqQNzDPMz9+QewLdUVLyR6s5okRgtg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.35.tgz", - "integrity": "sha512-ccfA5h3zxwioD+/z/AmYtkwtKz9m4rWTV7RoHq6Jfsb0cXHrd6tbcvgqRWXra1kASlE+cDWsMtEZygs9dJRtUQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.35.tgz", - "integrity": "sha512-hx65Qz+G4iG/IVtxJKewC5SJdki8PAPFGl6gC/57Jb0+jA4BIoGLD/J3Q3rCPeoHfdqpkCYpahtyUq8CKx41Jg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.35.tgz", - "integrity": "sha512-kL6tQL9No7UEoEvDRuPxzPTpxrvbwYteNRbdChSSP74j13/55G2/2hLmult5yFFaWuyoyU/2lvzjRL/i8OLZxg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.35.tgz", - "integrity": "sha512-Ke4rcLQSwCQ2LHdJX1FtnqmYNQ3IX6BddKlUtS7mcK13IHkQzZWp0Dcu6MgNA3twzb/dBpKX5GLy07XdGgfmyw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.35.tgz", - "integrity": "sha512-T30tlLnz0kYyDFyO5RQF5EQ4ENjW9+b56hEGgFUYmfhFhGA4E4V67iEx7KIG4u0whdPG7oy3qjyyIeTb7nElEw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.35.tgz", - "integrity": "sha512-CfM/k8mvtuMyX+okRhemfLt784PLS0KF7Q9djA8/Dtavk0L5Ghnq+XsGltO3d8B8+XZ7YOITsB14CrjehzeHsg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.35.tgz", - "integrity": "sha512-ATB3uuH8j/RmS64EXQZJSbo2WXfRNpTnQszHME/sGaexsuxeijrp3DTYSFAA3R2Bu6HbIIX6jempe1Au8I3j+A==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.35.tgz", - "integrity": "sha512-iDGfQO1571NqWUXtLYDhwIELA/wadH42ioGn+J9R336nWx40YICzy9UQyslWRhqzhQ5kT+QXAW/MoCWc058N6Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" - }, - "node_modules/@swc/types": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", - "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@temporalio/activity": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/activity/-/activity-1.11.2.tgz", - "integrity": "sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==", - "dependencies": { - "@temporalio/common": "1.11.2", - "abort-controller": "^3.0.0" - } - }, - "node_modules/@temporalio/client": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/client/-/client-1.11.2.tgz", - "integrity": "sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==", - "dependencies": { - "@grpc/grpc-js": "^1.10.7", - "@temporalio/common": "1.11.2", - "@temporalio/proto": "1.11.2", - "abort-controller": "^3.0.0", - "long": "^5.2.3", - "uuid": "^9.0.1" - } - }, - "node_modules/@temporalio/common": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/common/-/common-1.11.2.tgz", - "integrity": "sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==", - "dependencies": { - "@temporalio/proto": "1.11.2", - "long": "^5.2.3", - "ms": "^3.0.0-canary.1", - "proto3-json-serializer": "^2.0.0" - } - }, - "node_modules/@temporalio/core-bridge": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/core-bridge/-/core-bridge-1.11.2.tgz", - "integrity": "sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==", - "hasInstallScript": true, - "dependencies": { - "@temporalio/common": "1.11.2", - "arg": "^5.0.2", - "cargo-cp-artifact": "^0.1.8", - "which": "^4.0.0" - } - }, - "node_modules/@temporalio/proto": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/proto/-/proto-1.11.2.tgz", - "integrity": "sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==", - "dependencies": { - "long": "^5.2.3", - "protobufjs": "^7.2.5" - } - }, - "node_modules/@temporalio/worker": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/worker/-/worker-1.11.2.tgz", - "integrity": "sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==", - "dependencies": { - "@swc/core": "^1.3.102", - "@temporalio/activity": "1.11.2", - "@temporalio/client": "1.11.2", - "@temporalio/common": "1.11.2", - "@temporalio/core-bridge": "1.11.2", - "@temporalio/proto": "1.11.2", - "@temporalio/workflow": "1.11.2", - "abort-controller": "^3.0.0", - "heap-js": "^2.3.0", - "memfs": "^4.6.0", - "rxjs": "^7.8.1", - "source-map": "^0.7.4", - "source-map-loader": "^4.0.2", - "supports-color": "^8.1.1", - "swc-loader": "^0.2.3", - "unionfs": "^4.5.1", - "webpack": "^5.94.0" - }, - "engines": { - "node": ">= 16.0.0" - } - }, - "node_modules/@temporalio/workflow": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/workflow/-/workflow-1.11.2.tgz", - "integrity": "sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==", - "dependencies": { - "@temporalio/common": "1.11.2", - "@temporalio/proto": "1.11.2" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" - }, - "node_modules/@types/node": { - "version": "22.7.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", - "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/cargo-cp-artifact": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz", - "integrity": "sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==", - "bin": { - "cargo-cp-artifact": "bin/cargo-cp-artifact.js" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.35", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.35.tgz", - "integrity": "sha512-hOSRInrIDm0Brzp4IHW2F/VM+638qOL2CzE0DgpnGzKW27C95IqqeqgKz/hxHGnvPxvQGpHUGD5qRVC9EZY2+A==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/heap-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.5.0.tgz", - "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", - "engines": { - "node": ">=10.18" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/memfs": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.13.0.tgz", - "integrity": "sha512-dIs5KGy24fbdDhIAg0RxXpFqQp3RwL6wgSMRF9OSuphL/Uc9a4u2/SDJKPLj/zUgtOGKuHrRMrj563+IErj4Cg==", - "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">= 4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "3.0.0-canary.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", - "integrity": "sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==", - "engines": { - "node": ">=12.13" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/proto3-json-serializer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", - "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", - "dependencies": { - "protobufjs": "^7.2.5" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", - "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", - "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/swc-loader": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.6.tgz", - "integrity": "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==", - "dependencies": { - "@swc/counter": "^0.1.3" - }, - "peerDependencies": { - "@swc/core": "^1.2.147", - "webpack": ">=2" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.34.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", - "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", - "engines": { - "node": ">=10.18" - }, - "peerDependencies": { - "tslib": "^2" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "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" - }, - "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 - } - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" - }, - "node_modules/unionfs": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/unionfs/-/unionfs-4.5.4.tgz", - "integrity": "sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==", - "dependencies": { - "fs-monkey": "^1.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } + "name": "@restackio/get-started", + "version": "1.0.4", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@restackio/get-started", + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", + "nodemon": "^2.0.22", + "ts-node": "^10.9.2", + "typescript": "^5.6.2" + }, + "devDependencies": { + "tsup": "^8.3.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", + "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@restackio/ai": { + "version": "0.0.75", + "resolved": "https://registry.npmjs.org/@restackio/ai/-/ai-0.0.75.tgz", + "integrity": "sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==", + "dependencies": { + "@temporalio/activity": "^1.11.1", + "@temporalio/client": "^1.11.1", + "@temporalio/worker": "^1.11.1", + "@temporalio/workflow": "^1.11.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.35.tgz", + "integrity": "sha512-3cUteCTbr2r5jqfgx0r091sfq5Mgh6F1SQh8XAOnSvtKzwv2bC31mvBHVAieD1uPa2kHJhLav20DQgXOhpEitw==", + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.13" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.35", + "@swc/core-darwin-x64": "1.7.35", + "@swc/core-linux-arm-gnueabihf": "1.7.35", + "@swc/core-linux-arm64-gnu": "1.7.35", + "@swc/core-linux-arm64-musl": "1.7.35", + "@swc/core-linux-x64-gnu": "1.7.35", + "@swc/core-linux-x64-musl": "1.7.35", + "@swc/core-win32-arm64-msvc": "1.7.35", + "@swc/core-win32-ia32-msvc": "1.7.35", + "@swc/core-win32-x64-msvc": "1.7.35" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.35.tgz", + "integrity": "sha512-BQSSozVxjxS+SVQz6e3GC/+OBWGIK3jfe52pWdANmycdjF3ch7lrCKTHTU7eHwyoJ96mofszPf5AsiVJF34Fwg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.35.tgz", + "integrity": "sha512-44TYdKN/EWtkU88foXR7IGki9JzhEJzaFOoPevfi9Xe7hjAD/x2+AJOWWqQNzDPMz9+QewLdUVLyR6s5okRgtg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.35.tgz", + "integrity": "sha512-ccfA5h3zxwioD+/z/AmYtkwtKz9m4rWTV7RoHq6Jfsb0cXHrd6tbcvgqRWXra1kASlE+cDWsMtEZygs9dJRtUQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.35.tgz", + "integrity": "sha512-hx65Qz+G4iG/IVtxJKewC5SJdki8PAPFGl6gC/57Jb0+jA4BIoGLD/J3Q3rCPeoHfdqpkCYpahtyUq8CKx41Jg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.35.tgz", + "integrity": "sha512-kL6tQL9No7UEoEvDRuPxzPTpxrvbwYteNRbdChSSP74j13/55G2/2hLmult5yFFaWuyoyU/2lvzjRL/i8OLZxg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.35.tgz", + "integrity": "sha512-Ke4rcLQSwCQ2LHdJX1FtnqmYNQ3IX6BddKlUtS7mcK13IHkQzZWp0Dcu6MgNA3twzb/dBpKX5GLy07XdGgfmyw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.35.tgz", + "integrity": "sha512-T30tlLnz0kYyDFyO5RQF5EQ4ENjW9+b56hEGgFUYmfhFhGA4E4V67iEx7KIG4u0whdPG7oy3qjyyIeTb7nElEw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.35.tgz", + "integrity": "sha512-CfM/k8mvtuMyX+okRhemfLt784PLS0KF7Q9djA8/Dtavk0L5Ghnq+XsGltO3d8B8+XZ7YOITsB14CrjehzeHsg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.35.tgz", + "integrity": "sha512-ATB3uuH8j/RmS64EXQZJSbo2WXfRNpTnQszHME/sGaexsuxeijrp3DTYSFAA3R2Bu6HbIIX6jempe1Au8I3j+A==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.35", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.35.tgz", + "integrity": "sha512-iDGfQO1571NqWUXtLYDhwIELA/wadH42ioGn+J9R336nWx40YICzy9UQyslWRhqzhQ5kT+QXAW/MoCWc058N6Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/types": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", + "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@temporalio/activity": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/activity/-/activity-1.11.2.tgz", + "integrity": "sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==", + "dependencies": { + "@temporalio/common": "1.11.2", + "abort-controller": "^3.0.0" + } + }, + "node_modules/@temporalio/client": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/client/-/client-1.11.2.tgz", + "integrity": "sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==", + "dependencies": { + "@grpc/grpc-js": "^1.10.7", + "@temporalio/common": "1.11.2", + "@temporalio/proto": "1.11.2", + "abort-controller": "^3.0.0", + "long": "^5.2.3", + "uuid": "^9.0.1" + } + }, + "node_modules/@temporalio/common": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/common/-/common-1.11.2.tgz", + "integrity": "sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==", + "dependencies": { + "@temporalio/proto": "1.11.2", + "long": "^5.2.3", + "ms": "^3.0.0-canary.1", + "proto3-json-serializer": "^2.0.0" + } + }, + "node_modules/@temporalio/core-bridge": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/core-bridge/-/core-bridge-1.11.2.tgz", + "integrity": "sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==", + "hasInstallScript": true, + "dependencies": { + "@temporalio/common": "1.11.2", + "arg": "^5.0.2", + "cargo-cp-artifact": "^0.1.8", + "which": "^4.0.0" + } + }, + "node_modules/@temporalio/proto": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/proto/-/proto-1.11.2.tgz", + "integrity": "sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==", + "dependencies": { + "long": "^5.2.3", + "protobufjs": "^7.2.5" + } + }, + "node_modules/@temporalio/worker": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/worker/-/worker-1.11.2.tgz", + "integrity": "sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==", + "dependencies": { + "@swc/core": "^1.3.102", + "@temporalio/activity": "1.11.2", + "@temporalio/client": "1.11.2", + "@temporalio/common": "1.11.2", + "@temporalio/core-bridge": "1.11.2", + "@temporalio/proto": "1.11.2", + "@temporalio/workflow": "1.11.2", + "abort-controller": "^3.0.0", + "heap-js": "^2.3.0", + "memfs": "^4.6.0", + "rxjs": "^7.8.1", + "source-map": "^0.7.4", + "source-map-loader": "^4.0.2", + "supports-color": "^8.1.1", + "swc-loader": "^0.2.3", + "unionfs": "^4.5.1", + "webpack": "^5.94.0" + }, + "engines": { + "node": ">= 16.0.0" + } + }, + "node_modules/@temporalio/workflow": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@temporalio/workflow/-/workflow-1.11.2.tgz", + "integrity": "sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==", + "dependencies": { + "@temporalio/common": "1.11.2", + "@temporalio/proto": "1.11.2" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bundle-require": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz", + "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", + "dev": true, + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/cargo-cp-artifact": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz", + "integrity": "sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==", + "bin": { + "cargo-cp-artifact": "bin/cargo-cp-artifact.js" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.35", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.35.tgz", + "integrity": "sha512-hOSRInrIDm0Brzp4IHW2F/VM+638qOL2CzE0DgpnGzKW27C95IqqeqgKz/hxHGnvPxvQGpHUGD5qRVC9EZY2+A==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" + }, + "node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/heap-js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.5.0.tgz", + "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/memfs": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.13.0.tgz", + "integrity": "sha512-dIs5KGy24fbdDhIAg0RxXpFqQp3RwL6wgSMRF9OSuphL/Uc9a4u2/SDJKPLj/zUgtOGKuHrRMrj563+IErj4Cg==", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "3.0.0-canary.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", + "integrity": "sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==", + "engines": { + "node": ">=12.13" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", + "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/swc-loader": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.6.tgz", + "integrity": "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==", + "dependencies": { + "@swc/counter": "^0.1.3" + }, + "peerDependencies": { + "@swc/core": "^1.2.147", + "webpack": ">=2" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.34.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.9.tgz", + "integrity": "sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==", + "dev": true, + "dependencies": { + "fdir": "^6.4.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "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" + }, + "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 + } + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + }, + "node_modules/tsup": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", + "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", + "dev": true, + "dependencies": { + "bundle-require": "^5.0.0", + "cac": "^6.7.14", + "chokidar": "^3.6.0", + "consola": "^3.2.3", + "debug": "^4.3.5", + "esbuild": "^0.23.0", + "execa": "^5.1.1", + "joycon": "^3.1.1", + "picocolors": "^1.0.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.19.0", + "source-map": "0.8.0-beta.0", + "sucrase": "^3.35.0", + "tinyglobby": "^0.2.1", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/tsup/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/unionfs": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/unionfs/-/unionfs-4.5.4.tgz", + "integrity": "sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==", + "dependencies": { + "fs-monkey": "^1.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/webpack": { + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } } + } } diff --git a/examples/get-started/package.json b/examples/get-started/package.json index fc3594d..0170bfa 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -3,7 +3,7 @@ "version": "1.0.4", "description": "Get started with Restack AI SDK", "bin": { - "get-started": "bin/get-started.js" + "get-started": "bin/get-started.mjs" }, "files": [ "bin", @@ -19,14 +19,18 @@ "author": "Your Name", "license": "MIT", "dependencies": { + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", "nodemon": "^2.0.22", "ts-node": "^10.9.2", - "typescript": "^5.6.2", - "@restackio/ai": "^0.0.75", - "@temporalio/workflow": "^1.11.2" + "typescript": "^5.6.2" }, "scripts": { + "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", "service": "ts-node src/services.ts", "schedule": "ts-node scheduleWorkflow.ts" + }, + "devDependencies": { + "tsup": "8.3.0" } } diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index 6de0a4e..c06c8be 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -10,17 +10,10 @@ importers: dependencies: '@restackio/ai': specifier: ^0.0.75 - version: 0.0.75 + version: 0.0.75(esbuild@0.23.1) '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.2 - devDependencies: - '@restackio/restack-sdk-cloud-ts': - specifier: ^1.0.15 - version: 1.0.16 - '@types/node': - specifier: ^20.16.9 - version: 20.16.10 nodemon: specifier: ^2.0.22 version: 2.0.22 @@ -30,6 +23,10 @@ importers: typescript: specifier: ^5.6.2 version: 5.6.2 + devDependencies: + tsup: + specifier: ^8.3.0 + version: 8.3.0(@swc/core@1.7.26)(typescript@5.6.2) packages: @@ -37,6 +34,150 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@grpc/grpc-js@1.12.0': resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} engines: {node: '>=12.10.0'} @@ -46,6 +187,10 @@ packages: engines: {node: '>=6'} hasBin: true + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -91,11 +236,9 @@ packages: peerDependencies: tslib: '2' - '@kwsites/file-exists@1.1.1': - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} - - '@kwsites/promise-deferred@1.1.1': - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -131,9 +274,85 @@ packages: resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} engines: {node: '>=20'} - '@restackio/restack-sdk-cloud-ts@1.0.16': - resolution: {integrity: sha512-oIanzD6ym6c+hZ6eMJozTaIxGmMn1hPZRwogzz4v2hdd40IpdbwuHc98bPrHjswS1rZa+vjPjLbKoSuLlZloOQ==} - engines: {node: '>=18'} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] '@swc/core-darwin-arm64@1.7.26': resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} @@ -334,10 +553,21 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -358,6 +588,9 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -370,9 +603,15 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} caniuse-lite@1.0.30001667: resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} @@ -381,10 +620,6 @@ packages: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} hasBin: true - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -407,12 +642,24 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -430,25 +677,12 @@ packages: supports-color: optional: true - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} - engines: {node: '>=18'} - - default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} - engines: {node: '>=18'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} electron-to-chromium@1.5.32: resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} @@ -456,6 +690,9 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -463,6 +700,11 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -491,16 +733,32 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -513,6 +771,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -520,6 +782,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -535,6 +801,10 @@ packages: resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} engines: {node: '>=10.0.0'} + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -550,11 +820,6 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -567,33 +832,49 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -601,9 +882,15 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -622,9 +909,21 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -632,6 +931,9 @@ packages: resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} engines: {node: '>=12.13'} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -647,9 +949,28 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} - engines: {node: '>=18'} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} @@ -658,8 +979,31 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - property-expr@2.0.6: - resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} @@ -687,9 +1031,14 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} - engines: {node: '>=18'} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -715,8 +1064,20 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - simple-git@3.27.0: - resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} simple-update-notifier@1.1.0: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} @@ -743,22 +1104,39 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -794,32 +1172,47 @@ packages: engines: {node: '>=10'} hasBin: true + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 - tiny-case@1.0.3: - resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + tinyglobby@0.2.9: + resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} + engines: {node: '>=12.0.0'} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toposort@2.0.2: - resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} - touch@3.1.1: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tree-dump@1.0.2: resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -837,9 +1230,24 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + tsup@8.3.0: + resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true typescript@5.6.2: resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} @@ -875,6 +1283,9 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -889,6 +1300,14 @@ packages: webpack-cli: optional: true + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + which@4.0.0: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} engines: {node: ^16.13.0 || >=18.0.0} @@ -898,6 +1317,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -914,18 +1337,84 @@ packages: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - yup@1.4.0: - resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} - - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - snapshots: '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + '@grpc/grpc-js@1.12.0': dependencies: '@grpc/proto-loader': 0.7.13 @@ -938,6 +1427,15 @@ snapshots: protobufjs: 7.4.0 yargs: 17.7.2 + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -983,13 +1481,8 @@ snapshots: dependencies: tslib: 2.7.0 - '@kwsites/file-exists@1.1.1': - dependencies: - debug: 4.3.7 - transitivePeerDependencies: - - supports-color - - '@kwsites/promise-deferred@1.1.1': {} + '@pkgjs/parseargs@0.11.0': + optional: true '@protobufjs/aspromise@1.1.2': {} @@ -1014,11 +1507,11 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/ai@0.0.75': + '@restackio/ai@0.0.75(esbuild@0.23.1)': dependencies: '@temporalio/activity': 1.11.2 '@temporalio/client': 1.11.2 - '@temporalio/worker': 1.11.2 + '@temporalio/worker': 1.11.2(esbuild@0.23.1) '@temporalio/workflow': 1.11.2 transitivePeerDependencies: - '@swc/helpers' @@ -1026,16 +1519,53 @@ snapshots: - uglify-js - webpack-cli - '@restackio/restack-sdk-cloud-ts@1.0.16': - dependencies: - chalk: 4.1.2 - dotenv: 16.4.5 - open: 10.1.0 - simple-git: 3.27.0 - yup: 1.4.0 - zod: 3.23.8 - transitivePeerDependencies: - - supports-color + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true '@swc/core-darwin-arm64@1.7.26': optional: true @@ -1122,7 +1652,7 @@ snapshots: long: 5.2.3 protobufjs: 7.4.0 - '@temporalio/worker@1.11.2': + '@temporalio/worker@1.11.2(esbuild@0.23.1)': dependencies: '@swc/core': 1.7.26 '@temporalio/activity': 1.11.2 @@ -1136,11 +1666,11 @@ snapshots: memfs: 4.12.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)) unionfs: 4.5.4 - webpack: 5.95.0(@swc/core@1.7.26) + webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1275,10 +1805,16 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -1297,6 +1833,10 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -1310,19 +1850,17 @@ snapshots: buffer-from@1.1.2: {} - bundle-name@4.1.0: + bundle-require@5.0.0(esbuild@0.23.1): dependencies: - run-applescript: 7.0.0 + esbuild: 0.23.1 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} caniuse-lite@1.0.30001667: {} cargo-cp-artifact@0.1.9: {} - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -1351,10 +1889,20 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + concat-map@0.0.1: {} + consola@3.2.3: {} + create-require@1.1.1: {} + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + debug@3.2.7(supports-color@5.5.0): dependencies: ms: 2.1.3 @@ -1365,23 +1913,16 @@ snapshots: dependencies: ms: 2.1.3 - default-browser-id@5.0.0: {} - - default-browser@5.2.1: - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.0 - - define-lazy-prop@3.0.0: {} - diff@4.0.2: {} - dotenv@16.4.5: {} + eastasianwidth@0.2.0: {} electron-to-chromium@1.5.32: {} emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -1389,6 +1930,33 @@ snapshots: es-module-lexer@1.5.4: {} + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + escalade@3.2.0: {} eslint-scope@5.1.1: @@ -1408,14 +1976,35 @@ snapshots: events@3.3.0: {} + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + fast-deep-equal@3.1.3: {} fast-json-stable-stringify@2.1.0: {} + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + fs-monkey@1.0.6: {} fsevents@2.3.3: @@ -1423,12 +2012,23 @@ snapshots: get-caller-file@2.0.5: {} + get-stream@6.0.1: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 glob-to-regexp@0.4.1: {} + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + graceful-fs@4.2.11: {} has-flag@3.0.0: {} @@ -1437,6 +2037,8 @@ snapshots: heap-js@2.5.0: {} + human-signals@2.1.0: {} + hyperdyperid@1.2.0: {} iconv-lite@0.6.3: @@ -1449,8 +2051,6 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-docker@3.0.0: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -1459,34 +2059,48 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - is-number@7.0.0: {} - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 + is-stream@2.0.1: {} + + isexe@2.0.0: {} isexe@3.1.1: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jest-worker@27.5.1: dependencies: '@types/node': 20.16.10 merge-stream: 2.0.0 supports-color: 8.1.1 + joycon@3.1.1: {} + json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + load-tsconfig@0.2.5: {} + loader-runner@4.3.0: {} lodash.camelcase@4.3.0: {} + lodash.sortby@4.7.0: {} + long@5.2.3: {} + lru-cache@10.4.3: {} + make-error@1.3.6: {} memfs@4.12.0: @@ -1504,14 +2118,28 @@ snapshots: dependencies: mime-db: 1.52.0 + mimic-fn@2.1.0: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.1.2: {} + ms@2.1.3: {} ms@3.0.0-canary.1: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + neo-async@2.6.2: {} node-releases@2.0.18: {} @@ -1531,18 +2159,36 @@ snapshots: normalize-path@3.0.0: {} - open@10.1.0: + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + object-assign@4.1.1: {} + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + package-json-from-dist@1.0.1: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: dependencies: - default-browser: 5.2.1 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 3.1.0 + lru-cache: 10.4.3 + minipass: 7.1.2 picocolors@1.1.0: {} picomatch@2.3.1: {} - property-expr@2.0.6: {} + picomatch@4.0.2: {} + + pirates@4.0.6: {} + + postcss-load-config@6.0.1: + dependencies: + lilconfig: 3.1.2 proto3-json-serializer@2.0.2: dependencies: @@ -1577,7 +2223,29 @@ snapshots: require-directory@2.1.1: {} - run-applescript@7.0.0: {} + resolve-from@5.0.0: {} + + rollup@4.24.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 rxjs@7.8.1: dependencies: @@ -1601,13 +2269,15 @@ snapshots: dependencies: randombytes: 2.1.0 - simple-git@3.27.0: + shebang-command@2.0.0: dependencies: - '@kwsites/file-exists': 1.1.1 - '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.7 - transitivePeerDependencies: - - supports-color + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} simple-update-notifier@1.1.0: dependencies: @@ -1615,11 +2285,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.7.26) + webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) source-map-support@0.5.21: dependencies: @@ -1630,46 +2300,69 @@ snapshots: source-map@0.7.4: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - supports-color@5.5.0: + strip-ansi@7.1.0: dependencies: - has-flag: 3.0.0 + ansi-regex: 6.1.0 + + strip-final-newline@2.0.0: {} - supports-color@7.2.0: + sucrase@3.35.0: dependencies: - has-flag: 4.0.0 + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 supports-color@8.1.1: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)): dependencies: '@swc/core': 1.7.26 '@swc/counter': 0.1.3 - webpack: 5.95.0(@swc/core@1.7.26) + webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.34.1 - webpack: 5.95.0(@swc/core@1.7.26) + webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) optionalDependencies: '@swc/core': 1.7.26 + esbuild: 0.23.1 terser@5.34.1: dependencies: @@ -1678,24 +2371,41 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thingies@1.21.0(tslib@2.7.0): dependencies: tslib: 2.7.0 - tiny-case@1.0.3: {} + tinyglobby@0.2.9: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - toposort@2.0.2: {} - touch@3.1.1: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + tree-dump@1.0.2(tslib@2.7.0): dependencies: tslib: 2.7.0 + tree-kill@1.2.2: {} + + ts-interface-checker@0.1.13: {} + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -1718,7 +2428,32 @@ snapshots: tslib@2.7.0: {} - type-fest@2.19.0: {} + tsup@8.3.0(@swc/core@1.7.26)(typescript@5.6.2): + dependencies: + bundle-require: 5.0.0(esbuild@0.23.1) + cac: 6.7.14 + chokidar: 3.6.0 + consola: 3.2.3 + debug: 4.3.7 + esbuild: 0.23.1 + execa: 5.1.1 + joycon: 3.1.1 + picocolors: 1.1.0 + postcss-load-config: 6.0.1 + resolve-from: 5.0.0 + rollup: 4.24.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyglobby: 0.2.9 + tree-kill: 1.2.2 + optionalDependencies: + '@swc/core': 1.7.26 + typescript: 5.6.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml typescript@5.6.2: {} @@ -1749,9 +2484,11 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + webidl-conversions@4.0.2: {} + webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.26): + webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -1773,7 +2510,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -1781,6 +2518,16 @@ snapshots: - esbuild - uglify-js + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + which@4.0.0: dependencies: isexe: 3.1.1 @@ -1791,6 +2538,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + y18n@5.0.8: {} yargs-parser@21.1.1: {} @@ -1806,12 +2559,3 @@ snapshots: yargs-parser: 21.1.1 yn@3.1.1: {} - - yup@1.4.0: - dependencies: - property-expr: 2.0.6 - tiny-case: 1.0.3 - toposort: 2.0.2 - type-fest: 2.19.0 - - zod@3.23.8: {} From 71ba2e79f49b15c140575a9c58306220c3f0a54e Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Mon, 21 Oct 2024 17:55:01 +0200 Subject: [PATCH 091/122] Get started: github workflow to publish on npm Former-commit-id: 03174429263674f3c71453903d99a61495e3b57e Former-commit-id: fc859819d751cdf3a3b5bb758dbab9ce5b09022d --- .github/workflows/npm-publish.yml | 35 + examples/get-started/package-lock.json | 7344 ++++++++++++------------ examples/get-started/package.json | 2 +- examples/get-started/pnpm-lock.yaml | 350 +- 4 files changed, 3949 insertions(+), 3782 deletions(-) create mode 100644 .github/workflows/npm-publish.yml diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000..11ed766 --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,35 @@ +name: Publish to npm + +on: + push: + branches: + - 'main' + paths: + - 'examples/get-started/**' + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: pnpm/action-setup@v4 + with: + version: 9 + - uses: actions/setup-node@v2 + with: + node-version: 20 + + # Only install dev dependencies, for the binary. No need for source code. + - name: Install dependencies + run: pnpm install --dev + working-directory: ./examples/get-started + + - name: Build binary + run: pnpm run build-bin + working-directory: ./examples/get-started + + - name: Publish to npm + run: npm publish --access public + working-directory: ./examples/get-started + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index cb1bdd9..99154dd 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -1,3610 +1,3742 @@ { - "name": "@restackio/get-started", - "version": "1.0.4", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@restackio/get-started", - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "@restackio/ai": "^0.0.75", - "@temporalio/workflow": "^1.11.2", - "nodemon": "^2.0.22", - "ts-node": "^10.9.2", - "typescript": "^5.6.2" - }, - "devDependencies": { - "tsup": "^8.3.0" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", - "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", - "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", - "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", - "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", - "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", - "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", - "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", - "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", - "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", - "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", - "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", - "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", - "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", - "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", - "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", - "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", - "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", - "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", - "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", - "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", - "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", - "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", - "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", - "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", - "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", - "dependencies": { - "@grpc/proto-loader": "^0.7.13", - "@js-sdsl/ordered-map": "^4.4.2" - }, - "engines": { - "node": ">=12.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", - "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.5", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@js-sdsl/ordered-map": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", - "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@jsonjoy.com/util": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", - "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@restackio/ai": { - "version": "0.0.75", - "resolved": "https://registry.npmjs.org/@restackio/ai/-/ai-0.0.75.tgz", - "integrity": "sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==", - "dependencies": { - "@temporalio/activity": "^1.11.1", - "@temporalio/client": "^1.11.1", - "@temporalio/worker": "^1.11.1", - "@temporalio/workflow": "^1.11.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@swc/core": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.35.tgz", - "integrity": "sha512-3cUteCTbr2r5jqfgx0r091sfq5Mgh6F1SQh8XAOnSvtKzwv2bC31mvBHVAieD1uPa2kHJhLav20DQgXOhpEitw==", - "hasInstallScript": true, - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.13" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.35", - "@swc/core-darwin-x64": "1.7.35", - "@swc/core-linux-arm-gnueabihf": "1.7.35", - "@swc/core-linux-arm64-gnu": "1.7.35", - "@swc/core-linux-arm64-musl": "1.7.35", - "@swc/core-linux-x64-gnu": "1.7.35", - "@swc/core-linux-x64-musl": "1.7.35", - "@swc/core-win32-arm64-msvc": "1.7.35", - "@swc/core-win32-ia32-msvc": "1.7.35", - "@swc/core-win32-x64-msvc": "1.7.35" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.35.tgz", - "integrity": "sha512-BQSSozVxjxS+SVQz6e3GC/+OBWGIK3jfe52pWdANmycdjF3ch7lrCKTHTU7eHwyoJ96mofszPf5AsiVJF34Fwg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.35.tgz", - "integrity": "sha512-44TYdKN/EWtkU88foXR7IGki9JzhEJzaFOoPevfi9Xe7hjAD/x2+AJOWWqQNzDPMz9+QewLdUVLyR6s5okRgtg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.35.tgz", - "integrity": "sha512-ccfA5h3zxwioD+/z/AmYtkwtKz9m4rWTV7RoHq6Jfsb0cXHrd6tbcvgqRWXra1kASlE+cDWsMtEZygs9dJRtUQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.35.tgz", - "integrity": "sha512-hx65Qz+G4iG/IVtxJKewC5SJdki8PAPFGl6gC/57Jb0+jA4BIoGLD/J3Q3rCPeoHfdqpkCYpahtyUq8CKx41Jg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.35.tgz", - "integrity": "sha512-kL6tQL9No7UEoEvDRuPxzPTpxrvbwYteNRbdChSSP74j13/55G2/2hLmult5yFFaWuyoyU/2lvzjRL/i8OLZxg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.35.tgz", - "integrity": "sha512-Ke4rcLQSwCQ2LHdJX1FtnqmYNQ3IX6BddKlUtS7mcK13IHkQzZWp0Dcu6MgNA3twzb/dBpKX5GLy07XdGgfmyw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.35.tgz", - "integrity": "sha512-T30tlLnz0kYyDFyO5RQF5EQ4ENjW9+b56hEGgFUYmfhFhGA4E4V67iEx7KIG4u0whdPG7oy3qjyyIeTb7nElEw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.35.tgz", - "integrity": "sha512-CfM/k8mvtuMyX+okRhemfLt784PLS0KF7Q9djA8/Dtavk0L5Ghnq+XsGltO3d8B8+XZ7YOITsB14CrjehzeHsg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.35.tgz", - "integrity": "sha512-ATB3uuH8j/RmS64EXQZJSbo2WXfRNpTnQszHME/sGaexsuxeijrp3DTYSFAA3R2Bu6HbIIX6jempe1Au8I3j+A==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.35", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.35.tgz", - "integrity": "sha512-iDGfQO1571NqWUXtLYDhwIELA/wadH42ioGn+J9R336nWx40YICzy9UQyslWRhqzhQ5kT+QXAW/MoCWc058N6Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" - }, - "node_modules/@swc/types": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", - "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@temporalio/activity": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/activity/-/activity-1.11.2.tgz", - "integrity": "sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==", - "dependencies": { - "@temporalio/common": "1.11.2", - "abort-controller": "^3.0.0" - } - }, - "node_modules/@temporalio/client": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/client/-/client-1.11.2.tgz", - "integrity": "sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==", - "dependencies": { - "@grpc/grpc-js": "^1.10.7", - "@temporalio/common": "1.11.2", - "@temporalio/proto": "1.11.2", - "abort-controller": "^3.0.0", - "long": "^5.2.3", - "uuid": "^9.0.1" - } - }, - "node_modules/@temporalio/common": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/common/-/common-1.11.2.tgz", - "integrity": "sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==", - "dependencies": { - "@temporalio/proto": "1.11.2", - "long": "^5.2.3", - "ms": "^3.0.0-canary.1", - "proto3-json-serializer": "^2.0.0" - } - }, - "node_modules/@temporalio/core-bridge": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/core-bridge/-/core-bridge-1.11.2.tgz", - "integrity": "sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==", - "hasInstallScript": true, - "dependencies": { - "@temporalio/common": "1.11.2", - "arg": "^5.0.2", - "cargo-cp-artifact": "^0.1.8", - "which": "^4.0.0" - } - }, - "node_modules/@temporalio/proto": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/proto/-/proto-1.11.2.tgz", - "integrity": "sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==", - "dependencies": { - "long": "^5.2.3", - "protobufjs": "^7.2.5" - } - }, - "node_modules/@temporalio/worker": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/worker/-/worker-1.11.2.tgz", - "integrity": "sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==", - "dependencies": { - "@swc/core": "^1.3.102", - "@temporalio/activity": "1.11.2", - "@temporalio/client": "1.11.2", - "@temporalio/common": "1.11.2", - "@temporalio/core-bridge": "1.11.2", - "@temporalio/proto": "1.11.2", - "@temporalio/workflow": "1.11.2", - "abort-controller": "^3.0.0", - "heap-js": "^2.3.0", - "memfs": "^4.6.0", - "rxjs": "^7.8.1", - "source-map": "^0.7.4", - "source-map-loader": "^4.0.2", - "supports-color": "^8.1.1", - "swc-loader": "^0.2.3", - "unionfs": "^4.5.1", - "webpack": "^5.94.0" - }, - "engines": { - "node": ">= 16.0.0" - } - }, - "node_modules/@temporalio/workflow": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@temporalio/workflow/-/workflow-1.11.2.tgz", - "integrity": "sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==", - "dependencies": { - "@temporalio/common": "1.11.2", - "@temporalio/proto": "1.11.2" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" - }, - "node_modules/@types/node": { - "version": "22.7.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", - "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/bundle-require": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz", - "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", - "dev": true, - "dependencies": { - "load-tsconfig": "^0.2.3" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "esbuild": ">=0.18" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/cargo-cp-artifact": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz", - "integrity": "sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==", - "bin": { - "cargo-cp-artifact": "bin/cargo-cp-artifact.js" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", - "dev": true, - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.5.35", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.35.tgz", - "integrity": "sha512-hOSRInrIDm0Brzp4IHW2F/VM+638qOL2CzE0DgpnGzKW27C95IqqeqgKz/hxHGnvPxvQGpHUGD5qRVC9EZY2+A==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" - }, - "node_modules/esbuild": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", - "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.1", - "@esbuild/android-arm": "0.23.1", - "@esbuild/android-arm64": "0.23.1", - "@esbuild/android-x64": "0.23.1", - "@esbuild/darwin-arm64": "0.23.1", - "@esbuild/darwin-x64": "0.23.1", - "@esbuild/freebsd-arm64": "0.23.1", - "@esbuild/freebsd-x64": "0.23.1", - "@esbuild/linux-arm": "0.23.1", - "@esbuild/linux-arm64": "0.23.1", - "@esbuild/linux-ia32": "0.23.1", - "@esbuild/linux-loong64": "0.23.1", - "@esbuild/linux-mips64el": "0.23.1", - "@esbuild/linux-ppc64": "0.23.1", - "@esbuild/linux-riscv64": "0.23.1", - "@esbuild/linux-s390x": "0.23.1", - "@esbuild/linux-x64": "0.23.1", - "@esbuild/netbsd-x64": "0.23.1", - "@esbuild/openbsd-arm64": "0.23.1", - "@esbuild/openbsd-x64": "0.23.1", - "@esbuild/sunos-x64": "0.23.1", - "@esbuild/win32-arm64": "0.23.1", - "@esbuild/win32-ia32": "0.23.1", - "@esbuild/win32-x64": "0.23.1" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/heap-js": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.5.0.tgz", - "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", - "engines": { - "node": ">=10.18" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-tsconfig": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", - "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/memfs": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.13.0.tgz", - "integrity": "sha512-dIs5KGy24fbdDhIAg0RxXpFqQp3RwL6wgSMRF9OSuphL/Uc9a4u2/SDJKPLj/zUgtOGKuHrRMrj563+IErj4Cg==", - "dependencies": { - "@jsonjoy.com/json-pack": "^1.0.3", - "@jsonjoy.com/util": "^1.3.0", - "tree-dump": "^1.0.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">= 4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "3.0.0-canary.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", - "integrity": "sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==", - "engines": { - "node": ">=12.13" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" - }, - "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/proto3-json-serializer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", - "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", - "dependencies": { - "protobufjs": "^7.2.5" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "dependencies": { - "semver": "~7.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", - "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", - "dependencies": { - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.72.1" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/swc-loader": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.6.tgz", - "integrity": "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==", - "dependencies": { - "@swc/counter": "^0.1.3" - }, - "peerDependencies": { - "@swc/core": "^1.2.147", - "webpack": ">=2" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.34.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", - "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", - "engines": { - "node": ">=10.18" - }, - "peerDependencies": { - "tslib": "^2" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.9.tgz", - "integrity": "sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==", - "dev": true, - "dependencies": { - "fdir": "^6.4.0", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", - "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", - "dev": true, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "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" - }, - "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 - } - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/tsup": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", - "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", - "dev": true, - "dependencies": { - "bundle-require": "^5.0.0", - "cac": "^6.7.14", - "chokidar": "^3.6.0", - "consola": "^3.2.3", - "debug": "^4.3.5", - "esbuild": "^0.23.0", - "execa": "^5.1.1", - "joycon": "^3.1.1", - "picocolors": "^1.0.1", - "postcss-load-config": "^6.0.1", - "resolve-from": "^5.0.0", - "rollup": "^4.19.0", - "source-map": "0.8.0-beta.0", - "sucrase": "^3.35.0", - "tinyglobby": "^0.2.1", - "tree-kill": "^1.2.2" - }, - "bin": { - "tsup": "dist/cli-default.js", - "tsup-node": "dist/cli-node.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@microsoft/api-extractor": "^7.36.0", - "@swc/core": "^1", - "postcss": "^8.4.12", - "typescript": ">=4.5.0" - }, - "peerDependenciesMeta": { - "@microsoft/api-extractor": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "postcss": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/tsup/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" - }, - "node_modules/unionfs": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/unionfs/-/unionfs-4.5.4.tgz", - "integrity": "sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==", - "dependencies": { - "fs-monkey": "^1.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true + "name": "@restackio/get-started", + "version": "1.0.4", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@restackio/get-started", + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", + "nodemon": "^2.0.22", + "ts-node": "^10.9.2", + "typescript": "^5.6.2" + }, + "bin": { + "get-started": "bin/get-started.mjs" + }, + "devDependencies": { + "tsup": "8.3.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", + "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", + "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@restackio/ai": { + "version": "0.0.75", + "resolved": "https://registry.npmjs.org/@restackio/ai/-/ai-0.0.75.tgz", + "integrity": "sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==", + "dependencies": { + "@temporalio/activity": "^1.11.1", + "@temporalio/client": "^1.11.1", + "@temporalio/worker": "^1.11.1", + "@temporalio/workflow": "^1.11.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.36.tgz", + "integrity": "sha512-bu7ymMX+LCJOSSrKank25Jaq66ymLVA9fOUuy4ck3/6rbXdLw+pIJPnIDKQ9uNcxww8KDxOuJk9Ui9pqR+aGFw==", + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.13" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.36", + "@swc/core-darwin-x64": "1.7.36", + "@swc/core-linux-arm-gnueabihf": "1.7.36", + "@swc/core-linux-arm64-gnu": "1.7.36", + "@swc/core-linux-arm64-musl": "1.7.36", + "@swc/core-linux-x64-gnu": "1.7.36", + "@swc/core-linux-x64-musl": "1.7.36", + "@swc/core-win32-arm64-msvc": "1.7.36", + "@swc/core-win32-ia32-msvc": "1.7.36", + "@swc/core-win32-x64-msvc": "1.7.36" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.36.tgz", + "integrity": "sha512-8vDczXzCgv3ceTPhEivlpGprN44YlrCK1nbfU9g2TrhV/Aiqi09W/eM5zLesdoM1Z3mJl492gc/8nlTkpDdusw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.36.tgz", + "integrity": "sha512-Pa2Gao7+Wf5m3SsK4abKRtd48AtoUnJInvaC3d077swBfgZjbjUbQvcpdc2dOeQtWwo49rFqUZJonMsL0jnPgQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.36.tgz", + "integrity": "sha512-3YsMWd7V+WZEjbfBnLkkz/olcRBa8nyoK0iIOnNARJBMcYaJxjkJSMZpmSojCnIVwvjA1N83CPAbUL+W+fCnHg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.36.tgz", + "integrity": "sha512-lqM3aBB7kJazJYOwHeA5OGNLqXoQPZ/76b3dV+XcjN1GhD0CcXz6mW5PRYVin6OSN1eKrKBKJjtDA1mqADDEvw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.36.tgz", + "integrity": "sha512-bqei2YDzvUfG0pth5W2xJaj0eG4XWYk0d/NJ75vBX6bkIzK6dC8iuKQ41jOfUWonnrAs7rTDDJW0sTn/evvRdw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.36.tgz", + "integrity": "sha512-03maXTUyaBjeCxlDltmdzHje1ryQt1C4OWmmNgSSRXjLb+GNnAenwOJMSrcvHP/aNClD2pwsFCnYKDGy+sYE6w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.36.tgz", + "integrity": "sha512-XXysqLkvjtQnXm1zHqLhy00UYPv/gk5OtwR732X+piNisnEbcJBqI8Qp9O7YvLWllRcoP8IMBGDWLGdGLSpViA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.36.tgz", + "integrity": "sha512-k7+dmb13a/zPw+E4XYfPmLZFWJgcOcBRKIjYl9nQErtYsgsg3Ji6TBbsvJVETy23lNHyewZ17V5Vq6NzaG0hzg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.36.tgz", + "integrity": "sha512-ridD3ay6YM2PEYHZXXFN+edYEv0FOynaqOBP+NSnGNHA35azItIjoIe+KNi4WltGtAjpKCHSpjGCNfna12wdYQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.36", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.36.tgz", + "integrity": "sha512-j1z2Z1Ln9d0E3dHsPkC1K9XDh0ojhRPwV+GfRTu4D61PE+aYhYLvbJC6xPvL4/204QrStRS7eDu3m+BcDp3rgQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/types": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", + "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@temporalio/activity": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@temporalio/activity/-/activity-1.11.3.tgz", + "integrity": "sha512-XH923/I7wvKSxrMiB/vF7Xuix3lBEd1vLGMtgkj0wF2t8WBITjbHXQLzpJUlQm8O0hjixI7bDqFNRCan3Ov1xQ==", + "dependencies": { + "@temporalio/common": "1.11.3", + "abort-controller": "^3.0.0" + } + }, + "node_modules/@temporalio/client": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@temporalio/client/-/client-1.11.3.tgz", + "integrity": "sha512-2x30xAXbUuqelrWe3Vd1FVC0+Z2Cfh6m2W5yDUZBjqTMdNP6qd8nH4S4mceRtZ4TipYSPmaONaiWoAU2VvwEIg==", + "dependencies": { + "@grpc/grpc-js": "^1.10.7", + "@temporalio/common": "1.11.3", + "@temporalio/proto": "1.11.3", + "abort-controller": "^3.0.0", + "long": "^5.2.3", + "uuid": "^9.0.1" + } + }, + "node_modules/@temporalio/common": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@temporalio/common/-/common-1.11.3.tgz", + "integrity": "sha512-dzCrwiE9ox/Q16AjBsUKr4djg1ovYHNCjH36WZadwsemXINRWa5eW53j0WZOlmFF8/CbcHIhiD5N18rZqjiYkg==", + "dependencies": { + "@temporalio/proto": "1.11.3", + "long": "^5.2.3", + "ms": "^3.0.0-canary.1", + "proto3-json-serializer": "^2.0.0" + } + }, + "node_modules/@temporalio/core-bridge": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@temporalio/core-bridge/-/core-bridge-1.11.3.tgz", + "integrity": "sha512-dUPJiS/ZQtFnttmu0V1BLLjUE5wQxrwI0+xSvUc6JEiC1q9Z6BmhobSKbcEKCvJgh5OMZKh/jn6yu1N7oLsZPw==", + "hasInstallScript": true, + "dependencies": { + "@temporalio/common": "1.11.3", + "arg": "^5.0.2", + "cargo-cp-artifact": "^0.1.8", + "which": "^4.0.0" + } + }, + "node_modules/@temporalio/proto": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@temporalio/proto/-/proto-1.11.3.tgz", + "integrity": "sha512-X+xV75m11BvvS5MljagtYCybRNxpLNJM24eWyfv+uyU4WZSvgQCUh21fY4FOUDJS66DPvO1mefSPu0Nunp1PHg==", + "dependencies": { + "long": "^5.2.3", + "protobufjs": "^7.2.5" + } + }, + "node_modules/@temporalio/worker": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@temporalio/worker/-/worker-1.11.3.tgz", + "integrity": "sha512-CwiqsiQ5pKIyEcYOlfjRudu4pXCHU9PXm3Qycn1owpgdL1fbbpFiJ8yCoTWqrlB23BsWMhOpUyaQLnTF8D+4aQ==", + "dependencies": { + "@swc/core": "^1.3.102", + "@temporalio/activity": "1.11.3", + "@temporalio/client": "1.11.3", + "@temporalio/common": "1.11.3", + "@temporalio/core-bridge": "1.11.3", + "@temporalio/proto": "1.11.3", + "@temporalio/workflow": "1.11.3", + "abort-controller": "^3.0.0", + "heap-js": "^2.3.0", + "memfs": "^4.6.0", + "rxjs": "^7.8.1", + "source-map": "^0.7.4", + "source-map-loader": "^4.0.2", + "supports-color": "^8.1.1", + "swc-loader": "^0.2.3", + "unionfs": "^4.5.1", + "webpack": "^5.94.0" + }, + "engines": { + "node": ">= 16.0.0" + } + }, + "node_modules/@temporalio/workflow": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@temporalio/workflow/-/workflow-1.11.3.tgz", + "integrity": "sha512-TT4TqzMveLY9UsWQUSkFyb9Qvoz4VvCcJCPCyKLQyrp5BuAsf7owOByOfs74gz2tgTQiPjk1TtV4YXXEPRb4yA==", + "dependencies": { + "@temporalio/common": "1.11.3", + "@temporalio/proto": "1.11.3" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/node": { + "version": "22.7.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", + "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bundle-require": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz", + "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", + "dev": true, + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/cargo-cp-artifact": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz", + "integrity": "sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==", + "bin": { + "cargo-cp-artifact": "bin/cargo-cp-artifact.js" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.41", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", + "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" + }, + "node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/heap-js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.5.0.tgz", + "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/memfs": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", + "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "3.0.0-canary.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", + "integrity": "sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==", + "engines": { + "node": ">=12.13" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", + "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/swc-loader": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.6.tgz", + "integrity": "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==", + "dependencies": { + "@swc/counter": "^0.1.3" + }, + "peerDependencies": { + "@swc/core": "^1.2.147", + "webpack": ">=2" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.9.tgz", + "integrity": "sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==", + "dev": true, + "dependencies": { + "fdir": "^6.4.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "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" + }, + "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 + } + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" + }, + "node_modules/tsup": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", + "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", + "dev": true, + "dependencies": { + "bundle-require": "^5.0.0", + "cac": "^6.7.14", + "chokidar": "^3.6.0", + "consola": "^3.2.3", + "debug": "^4.3.5", + "esbuild": "^0.23.0", + "execa": "^5.1.1", + "joycon": "^3.1.1", + "picocolors": "^1.0.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.19.0", + "source-map": "0.8.0-beta.0", + "sucrase": "^3.35.0", + "tinyglobby": "^0.2.1", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/tsup/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/unionfs": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/unionfs/-/unionfs-4.5.4.tgz", + "integrity": "sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==", + "dependencies": { + "fs-monkey": "^1.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/webpack": { + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } } - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } } - } } diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 0170bfa..3c47c69 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -9,6 +9,7 @@ "bin", "src", "scheduleWorkflow.ts", + "readme.md", "tsconfig.json" ], "keywords": [ @@ -16,7 +17,6 @@ "starter", "template" ], - "author": "Your Name", "license": "MIT", "dependencies": { "@restackio/ai": "^0.0.75", diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index c06c8be..768791d 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -13,20 +13,20 @@ importers: version: 0.0.75(esbuild@0.23.1) '@temporalio/workflow': specifier: ^1.11.2 - version: 1.11.2 + version: 1.11.3 nodemon: specifier: ^2.0.22 version: 2.0.22 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.2) + version: 10.9.2(@swc/core@1.7.36)(@types/node@22.7.7)(typescript@5.6.3) typescript: specifier: ^5.6.2 - version: 5.6.2 + version: 5.6.3 devDependencies: tsup: - specifier: ^8.3.0 - version: 8.3.0(@swc/core@1.7.26)(typescript@5.6.2) + specifier: 8.3.0 + version: 8.3.0(@swc/core@1.7.36)(typescript@5.6.3) packages: @@ -178,8 +178,8 @@ packages: cpu: [x64] os: [win32] - '@grpc/grpc-js@1.12.0': - resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} + '@grpc/grpc-js@1.12.2': + resolution: {integrity: sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -354,68 +354,68 @@ packages: cpu: [x64] os: [win32] - '@swc/core-darwin-arm64@1.7.26': - resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} + '@swc/core-darwin-arm64@1.7.36': + resolution: {integrity: sha512-8vDczXzCgv3ceTPhEivlpGprN44YlrCK1nbfU9g2TrhV/Aiqi09W/eM5zLesdoM1Z3mJl492gc/8nlTkpDdusw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.26': - resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} + '@swc/core-darwin-x64@1.7.36': + resolution: {integrity: sha512-Pa2Gao7+Wf5m3SsK4abKRtd48AtoUnJInvaC3d077swBfgZjbjUbQvcpdc2dOeQtWwo49rFqUZJonMsL0jnPgQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.26': - resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} + '@swc/core-linux-arm-gnueabihf@1.7.36': + resolution: {integrity: sha512-3YsMWd7V+WZEjbfBnLkkz/olcRBa8nyoK0iIOnNARJBMcYaJxjkJSMZpmSojCnIVwvjA1N83CPAbUL+W+fCnHg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.26': - resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} + '@swc/core-linux-arm64-gnu@1.7.36': + resolution: {integrity: sha512-lqM3aBB7kJazJYOwHeA5OGNLqXoQPZ/76b3dV+XcjN1GhD0CcXz6mW5PRYVin6OSN1eKrKBKJjtDA1mqADDEvw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.26': - resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} + '@swc/core-linux-arm64-musl@1.7.36': + resolution: {integrity: sha512-bqei2YDzvUfG0pth5W2xJaj0eG4XWYk0d/NJ75vBX6bkIzK6dC8iuKQ41jOfUWonnrAs7rTDDJW0sTn/evvRdw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.26': - resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} + '@swc/core-linux-x64-gnu@1.7.36': + resolution: {integrity: sha512-03maXTUyaBjeCxlDltmdzHje1ryQt1C4OWmmNgSSRXjLb+GNnAenwOJMSrcvHP/aNClD2pwsFCnYKDGy+sYE6w==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.26': - resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} + '@swc/core-linux-x64-musl@1.7.36': + resolution: {integrity: sha512-XXysqLkvjtQnXm1zHqLhy00UYPv/gk5OtwR732X+piNisnEbcJBqI8Qp9O7YvLWllRcoP8IMBGDWLGdGLSpViA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.26': - resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} + '@swc/core-win32-arm64-msvc@1.7.36': + resolution: {integrity: sha512-k7+dmb13a/zPw+E4XYfPmLZFWJgcOcBRKIjYl9nQErtYsgsg3Ji6TBbsvJVETy23lNHyewZ17V5Vq6NzaG0hzg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.26': - resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} + '@swc/core-win32-ia32-msvc@1.7.36': + resolution: {integrity: sha512-ridD3ay6YM2PEYHZXXFN+edYEv0FOynaqOBP+NSnGNHA35azItIjoIe+KNi4WltGtAjpKCHSpjGCNfna12wdYQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.26': - resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} + '@swc/core-win32-x64-msvc@1.7.36': + resolution: {integrity: sha512-j1z2Z1Ln9d0E3dHsPkC1K9XDh0ojhRPwV+GfRTu4D61PE+aYhYLvbJC6xPvL4/204QrStRS7eDu3m+BcDp3rgQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.26': - resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} + '@swc/core@1.7.36': + resolution: {integrity: sha512-bu7ymMX+LCJOSSrKank25Jaq66ymLVA9fOUuy4ck3/6rbXdLw+pIJPnIDKQ9uNcxww8KDxOuJk9Ui9pqR+aGFw==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -426,30 +426,30 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/types@0.1.12': - resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + '@swc/types@0.1.13': + resolution: {integrity: sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==} - '@temporalio/activity@1.11.2': - resolution: {integrity: sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==} + '@temporalio/activity@1.11.3': + resolution: {integrity: sha512-XH923/I7wvKSxrMiB/vF7Xuix3lBEd1vLGMtgkj0wF2t8WBITjbHXQLzpJUlQm8O0hjixI7bDqFNRCan3Ov1xQ==} - '@temporalio/client@1.11.2': - resolution: {integrity: sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==} + '@temporalio/client@1.11.3': + resolution: {integrity: sha512-2x30xAXbUuqelrWe3Vd1FVC0+Z2Cfh6m2W5yDUZBjqTMdNP6qd8nH4S4mceRtZ4TipYSPmaONaiWoAU2VvwEIg==} - '@temporalio/common@1.11.2': - resolution: {integrity: sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==} + '@temporalio/common@1.11.3': + resolution: {integrity: sha512-dzCrwiE9ox/Q16AjBsUKr4djg1ovYHNCjH36WZadwsemXINRWa5eW53j0WZOlmFF8/CbcHIhiD5N18rZqjiYkg==} - '@temporalio/core-bridge@1.11.2': - resolution: {integrity: sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==} + '@temporalio/core-bridge@1.11.3': + resolution: {integrity: sha512-dUPJiS/ZQtFnttmu0V1BLLjUE5wQxrwI0+xSvUc6JEiC1q9Z6BmhobSKbcEKCvJgh5OMZKh/jn6yu1N7oLsZPw==} - '@temporalio/proto@1.11.2': - resolution: {integrity: sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==} + '@temporalio/proto@1.11.3': + resolution: {integrity: sha512-X+xV75m11BvvS5MljagtYCybRNxpLNJM24eWyfv+uyU4WZSvgQCUh21fY4FOUDJS66DPvO1mefSPu0Nunp1PHg==} - '@temporalio/worker@1.11.2': - resolution: {integrity: sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==} + '@temporalio/worker@1.11.3': + resolution: {integrity: sha512-CwiqsiQ5pKIyEcYOlfjRudu4pXCHU9PXm3Qycn1owpgdL1fbbpFiJ8yCoTWqrlB23BsWMhOpUyaQLnTF8D+4aQ==} engines: {node: '>= 16.0.0'} - '@temporalio/workflow@1.11.2': - resolution: {integrity: sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==} + '@temporalio/workflow@1.11.3': + resolution: {integrity: sha512-TT4TqzMveLY9UsWQUSkFyb9Qvoz4VvCcJCPCyKLQyrp5BuAsf7owOByOfs74gz2tgTQiPjk1TtV4YXXEPRb4yA==} '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -469,8 +469,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@20.16.10': - resolution: {integrity: sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==} + '@types/node@22.7.7': + resolution: {integrity: sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -536,8 +536,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} engines: {node: '>=0.4.0'} hasBin: true @@ -613,8 +613,8 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - caniuse-lite@1.0.30001667: - resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + caniuse-lite@1.0.30001669: + resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} cargo-cp-artifact@0.1.9: resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} @@ -684,8 +684,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.32: - resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} + electron-to-chromium@1.5.41: + resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -894,8 +894,8 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - memfs@4.12.0: - resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} + memfs@4.14.0: + resolution: {integrity: sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==} engines: {node: '>= 4.0.0'} merge-stream@2.0.0: @@ -972,8 +972,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1167,8 +1167,8 @@ packages: uglify-js: optional: true - terser@5.34.1: - resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} engines: {node: '>=10'} hasBin: true @@ -1227,8 +1227,8 @@ packages: '@swc/wasm': optional: true - tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + tslib@2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} tsup@8.3.0: resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} @@ -1249,8 +1249,8 @@ packages: typescript: optional: true - typescript@5.6.2: - resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -1415,7 +1415,7 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@grpc/grpc-js@1.12.0': + '@grpc/grpc-js@1.12.2': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -1465,21 +1465,21 @@ snapshots: '@js-sdsl/ordered-map@4.4.2': {} - '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': + '@jsonjoy.com/base64@1.1.2(tslib@2.8.0)': dependencies: - tslib: 2.7.0 + tslib: 2.8.0 - '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.8.0)': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) - '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.0) hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.7.0) - tslib: 2.7.0 + thingies: 1.21.0(tslib@2.8.0) + tslib: 2.8.0 - '@jsonjoy.com/util@1.5.0(tslib@2.7.0)': + '@jsonjoy.com/util@1.5.0(tslib@2.8.0)': dependencies: - tslib: 2.7.0 + tslib: 2.8.0 '@pkgjs/parseargs@0.11.0': optional: true @@ -1509,10 +1509,10 @@ snapshots: '@restackio/ai@0.0.75(esbuild@0.23.1)': dependencies: - '@temporalio/activity': 1.11.2 - '@temporalio/client': 1.11.2 - '@temporalio/worker': 1.11.2(esbuild@0.23.1) - '@temporalio/workflow': 1.11.2 + '@temporalio/activity': 1.11.3 + '@temporalio/client': 1.11.3 + '@temporalio/worker': 1.11.3(esbuild@0.23.1) + '@temporalio/workflow': 1.11.3 transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1567,120 +1567,120 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true - '@swc/core-darwin-arm64@1.7.26': + '@swc/core-darwin-arm64@1.7.36': optional: true - '@swc/core-darwin-x64@1.7.26': + '@swc/core-darwin-x64@1.7.36': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.26': + '@swc/core-linux-arm-gnueabihf@1.7.36': optional: true - '@swc/core-linux-arm64-gnu@1.7.26': + '@swc/core-linux-arm64-gnu@1.7.36': optional: true - '@swc/core-linux-arm64-musl@1.7.26': + '@swc/core-linux-arm64-musl@1.7.36': optional: true - '@swc/core-linux-x64-gnu@1.7.26': + '@swc/core-linux-x64-gnu@1.7.36': optional: true - '@swc/core-linux-x64-musl@1.7.26': + '@swc/core-linux-x64-musl@1.7.36': optional: true - '@swc/core-win32-arm64-msvc@1.7.26': + '@swc/core-win32-arm64-msvc@1.7.36': optional: true - '@swc/core-win32-ia32-msvc@1.7.26': + '@swc/core-win32-ia32-msvc@1.7.36': optional: true - '@swc/core-win32-x64-msvc@1.7.26': + '@swc/core-win32-x64-msvc@1.7.36': optional: true - '@swc/core@1.7.26': + '@swc/core@1.7.36': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 + '@swc/types': 0.1.13 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.26 - '@swc/core-darwin-x64': 1.7.26 - '@swc/core-linux-arm-gnueabihf': 1.7.26 - '@swc/core-linux-arm64-gnu': 1.7.26 - '@swc/core-linux-arm64-musl': 1.7.26 - '@swc/core-linux-x64-gnu': 1.7.26 - '@swc/core-linux-x64-musl': 1.7.26 - '@swc/core-win32-arm64-msvc': 1.7.26 - '@swc/core-win32-ia32-msvc': 1.7.26 - '@swc/core-win32-x64-msvc': 1.7.26 + '@swc/core-darwin-arm64': 1.7.36 + '@swc/core-darwin-x64': 1.7.36 + '@swc/core-linux-arm-gnueabihf': 1.7.36 + '@swc/core-linux-arm64-gnu': 1.7.36 + '@swc/core-linux-arm64-musl': 1.7.36 + '@swc/core-linux-x64-gnu': 1.7.36 + '@swc/core-linux-x64-musl': 1.7.36 + '@swc/core-win32-arm64-msvc': 1.7.36 + '@swc/core-win32-ia32-msvc': 1.7.36 + '@swc/core-win32-x64-msvc': 1.7.36 '@swc/counter@0.1.3': {} - '@swc/types@0.1.12': + '@swc/types@0.1.13': dependencies: '@swc/counter': 0.1.3 - '@temporalio/activity@1.11.2': + '@temporalio/activity@1.11.3': dependencies: - '@temporalio/common': 1.11.2 + '@temporalio/common': 1.11.3 abort-controller: 3.0.0 - '@temporalio/client@1.11.2': + '@temporalio/client@1.11.3': dependencies: - '@grpc/grpc-js': 1.12.0 - '@temporalio/common': 1.11.2 - '@temporalio/proto': 1.11.2 + '@grpc/grpc-js': 1.12.2 + '@temporalio/common': 1.11.3 + '@temporalio/proto': 1.11.3 abort-controller: 3.0.0 long: 5.2.3 uuid: 9.0.1 - '@temporalio/common@1.11.2': + '@temporalio/common@1.11.3': dependencies: - '@temporalio/proto': 1.11.2 + '@temporalio/proto': 1.11.3 long: 5.2.3 ms: 3.0.0-canary.1 proto3-json-serializer: 2.0.2 - '@temporalio/core-bridge@1.11.2': + '@temporalio/core-bridge@1.11.3': dependencies: - '@temporalio/common': 1.11.2 + '@temporalio/common': 1.11.3 arg: 5.0.2 cargo-cp-artifact: 0.1.9 which: 4.0.0 - '@temporalio/proto@1.11.2': + '@temporalio/proto@1.11.3': dependencies: long: 5.2.3 protobufjs: 7.4.0 - '@temporalio/worker@1.11.2(esbuild@0.23.1)': + '@temporalio/worker@1.11.3(esbuild@0.23.1)': dependencies: - '@swc/core': 1.7.26 - '@temporalio/activity': 1.11.2 - '@temporalio/client': 1.11.2 - '@temporalio/common': 1.11.2 - '@temporalio/core-bridge': 1.11.2 - '@temporalio/proto': 1.11.2 - '@temporalio/workflow': 1.11.2 + '@swc/core': 1.7.36 + '@temporalio/activity': 1.11.3 + '@temporalio/client': 1.11.3 + '@temporalio/common': 1.11.3 + '@temporalio/core-bridge': 1.11.3 + '@temporalio/proto': 1.11.3 + '@temporalio/workflow': 1.11.3 abort-controller: 3.0.0 heap-js: 2.5.0 - memfs: 4.12.0 + memfs: 4.14.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)) + swc-loader: 0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) unionfs: 4.5.4 - webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) transitivePeerDependencies: - '@swc/helpers' - esbuild - uglify-js - webpack-cli - '@temporalio/workflow@1.11.2': + '@temporalio/workflow@1.11.3': dependencies: - '@temporalio/common': 1.11.2 - '@temporalio/proto': 1.11.2 + '@temporalio/common': 1.11.3 + '@temporalio/proto': 1.11.3 '@tsconfig/node10@1.0.11': {} @@ -1694,7 +1694,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@20.16.10': + '@types/node@22.7.7': dependencies: undici-types: 6.19.8 @@ -1782,15 +1782,15 @@ snapshots: dependencies: event-target-shim: 5.0.1 - acorn-import-attributes@1.9.5(acorn@8.12.1): + acorn-import-attributes@1.9.5(acorn@8.13.0): dependencies: - acorn: 8.12.1 + acorn: 8.13.0 acorn-walk@8.3.4: dependencies: - acorn: 8.12.1 + acorn: 8.13.0 - acorn@8.12.1: {} + acorn@8.13.0: {} ajv-keywords@3.5.2(ajv@6.12.6): dependencies: @@ -1843,8 +1843,8 @@ snapshots: browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001667 - electron-to-chromium: 1.5.32 + caniuse-lite: 1.0.30001669 + electron-to-chromium: 1.5.41 node-releases: 2.0.18 update-browserslist-db: 1.1.1(browserslist@4.24.0) @@ -1857,7 +1857,7 @@ snapshots: cac@6.7.14: {} - caniuse-lite@1.0.30001667: {} + caniuse-lite@1.0.30001669: {} cargo-cp-artifact@0.1.9: {} @@ -1917,7 +1917,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.32: {} + electron-to-chromium@1.5.41: {} emoji-regex@8.0.0: {} @@ -2075,7 +2075,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.16.10 + '@types/node': 22.7.7 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2103,12 +2103,12 @@ snapshots: make-error@1.3.6: {} - memfs@4.12.0: + memfs@4.14.0: dependencies: - '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) - '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) - tree-dump: 1.0.2(tslib@2.7.0) - tslib: 2.7.0 + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.8.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.0) + tree-dump: 1.0.2(tslib@2.8.0) + tslib: 2.8.0 merge-stream@2.0.0: {} @@ -2178,7 +2178,7 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - picocolors@1.1.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -2206,7 +2206,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.16.10 + '@types/node': 22.7.7 long: 5.2.3 pstree.remy@1.1.8: {} @@ -2249,7 +2249,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.7.0 + tslib: 2.8.0 safe-buffer@5.2.1: {} @@ -2285,11 +2285,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) source-map-support@0.5.21: dependencies: @@ -2344,30 +2344,30 @@ snapshots: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)): + swc-loader@0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): dependencies: - '@swc/core': 1.7.26 + '@swc/core': 1.7.36 '@swc/counter': 0.1.3 - webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.34.1 - webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.23.1) + terser: 5.36.0 + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) optionalDependencies: - '@swc/core': 1.7.26 + '@swc/core': 1.7.36 esbuild: 0.23.1 - terser@5.34.1: + terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.13.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -2379,9 +2379,9 @@ snapshots: dependencies: any-promise: 1.3.0 - thingies@1.21.0(tslib@2.7.0): + thingies@1.21.0(tslib@2.8.0): dependencies: - tslib: 2.7.0 + tslib: 2.8.0 tinyglobby@0.2.9: dependencies: @@ -2398,37 +2398,37 @@ snapshots: dependencies: punycode: 2.3.1 - tree-dump@1.0.2(tslib@2.7.0): + tree-dump@1.0.2(tslib@2.8.0): dependencies: - tslib: 2.7.0 + tslib: 2.8.0 tree-kill@1.2.2: {} ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.2): + ts-node@10.9.2(@swc/core@1.7.36)(@types/node@22.7.7)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.16.10 - acorn: 8.12.1 + '@types/node': 22.7.7 + acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.2 + typescript: 5.6.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.26 + '@swc/core': 1.7.36 - tslib@2.7.0: {} + tslib@2.8.0: {} - tsup@8.3.0(@swc/core@1.7.26)(typescript@5.6.2): + tsup@8.3.0(@swc/core@1.7.36)(typescript@5.6.3): dependencies: bundle-require: 5.0.0(esbuild@0.23.1) cac: 6.7.14 @@ -2438,7 +2438,7 @@ snapshots: esbuild: 0.23.1 execa: 5.1.1 joycon: 3.1.1 - picocolors: 1.1.0 + picocolors: 1.1.1 postcss-load-config: 6.0.1 resolve-from: 5.0.0 rollup: 4.24.0 @@ -2447,15 +2447,15 @@ snapshots: tinyglobby: 0.2.9 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.7.26 - typescript: 5.6.2 + '@swc/core': 1.7.36 + typescript: 5.6.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - typescript@5.6.2: {} + typescript@5.6.3: {} undefsafe@2.0.5: {} @@ -2469,7 +2469,7 @@ snapshots: dependencies: browserslist: 4.24.0 escalade: 3.2.0 - picocolors: 1.1.0 + picocolors: 1.1.1 uri-js@4.4.1: dependencies: @@ -2488,14 +2488,14 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1): + webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) + acorn: 8.13.0 + acorn-import-attributes: 1.9.5(acorn@8.13.0) browserslist: 4.24.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 @@ -2510,7 +2510,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.26)(esbuild@0.23.1)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: From 0dbf5c796525639a173f4d12ccfabd8ee4fb23fe Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Mon, 21 Oct 2024 18:03:32 +0200 Subject: [PATCH 092/122] Test Action Former-commit-id: f64264b691900e0712491c2a305a5be91997193b Former-commit-id: 4d3f1c11dea4b3e2084975ed7ddef676217d5129 --- .github/workflows/npm-publish.yml | 6 ++++++ examples/get-started/bin/get-started.mjs | 9 ++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 11ed766..32d67f3 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -6,6 +6,12 @@ on: - 'main' paths: - 'examples/get-started/**' + # TODO: Remove after testing + pull_request: + branches: + - '*' + paths: + - 'examples/get-started/**' jobs: publish: diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs index 16c61b1..f109c74 100755 --- a/examples/get-started/bin/get-started.mjs +++ b/examples/get-started/bin/get-started.mjs @@ -589,6 +589,7 @@ var package_default = { "bin", "src", "scheduleWorkflow.ts", + "readme.md", "tsconfig.json" ], keywords: [ @@ -596,7 +597,6 @@ var package_default = { "starter", "template" ], - author: "Your Name", license: "MIT", dependencies: { "@restackio/ai": "^0.0.75", @@ -633,7 +633,6 @@ async function main() { } }); if (projectName) { - console.log("\u{1F680} ~ main ~ targetDir:", targetDir); targetDir = path.join(currentDir, projectName); const filesToCopy = ["src", "scheduleWorkflow.ts", "tsconfig.json"]; filesToCopy.forEach((file) => { @@ -675,11 +674,11 @@ Project created successfully! We suggest that you begin with following commands: -To navigate to the project, run: "${blue}cd ${projectName}${noColor}" +To navigate to the project, run: ${blue}cd ${projectName}${noColor} -To start the service, run: "${blue}npm run service${noColor}" +To start the service, run: ${blue}npm run service${noColor} -To schedule a workflow, run: "${blue}npm run schedule${noColor}" +To schedule a workflow, run: ${blue}npm run schedule${noColor} `); } main(); From dfb2ed8f64462bfecc22f06dff656951f78713dd Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Mon, 21 Oct 2024 18:18:45 +0200 Subject: [PATCH 093/122] Fix tsup Former-commit-id: a441c6b50e66f68cab07f04180c254edecf188f5 Former-commit-id: e6685fb408505c67b6edc072fe650e3d94d8e549 --- .github/workflows/npm-publish.yml | 5 +- examples/get-started/package-lock.json | 518 +++++++++++++++++++++---- examples/get-started/package.json | 15 +- examples/get-started/pnpm-lock.yaml | 27 ++ 4 files changed, 482 insertions(+), 83 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 32d67f3..9cfffce 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -25,9 +25,10 @@ jobs: with: node-version: 20 - # Only install dev dependencies, for the binary. No need for source code. + # Only install dev dependencies, for the binary. No need to install deps for the source code. - name: Install dependencies - run: pnpm install --dev + # Weird tsup quirck https://github.com/npm/cli/issues/4828#issuecomment-2404560937 + run: pnpm i @rollup/rollup-linux-x64-gnu && pnpm install --dev working-directory: ./examples/get-started - name: Build binary diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index 99154dd..146bc6d 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -19,13 +19,54 @@ "get-started": "bin/get-started.mjs" }, "devDependencies": { + "@clack/prompts": "^0.7.0", "tsup": "8.3.0" } }, + "node_modules/@clack/core": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-0.3.4.tgz", + "integrity": "sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@clack/prompts": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-0.7.0.tgz", + "integrity": "sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==", + "bundleDependencies": [ + "is-unicode-supported" + ], + "dev": true, + "license": "MIT", + "dependencies": { + "@clack/core": "^0.3.3", + "is-unicode-supported": "*", + "picocolors": "^1.0.0", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@clack/prompts/node_modules/is-unicode-supported": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -41,6 +82,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -57,6 +99,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -73,6 +116,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -89,6 +133,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -105,6 +150,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -121,6 +167,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -137,6 +184,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -153,6 +201,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -169,6 +218,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -185,6 +235,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -201,6 +252,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -217,6 +269,7 @@ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -233,6 +286,7 @@ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -249,6 +303,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -265,6 +320,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -281,6 +337,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -297,6 +354,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -313,6 +371,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -329,6 +388,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -345,6 +405,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -361,6 +422,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -377,6 +439,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -393,6 +456,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -409,6 +473,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -421,6 +486,7 @@ "version": "1.12.2", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", + "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" @@ -433,6 +499,7 @@ "version": "0.7.13", "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", @@ -451,6 +518,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -467,6 +535,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -480,6 +549,7 @@ "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -489,6 +559,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -497,6 +568,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -505,6 +577,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -514,6 +587,7 @@ "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -522,12 +596,14 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -537,6 +613,7 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/js-sdsl" @@ -546,6 +623,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -561,6 +639,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/base64": "^1.1.1", "@jsonjoy.com/util": "^1.1.2", @@ -582,6 +661,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.5.0.tgz", "integrity": "sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==", + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -598,6 +678,7 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -606,27 +687,32 @@ "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -635,27 +721,32 @@ "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" }, "node_modules/@restackio/ai": { "version": "0.0.75", @@ -679,6 +770,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -692,6 +784,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -705,6 +798,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -718,6 +812,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -731,6 +826,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -744,6 +840,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -757,6 +854,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -770,6 +868,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -783,6 +882,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -796,6 +896,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -809,6 +910,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -822,6 +924,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -835,6 +938,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -848,6 +952,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -861,6 +966,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -874,6 +980,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -884,6 +991,7 @@ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.36.tgz", "integrity": "sha512-bu7ymMX+LCJOSSrKank25Jaq66ymLVA9fOUuy4ck3/6rbXdLw+pIJPnIDKQ9uNcxww8KDxOuJk9Ui9pqR+aGFw==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.13" @@ -923,6 +1031,7 @@ "cpu": [ "arm64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -938,6 +1047,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" @@ -953,6 +1063,7 @@ "cpu": [ "arm" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -968,6 +1079,7 @@ "cpu": [ "arm64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -983,6 +1095,7 @@ "cpu": [ "arm64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -998,6 +1111,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1013,6 +1127,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1028,6 +1143,7 @@ "cpu": [ "arm64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -1043,6 +1159,7 @@ "cpu": [ "ia32" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -1058,6 +1175,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" @@ -1069,12 +1187,14 @@ "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" }, "node_modules/@swc/types": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", + "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.3" } @@ -1083,6 +1203,7 @@ "version": "1.11.3", "resolved": "https://registry.npmjs.org/@temporalio/activity/-/activity-1.11.3.tgz", "integrity": "sha512-XH923/I7wvKSxrMiB/vF7Xuix3lBEd1vLGMtgkj0wF2t8WBITjbHXQLzpJUlQm8O0hjixI7bDqFNRCan3Ov1xQ==", + "license": "MIT", "dependencies": { "@temporalio/common": "1.11.3", "abort-controller": "^3.0.0" @@ -1092,6 +1213,7 @@ "version": "1.11.3", "resolved": "https://registry.npmjs.org/@temporalio/client/-/client-1.11.3.tgz", "integrity": "sha512-2x30xAXbUuqelrWe3Vd1FVC0+Z2Cfh6m2W5yDUZBjqTMdNP6qd8nH4S4mceRtZ4TipYSPmaONaiWoAU2VvwEIg==", + "license": "MIT", "dependencies": { "@grpc/grpc-js": "^1.10.7", "@temporalio/common": "1.11.3", @@ -1105,6 +1227,7 @@ "version": "1.11.3", "resolved": "https://registry.npmjs.org/@temporalio/common/-/common-1.11.3.tgz", "integrity": "sha512-dzCrwiE9ox/Q16AjBsUKr4djg1ovYHNCjH36WZadwsemXINRWa5eW53j0WZOlmFF8/CbcHIhiD5N18rZqjiYkg==", + "license": "MIT", "dependencies": { "@temporalio/proto": "1.11.3", "long": "^5.2.3", @@ -1117,6 +1240,7 @@ "resolved": "https://registry.npmjs.org/@temporalio/core-bridge/-/core-bridge-1.11.3.tgz", "integrity": "sha512-dUPJiS/ZQtFnttmu0V1BLLjUE5wQxrwI0+xSvUc6JEiC1q9Z6BmhobSKbcEKCvJgh5OMZKh/jn6yu1N7oLsZPw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "@temporalio/common": "1.11.3", "arg": "^5.0.2", @@ -1128,6 +1252,7 @@ "version": "1.11.3", "resolved": "https://registry.npmjs.org/@temporalio/proto/-/proto-1.11.3.tgz", "integrity": "sha512-X+xV75m11BvvS5MljagtYCybRNxpLNJM24eWyfv+uyU4WZSvgQCUh21fY4FOUDJS66DPvO1mefSPu0Nunp1PHg==", + "license": "MIT", "dependencies": { "long": "^5.2.3", "protobufjs": "^7.2.5" @@ -1137,6 +1262,7 @@ "version": "1.11.3", "resolved": "https://registry.npmjs.org/@temporalio/worker/-/worker-1.11.3.tgz", "integrity": "sha512-CwiqsiQ5pKIyEcYOlfjRudu4pXCHU9PXm3Qycn1owpgdL1fbbpFiJ8yCoTWqrlB23BsWMhOpUyaQLnTF8D+4aQ==", + "license": "MIT", "dependencies": { "@swc/core": "^1.3.102", "@temporalio/activity": "1.11.3", @@ -1164,6 +1290,7 @@ "version": "1.11.3", "resolved": "https://registry.npmjs.org/@temporalio/workflow/-/workflow-1.11.3.tgz", "integrity": "sha512-TT4TqzMveLY9UsWQUSkFyb9Qvoz4VvCcJCPCyKLQyrp5BuAsf7owOByOfs74gz2tgTQiPjk1TtV4YXXEPRb4yA==", + "license": "MIT", "dependencies": { "@temporalio/common": "1.11.3", "@temporalio/proto": "1.11.3" @@ -1172,37 +1299,44 @@ "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "license": "MIT" }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, "node_modules/@types/node": { "version": "22.7.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", + "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } @@ -1211,6 +1345,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -1219,22 +1354,26 @@ "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -1244,12 +1383,14 @@ "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -1261,6 +1402,7 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -1269,6 +1411,7 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } @@ -1276,12 +1419,14 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -1297,6 +1442,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -1309,6 +1455,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -1320,6 +1467,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", @@ -1333,6 +1481,7 @@ "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" @@ -1341,17 +1490,20 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -1363,6 +1515,7 @@ "version": "8.13.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1374,6 +1527,7 @@ "version": "1.9.5", "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", "peerDependencies": { "acorn": "^8" } @@ -1382,6 +1536,7 @@ "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", "dependencies": { "acorn": "^8.11.0" }, @@ -1393,6 +1548,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1408,6 +1564,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -1417,6 +1574,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1429,6 +1587,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1440,12 +1599,14 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1457,17 +1618,20 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -1479,6 +1643,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1488,6 +1653,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1513,6 +1679,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001663", "electron-to-chromium": "^1.5.28", @@ -1529,13 +1696,15 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, "node_modules/bundle-require": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz", "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", "dev": true, + "license": "MIT", "dependencies": { "load-tsconfig": "^0.2.3" }, @@ -1551,6 +1720,7 @@ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1572,12 +1742,14 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/cargo-cp-artifact": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz", "integrity": "sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==", + "license": "MIT", "bin": { "cargo-cp-artifact": "bin/cargo-cp-artifact.js" } @@ -1586,6 +1758,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1609,6 +1782,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", "engines": { "node": ">=6.0" } @@ -1617,6 +1791,7 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -1630,6 +1805,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1638,6 +1814,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1651,12 +1828,14 @@ "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1670,6 +1849,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1681,6 +1861,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1697,6 +1878,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1707,13 +1889,15 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -1721,13 +1905,15 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/consola": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", "dev": true, + "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" } @@ -1735,13 +1921,15 @@ "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1755,13 +1943,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -1776,6 +1966,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -1783,12 +1974,14 @@ "node_modules/debug/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -1797,23 +1990,27 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.5.41", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", - "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==" + "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", + "license": "ISC" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/enhanced-resolve": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -1825,7 +2022,8 @@ "node_modules/es-module-lexer": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" }, "node_modules/esbuild": { "version": "0.23.1", @@ -1833,6 +2031,7 @@ "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -1870,6 +2069,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1878,6 +2078,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -1890,6 +2091,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1901,6 +2103,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1909,6 +2112,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1917,6 +2121,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -1925,6 +2130,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -1934,6 +2140,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -1955,17 +2162,20 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1978,6 +2188,7 @@ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -1994,6 +2205,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -2004,13 +2216,15 @@ "node_modules/fs-monkey": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "license": "Unlicense" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2023,6 +2237,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -2032,6 +2247,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2044,6 +2260,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -2063,6 +2280,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2073,13 +2291,15 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -2089,6 +2309,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2102,12 +2323,14 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -2116,6 +2339,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/heap-js/-/heap-js-2.5.0.tgz", "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=10.0.0" } @@ -2125,6 +2349,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } @@ -2133,6 +2358,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", "engines": { "node": ">=10.18" } @@ -2141,6 +2367,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -2151,12 +2378,14 @@ "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "license": "ISC" }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -2168,6 +2397,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2176,6 +2406,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -2184,6 +2415,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2195,6 +2427,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -2204,6 +2437,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -2215,6 +2449,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", "engines": { "node": ">=16" } @@ -2224,6 +2459,7 @@ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -2238,6 +2474,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -2252,6 +2489,7 @@ "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -2259,18 +2497,21 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" }, @@ -2282,13 +2523,15 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/load-tsconfig": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -2297,6 +2540,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", "engines": { "node": ">=6.11.5" } @@ -2304,34 +2548,40 @@ "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "license": "ISC" }, "node_modules/memfs": { "version": "4.14.0", "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.14.0.tgz", "integrity": "sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==", + "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/json-pack": "^1.0.3", "@jsonjoy.com/util": "^1.3.0", @@ -2349,12 +2599,14 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -2363,6 +2615,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -2375,6 +2628,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2383,6 +2637,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2395,6 +2650,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -2403,6 +2659,7 @@ "version": "3.0.0-canary.1", "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", "integrity": "sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==", + "license": "MIT", "engines": { "node": ">=12.13" } @@ -2412,6 +2669,7 @@ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -2421,17 +2679,20 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" }, "node_modules/nodemon": { "version": "2.0.22", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "license": "MIT", "dependencies": { "chokidar": "^3.5.2", "debug": "^3.2.7", @@ -2459,6 +2720,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -2467,6 +2729,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -2478,6 +2741,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2487,6 +2751,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -2499,6 +2764,7 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2508,6 +2774,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -2522,13 +2789,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true + "dev": true, + "license": "BlueOak-1.0.0" }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2538,6 +2807,7 @@ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -2552,12 +2822,14 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -2570,6 +2842,7 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -2589,6 +2862,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "lilconfig": "^3.1.1" }, @@ -2620,6 +2894,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "license": "Apache-2.0", "dependencies": { "protobufjs": "^7.2.5" }, @@ -2632,6 +2907,7 @@ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -2653,12 +2929,14 @@ "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "license": "MIT" }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -2667,6 +2945,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -2675,6 +2954,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -2686,6 +2966,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2695,6 +2976,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2704,6 +2986,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "1.0.6" }, @@ -2738,6 +3021,7 @@ "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } @@ -2759,17 +3043,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -2787,6 +3074,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -2795,6 +3083,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -2804,6 +3093,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2816,6 +3106,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2824,12 +3115,14 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "license": "MIT", "dependencies": { "semver": "~7.0.0" }, @@ -2841,14 +3134,23 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -2857,6 +3159,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -2865,6 +3168,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz", "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==", + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.3", "source-map-js": "^1.0.2" @@ -2884,6 +3188,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -2893,6 +3198,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -2902,6 +3208,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2920,6 +3227,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2934,6 +3242,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2942,13 +3251,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2961,6 +3272,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2977,6 +3289,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2989,6 +3302,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2998,6 +3312,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3007,6 +3322,7 @@ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -3028,6 +3344,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3042,6 +3359,7 @@ "version": "0.2.6", "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.6.tgz", "integrity": "sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==", + "license": "MIT", "dependencies": { "@swc/counter": "^0.1.3" }, @@ -3054,6 +3372,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -3062,6 +3381,7 @@ "version": "5.36.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -3079,6 +3399,7 @@ "version": "5.3.10", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", @@ -3112,6 +3433,7 @@ "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3120,13 +3442,15 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -3136,6 +3460,7 @@ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -3147,6 +3472,7 @@ "version": "1.21.0", "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "license": "Unlicense", "engines": { "node": ">=10.18" }, @@ -3159,6 +3485,7 @@ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.9.tgz", "integrity": "sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==", "dev": true, + "license": "MIT", "dependencies": { "fdir": "^6.4.0", "picomatch": "^4.0.2" @@ -3172,6 +3499,7 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", "dev": true, + "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -3186,6 +3514,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3197,6 +3526,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3208,6 +3538,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "license": "ISC", "bin": { "nodetouch": "bin/nodetouch.js" } @@ -3217,6 +3548,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.0" } @@ -3225,6 +3557,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "license": "Apache-2.0", "engines": { "node": ">=10.0" }, @@ -3241,6 +3574,7 @@ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } @@ -3249,12 +3583,14 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -3296,18 +3632,21 @@ "node_modules/ts-node/node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "license": "MIT" }, "node_modules/tslib": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", - "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "license": "0BSD" }, "node_modules/tsup": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", "dev": true, + "license": "MIT", "dependencies": { "bundle-require": "^5.0.0", "cac": "^6.7.14", @@ -3359,6 +3698,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -3375,13 +3715,15 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tsup/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "whatwg-url": "^7.0.0" }, @@ -3393,6 +3735,7 @@ "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3404,12 +3747,14 @@ "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "license": "MIT" }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" }, "node_modules/unionfs": { "version": "4.5.4", @@ -3437,6 +3782,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.0" @@ -3452,6 +3798,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -3464,6 +3811,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -3471,12 +3819,14 @@ "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "license": "MIT" }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -3489,12 +3839,14 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/webpack": { "version": "5.95.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", @@ -3540,6 +3892,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -3549,6 +3902,7 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, + "license": "MIT", "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -3559,6 +3913,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", "dependencies": { "isexe": "^3.1.1" }, @@ -3574,6 +3929,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3592,6 +3948,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3609,6 +3966,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3618,6 +3976,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3632,13 +3991,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3653,6 +4014,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3664,6 +4026,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -3672,6 +4035,7 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -3689,6 +4053,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -3697,6 +4062,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3704,12 +4070,14 @@ "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3723,6 +4091,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3734,6 +4103,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "license": "MIT", "engines": { "node": ">=6" } diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 3c47c69..8a9fbc5 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -19,18 +19,19 @@ ], "license": "MIT", "dependencies": { - "@restackio/ai": "^0.0.75", - "@temporalio/workflow": "^1.11.2", - "nodemon": "^2.0.22", + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", + "nodemon": "^2.0.22", "ts-node": "^10.9.2", "typescript": "^5.6.2" - }, - "scripts": { + }, + "scripts": { "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", "service": "ts-node src/services.ts", "schedule": "ts-node scheduleWorkflow.ts" - }, - "devDependencies": { + }, + "devDependencies": { + "@clack/prompts": "^0.7.0", "tsup": "8.3.0" } } diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index 768791d..9d24056 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -24,12 +24,23 @@ importers: specifier: ^5.6.2 version: 5.6.3 devDependencies: + '@clack/prompts': + specifier: ^0.7.0 + version: 0.7.0 tsup: specifier: 8.3.0 version: 8.3.0(@swc/core@1.7.36)(typescript@5.6.3) packages: + '@clack/core@0.3.4': + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + + '@clack/prompts@0.7.0': + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + bundledDependencies: + - is-unicode-supported + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1083,6 +1094,9 @@ packages: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} engines: {node: '>=8.10.0'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -1339,6 +1353,17 @@ packages: snapshots: + '@clack/core@0.3.4': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.7.0': + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.1.1 + sisteransi: 1.0.5 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -2283,6 +2308,8 @@ snapshots: dependencies: semver: 7.0.0 + sisteransi@1.0.5: {} + source-map-js@1.2.1: {} source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): From 5f7327d034f7a8231e27863640ebcdd353a5f58d Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Mon, 21 Oct 2024 18:35:09 +0200 Subject: [PATCH 094/122] Wait-on studio Former-commit-id: 8da1ce7bdc6ea0b588086a3615a5cd408ba0609b Former-commit-id: 1a0f75d61d336a64eef87fc0c4af6017ba7db466 --- .github/workflows/npm-publish.yml | 2 +- examples/get-started/bin/get-started.mjs | 149 +++++++++++++++-------- examples/get-started/bin/get-started.ts | 7 +- examples/get-started/package.json | 17 +-- examples/get-started/pnpm-lock.yaml | 124 +++++++++++++++++++ 5 files changed, 238 insertions(+), 61 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 9cfffce..c67f8ac 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -27,7 +27,7 @@ jobs: # Only install dev dependencies, for the binary. No need to install deps for the source code. - name: Install dependencies - # Weird tsup quirck https://github.com/npm/cli/issues/4828#issuecomment-2404560937 + # Weird tsup quirk https://github.com/npm/cli/issues/4828#issuecomment-2404560937 run: pnpm i @rollup/rollup-linux-x64-gnu && pnpm install --dev working-directory: ./examples/get-started diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs index f109c74..2b12542 100755 --- a/examples/get-started/bin/get-started.mjs +++ b/examples/get-started/bin/get-started.mjs @@ -25,9 +25,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); -// ../node_modules/sisteransi/src/index.js +// node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js var require_src = __commonJS({ - "../node_modules/sisteransi/src/index.js"(exports, module) { + "node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports, module) { "use strict"; var ESC = "\x1B"; var CSI = `${ESC}[`; @@ -81,9 +81,9 @@ var require_src = __commonJS({ } }); -// ../node_modules/picocolors/picocolors.js +// node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js var require_picocolors = __commonJS({ - "../node_modules/picocolors/picocolors.js"(exports, module) { + "node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports, module) { var p = process || {}; var argv = p.argv || []; var env = p.env || {}; @@ -102,50 +102,50 @@ var require_picocolors = __commonJS({ return result + string.substring(cursor); }; var createColors = (enabled = isColorSupported) => { - let f = enabled ? formatter : () => String; + let f2 = enabled ? formatter : () => String; return { isColorSupported: enabled, - reset: f("\x1B[0m", "\x1B[0m"), - bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), - dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), - italic: f("\x1B[3m", "\x1B[23m"), - underline: f("\x1B[4m", "\x1B[24m"), - inverse: f("\x1B[7m", "\x1B[27m"), - hidden: f("\x1B[8m", "\x1B[28m"), - strikethrough: f("\x1B[9m", "\x1B[29m"), - black: f("\x1B[30m", "\x1B[39m"), - red: f("\x1B[31m", "\x1B[39m"), - green: f("\x1B[32m", "\x1B[39m"), - yellow: f("\x1B[33m", "\x1B[39m"), - blue: f("\x1B[34m", "\x1B[39m"), - magenta: f("\x1B[35m", "\x1B[39m"), - cyan: f("\x1B[36m", "\x1B[39m"), - white: f("\x1B[37m", "\x1B[39m"), - gray: f("\x1B[90m", "\x1B[39m"), - bgBlack: f("\x1B[40m", "\x1B[49m"), - bgRed: f("\x1B[41m", "\x1B[49m"), - bgGreen: f("\x1B[42m", "\x1B[49m"), - bgYellow: f("\x1B[43m", "\x1B[49m"), - bgBlue: f("\x1B[44m", "\x1B[49m"), - bgMagenta: f("\x1B[45m", "\x1B[49m"), - bgCyan: f("\x1B[46m", "\x1B[49m"), - bgWhite: f("\x1B[47m", "\x1B[49m"), - blackBright: f("\x1B[90m", "\x1B[39m"), - redBright: f("\x1B[91m", "\x1B[39m"), - greenBright: f("\x1B[92m", "\x1B[39m"), - yellowBright: f("\x1B[93m", "\x1B[39m"), - blueBright: f("\x1B[94m", "\x1B[39m"), - magentaBright: f("\x1B[95m", "\x1B[39m"), - cyanBright: f("\x1B[96m", "\x1B[39m"), - whiteBright: f("\x1B[97m", "\x1B[39m"), - bgBlackBright: f("\x1B[100m", "\x1B[49m"), - bgRedBright: f("\x1B[101m", "\x1B[49m"), - bgGreenBright: f("\x1B[102m", "\x1B[49m"), - bgYellowBright: f("\x1B[103m", "\x1B[49m"), - bgBlueBright: f("\x1B[104m", "\x1B[49m"), - bgMagentaBright: f("\x1B[105m", "\x1B[49m"), - bgCyanBright: f("\x1B[106m", "\x1B[49m"), - bgWhiteBright: f("\x1B[107m", "\x1B[49m") + reset: f2("\x1B[0m", "\x1B[0m"), + bold: f2("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), + dim: f2("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), + italic: f2("\x1B[3m", "\x1B[23m"), + underline: f2("\x1B[4m", "\x1B[24m"), + inverse: f2("\x1B[7m", "\x1B[27m"), + hidden: f2("\x1B[8m", "\x1B[28m"), + strikethrough: f2("\x1B[9m", "\x1B[29m"), + black: f2("\x1B[30m", "\x1B[39m"), + red: f2("\x1B[31m", "\x1B[39m"), + green: f2("\x1B[32m", "\x1B[39m"), + yellow: f2("\x1B[33m", "\x1B[39m"), + blue: f2("\x1B[34m", "\x1B[39m"), + magenta: f2("\x1B[35m", "\x1B[39m"), + cyan: f2("\x1B[36m", "\x1B[39m"), + white: f2("\x1B[37m", "\x1B[39m"), + gray: f2("\x1B[90m", "\x1B[39m"), + bgBlack: f2("\x1B[40m", "\x1B[49m"), + bgRed: f2("\x1B[41m", "\x1B[49m"), + bgGreen: f2("\x1B[42m", "\x1B[49m"), + bgYellow: f2("\x1B[43m", "\x1B[49m"), + bgBlue: f2("\x1B[44m", "\x1B[49m"), + bgMagenta: f2("\x1B[45m", "\x1B[49m"), + bgCyan: f2("\x1B[46m", "\x1B[49m"), + bgWhite: f2("\x1B[47m", "\x1B[49m"), + blackBright: f2("\x1B[90m", "\x1B[39m"), + redBright: f2("\x1B[91m", "\x1B[39m"), + greenBright: f2("\x1B[92m", "\x1B[39m"), + yellowBright: f2("\x1B[93m", "\x1B[39m"), + blueBright: f2("\x1B[94m", "\x1B[39m"), + magentaBright: f2("\x1B[95m", "\x1B[39m"), + cyanBright: f2("\x1B[96m", "\x1B[39m"), + whiteBright: f2("\x1B[97m", "\x1B[39m"), + bgBlackBright: f2("\x1B[100m", "\x1B[49m"), + bgRedBright: f2("\x1B[101m", "\x1B[49m"), + bgGreenBright: f2("\x1B[102m", "\x1B[49m"), + bgYellowBright: f2("\x1B[103m", "\x1B[49m"), + bgBlueBright: f2("\x1B[104m", "\x1B[49m"), + bgMagentaBright: f2("\x1B[105m", "\x1B[49m"), + bgCyanBright: f2("\x1B[106m", "\x1B[49m"), + bgWhiteBright: f2("\x1B[107m", "\x1B[49m") }; }; module.exports = createColors(); @@ -153,10 +153,11 @@ var require_picocolors = __commonJS({ } }); -// ../node_modules/@clack/core/dist/index.mjs +// node_modules/.pnpm/@clack+core@0.3.4/node_modules/@clack/core/dist/index.mjs var import_sisteransi = __toESM(require_src(), 1); -import { stdin as $, stdout as k } from "node:process"; var import_picocolors = __toESM(require_picocolors(), 1); +import { stdin as $, stdout as k } from "node:process"; +import * as f from "node:readline"; import _ from "node:readline"; import { WriteStream as U } from "node:tty"; function q({ onlyFirst: t = false } = {}) { @@ -476,8 +477,24 @@ var TD = class extends x { } }; var PD = globalThis.process.platform.startsWith("win"); +function WD({ input: t = $, output: u = k, overwrite: F = true, hideCursor: e2 = true } = {}) { + const s = f.createInterface({ input: t, output: u, prompt: "", tabSize: 1 }); + f.emitKeypressEvents(t, s), t.isTTY && t.setRawMode(true); + const C2 = (D, { name: i }) => { + if (String(D) === "" && process.exit(0), !F) return; + let n = i === "return" ? 0 : -1, E2 = i === "return" ? -1 : 0; + f.moveCursor(u, n, E2, () => { + f.clearLine(u, 1, () => { + t.once("keypress", C2); + }); + }); + }; + return e2 && process.stdout.write(import_sisteransi.cursor.hide), t.once("keypress", C2), () => { + t.off("keypress", C2), e2 && process.stdout.write(import_sisteransi.cursor.show), t.isTTY && !PD && t.setRawMode(false), s.terminal = false, s.close(); + }; +} -// ../node_modules/@clack/prompts/dist/index.mjs +// node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs var import_picocolors2 = __toESM(require_picocolors(), 1); var import_sisteransi2 = __toESM(require_src(), 1); import h from "node:process"; @@ -570,12 +587,37 @@ ${import_picocolors2.default.gray(d2)} ${r2} `); }; +var de = () => { + const r2 = _2 ? ["\u25D2", "\u25D0", "\u25D3", "\u25D1"] : ["\u2022", "o", "O", "0"], n = _2 ? 80 : 120; + let i, t, s = false, c2 = ""; + const l2 = (v2 = "") => { + s = true, i = WD(), c2 = v2.replace(/\.+$/, ""), process.stdout.write(`${import_picocolors2.default.gray(a2)} +`); + let g2 = 0, p = 0; + t = setInterval(() => { + const O2 = import_picocolors2.default.magenta(r2[g2]), P2 = ".".repeat(Math.floor(p)).slice(0, 3); + process.stdout.write(import_sisteransi2.cursor.move(-999, 0)), process.stdout.write(import_sisteransi2.erase.down(1)), process.stdout.write(`${O2} ${c2}${P2}`), g2 = g2 + 1 < r2.length ? g2 + 1 : 0, p = p < r2.length ? p + 0.125 : 0; + }, n); + }, u = (v2 = "", g2 = 0) => { + c2 = v2 ?? c2, s = false, clearInterval(t); + const p = g2 === 0 ? import_picocolors2.default.green(S2) : g2 === 1 ? import_picocolors2.default.red(I2) : import_picocolors2.default.red(x2); + process.stdout.write(import_sisteransi2.cursor.move(-999, 0)), process.stdout.write(import_sisteransi2.erase.down(1)), process.stdout.write(`${p} ${c2} +`), i(); + }, m2 = (v2 = "") => { + c2 = v2 ?? c2; + }, $2 = (v2) => { + const g2 = v2 > 1 ? "Something went wrong" : "Canceled"; + s && u(g2, v2); + }; + return process.on("uncaughtExceptionMonitor", () => $2(2)), process.on("unhandledRejection", () => $2(2)), process.on("SIGINT", () => $2(1)), process.on("SIGTERM", () => $2(1)), process.on("exit", $2), { start: l2, stop: u, message: m2 }; +}; // bin/get-started.ts import fs from "fs"; import { execSync } from "child_process"; import path from "path"; import { fileURLToPath } from "url"; +import waitOn from "wait-on"; // package.json var package_default = { @@ -603,7 +645,8 @@ var package_default = { "@temporalio/workflow": "^1.11.2", nodemon: "^2.0.22", "ts-node": "^10.9.2", - typescript: "^5.6.2" + typescript: "^5.6.2", + "wait-on": "^8.0.1" }, scripts: { "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", @@ -611,6 +654,7 @@ var package_default = { schedule: "ts-node scheduleWorkflow.ts" }, devDependencies: { + "@clack/prompts": "^0.7.0", tsup: "8.3.0" } }; @@ -625,7 +669,6 @@ async function main() { let targetDir; const projectName = await te({ message: "Enter the project folder name:", - placeholder: "./restack-get-started", defaultValue: "restack-get-started", initialValue: "restack-get-started", validate(value) { @@ -665,6 +708,10 @@ async function main() { initialValue: true }); if (openRestack) { + const s = de(); + s.start("Waiting for Restack Engine Studio to start"); + await waitOn({ resources: ["http://localhost:5233"] }); + s.stop(); execSync("open http://localhost:5233", { stdio: "inherit", cwd: targetDir }); } const blue = "\x1B[34m"; diff --git a/examples/get-started/bin/get-started.ts b/examples/get-started/bin/get-started.ts index e7d1dc5..a527855 100644 --- a/examples/get-started/bin/get-started.ts +++ b/examples/get-started/bin/get-started.ts @@ -4,6 +4,8 @@ import fs from 'fs'; import { execSync } from 'child_process'; import path from 'path'; import { fileURLToPath } from 'url'; +import waitOn from 'wait-on'; + // @ts-ignore import packageJson from '../package.json'; @@ -21,7 +23,6 @@ async function main() { // Copy files const projectName = (await clack.text({ message: 'Enter the project folder name:', - placeholder: './restack-get-started', defaultValue: 'restack-get-started', initialValue: 'restack-get-started', validate(value) { @@ -70,6 +71,10 @@ async function main() { })) as boolean; if (openRestack) { + const s = clack.spinner(); + s.start('Waiting for Restack Engine Studio to start'); + await waitOn({ resources: ['http://localhost:5233'] }); + s.stop(); execSync('open http://localhost:5233', { stdio: 'inherit', cwd: targetDir }); } diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 8a9fbc5..dfb1bfa 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -19,18 +19,19 @@ ], "license": "MIT", "dependencies": { - "@restackio/ai": "^0.0.75", - "@temporalio/workflow": "^1.11.2", - "nodemon": "^2.0.22", + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", + "nodemon": "^2.0.22", "ts-node": "^10.9.2", - "typescript": "^5.6.2" - }, - "scripts": { + "typescript": "^5.6.2", + "wait-on": "^8.0.1" + }, + "scripts": { "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", "service": "ts-node src/services.ts", "schedule": "ts-node scheduleWorkflow.ts" - }, - "devDependencies": { + }, + "devDependencies": { "@clack/prompts": "^0.7.0", "tsup": "8.3.0" } diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index 9d24056..59b8331 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: typescript: specifier: ^5.6.2 version: 5.6.3 + wait-on: + specifier: ^8.0.1 + version: 8.0.1 devDependencies: '@clack/prompts': specifier: ^0.7.0 @@ -198,6 +201,12 @@ packages: engines: {node: '>=6'} hasBin: true + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -365,6 +374,15 @@ packages: cpu: [x64] os: [win32] + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@swc/core-darwin-arm64@1.7.36': resolution: {integrity: sha512-8vDczXzCgv3ceTPhEivlpGprN44YlrCK1nbfU9g2TrhV/Aiqi09W/eM5zLesdoM1Z3mJl492gc/8nlTkpDdusw==} engines: {node: '>=10'} @@ -589,6 +607,12 @@ packages: arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -650,6 +674,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -688,6 +716,10 @@ packages: supports-color: optional: true + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -766,10 +798,23 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -865,6 +910,9 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} + joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -896,6 +944,9 @@ packages: lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} @@ -931,6 +982,9 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -1024,6 +1078,9 @@ packages: resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} engines: {node: '>=12.0.0'} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} @@ -1293,6 +1350,11 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + wait-on@8.0.1: + resolution: {integrity: sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==} + engines: {node: '>=12.0.0'} + hasBin: true + watchpack@2.4.2: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} @@ -1452,6 +1514,12 @@ snapshots: protobufjs: 7.4.0 yargs: 17.7.2 + '@hapi/hoek@9.3.0': {} + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -1592,6 +1660,14 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + + '@sideway/formula@3.0.1': {} + + '@sideway/pinpoint@2.0.0': {} + '@swc/core-darwin-arm64@1.7.36': optional: true @@ -1849,6 +1925,16 @@ snapshots: arg@5.0.2: {} + asynckit@0.4.0: {} + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + balanced-match@1.0.2: {} binary-extensions@2.3.0: {} @@ -1912,6 +1998,10 @@ snapshots: color-name@1.1.4: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + commander@2.20.3: {} commander@4.1.1: {} @@ -1938,6 +2028,8 @@ snapshots: dependencies: ms: 2.1.3 + delayed-stream@1.0.0: {} + diff@4.0.2: {} eastasianwidth@0.2.0: {} @@ -2025,11 +2117,19 @@ snapshots: dependencies: to-regex-range: 5.0.1 + follow-redirects@1.15.9: {} + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + fs-monkey@1.0.6: {} fsevents@2.3.3: @@ -2104,6 +2204,14 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + joi@17.13.3: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + joycon@3.1.1: {} json-parse-even-better-errors@2.3.1: {} @@ -2122,6 +2230,8 @@ snapshots: lodash.sortby@4.7.0: {} + lodash@4.17.21: {} + long@5.2.3: {} lru-cache@10.4.3: {} @@ -2153,6 +2263,8 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimist@1.2.8: {} + minipass@7.1.2: {} ms@2.1.3: {} @@ -2234,6 +2346,8 @@ snapshots: '@types/node': 22.7.7 long: 5.2.3 + proxy-from-env@1.1.0: {} + pstree.remy@1.1.8: {} punycode@2.3.1: {} @@ -2506,6 +2620,16 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + wait-on@8.0.1: + dependencies: + axios: 1.7.7 + joi: 17.13.3 + lodash: 4.17.21 + minimist: 1.2.8 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 From 8e5fc3b075556a300e5d7a46603088ebef180266 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 11:25:35 +0200 Subject: [PATCH 095/122] Publish with pnpm Former-commit-id: 0c821cae2ab56d95b797167f28bc452d535b3b40 Former-commit-id: 69214a82cceb7d6ceb0471716fd6755d08b6de5b --- .github/workflows/npm-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index c67f8ac..eb90724 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -36,7 +36,7 @@ jobs: working-directory: ./examples/get-started - name: Publish to npm - run: npm publish --access public + run: pnpm publish --access public working-directory: ./examples/get-started env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From ea7fbf611786e41399b498f323f62257072f9dec Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 11:27:02 +0200 Subject: [PATCH 096/122] Keep up with changes Former-commit-id: 69e3282a3ebe5c357d05a8a1765418a64d6fa822 Former-commit-id: 3f5969c8a025998f61d0d41d2906efe27d7b7a8f --- examples/get-started/bin/get-started.mjs | 12 +- examples/get-started/package-lock.json | 164 ++++++++++++++++++++++- 2 files changed, 169 insertions(+), 7 deletions(-) diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs index 2b12542..e148d21 100755 --- a/examples/get-started/bin/get-started.mjs +++ b/examples/get-started/bin/get-started.mjs @@ -25,9 +25,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); -// node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js +// node_modules/sisteransi/src/index.js var require_src = __commonJS({ - "node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports, module) { + "node_modules/sisteransi/src/index.js"(exports, module) { "use strict"; var ESC = "\x1B"; var CSI = `${ESC}[`; @@ -81,9 +81,9 @@ var require_src = __commonJS({ } }); -// node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js +// node_modules/picocolors/picocolors.js var require_picocolors = __commonJS({ - "node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports, module) { + "node_modules/picocolors/picocolors.js"(exports, module) { var p = process || {}; var argv = p.argv || []; var env = p.env || {}; @@ -153,7 +153,7 @@ var require_picocolors = __commonJS({ } }); -// node_modules/.pnpm/@clack+core@0.3.4/node_modules/@clack/core/dist/index.mjs +// node_modules/@clack/core/dist/index.mjs var import_sisteransi = __toESM(require_src(), 1); var import_picocolors = __toESM(require_picocolors(), 1); import { stdin as $, stdout as k } from "node:process"; @@ -494,7 +494,7 @@ function WD({ input: t = $, output: u = k, overwrite: F = true, hideCursor: e2 = }; } -// node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs +// node_modules/@clack/prompts/dist/index.mjs var import_picocolors2 = __toESM(require_picocolors(), 1); var import_sisteransi2 = __toESM(require_src(), 1); import h from "node:process"; diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index 146bc6d..448b286 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -13,7 +13,8 @@ "@temporalio/workflow": "^1.11.2", "nodemon": "^2.0.22", "ts-node": "^10.9.2", - "typescript": "^5.6.2" + "typescript": "^5.6.2", + "wait-on": "^8.0.1" }, "bin": { "get-started": "bin/get-started.mjs" @@ -513,6 +514,21 @@ "node": ">=6" } }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -986,6 +1002,27 @@ "win32" ] }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, "node_modules/@swc/core": { "version": "1.7.36", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.36.tgz", @@ -1621,6 +1658,23 @@ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "license": "MIT" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1892,6 +1946,18 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -1977,6 +2043,15 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -2183,6 +2258,26 @@ "node": ">=8" } }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -2213,6 +2308,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs-monkey": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", @@ -2484,6 +2593,19 @@ "node": ">= 10.13.0" } }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, "node_modules/joycon": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", @@ -2545,6 +2667,12 @@ "node": ">=6.11.5" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", @@ -2645,6 +2773,15 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -2926,6 +3063,12 @@ "node": ">=12.0.0" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -3822,6 +3965,25 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "license": "MIT" }, + "node_modules/wait-on": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.1.tgz", + "integrity": "sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==", + "license": "MIT", + "dependencies": { + "axios": "^1.7.7", + "joi": "^17.13.3", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.1" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", From ddc05152807b97b4b6b68a546bd294d89dd66dca Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 11:31:16 +0200 Subject: [PATCH 097/122] Debug Former-commit-id: 8e88dd307db79eaa6879daf14526657ddb10f9ad Former-commit-id: 3a584ac5a7d7e0735298e4a402a21b9341a4fdc5 --- .github/workflows/npm-publish.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index eb90724..385e4d5 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -34,7 +34,10 @@ jobs: - name: Build binary run: pnpm run build-bin working-directory: ./examples/get-started - + - name: Run git diff + run: git diff + working-directory: ./examples/get-started + - name: Publish to npm run: pnpm publish --access public working-directory: ./examples/get-started From ab8c5d76d8a23757185fe502dd2322b852caa4c5 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 11:35:03 +0200 Subject: [PATCH 098/122] Cleanup Former-commit-id: 72307afdc6c69af100eb611eb8f79be1cdd82b0f Former-commit-id: 584c3c5f4d8701f258917ed9958473c61ee24dff --- .github/workflows/npm-publish.yml | 3 ++- examples/get-started/bin/get-started.mjs | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 385e4d5..82411d7 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -39,7 +39,8 @@ jobs: working-directory: ./examples/get-started - name: Publish to npm - run: pnpm publish --access public + # --no-git-checks is needed because "rollup-linux-x64-gnu" is out sync + run: pnpm publish --access public --no-git-checks working-directory: ./examples/get-started env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs index e148d21..2b12542 100755 --- a/examples/get-started/bin/get-started.mjs +++ b/examples/get-started/bin/get-started.mjs @@ -25,9 +25,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge mod )); -// node_modules/sisteransi/src/index.js +// node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js var require_src = __commonJS({ - "node_modules/sisteransi/src/index.js"(exports, module) { + "node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports, module) { "use strict"; var ESC = "\x1B"; var CSI = `${ESC}[`; @@ -81,9 +81,9 @@ var require_src = __commonJS({ } }); -// node_modules/picocolors/picocolors.js +// node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js var require_picocolors = __commonJS({ - "node_modules/picocolors/picocolors.js"(exports, module) { + "node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports, module) { var p = process || {}; var argv = p.argv || []; var env = p.env || {}; @@ -153,7 +153,7 @@ var require_picocolors = __commonJS({ } }); -// node_modules/@clack/core/dist/index.mjs +// node_modules/.pnpm/@clack+core@0.3.4/node_modules/@clack/core/dist/index.mjs var import_sisteransi = __toESM(require_src(), 1); var import_picocolors = __toESM(require_picocolors(), 1); import { stdin as $, stdout as k } from "node:process"; @@ -494,7 +494,7 @@ function WD({ input: t = $, output: u = k, overwrite: F = true, hideCursor: e2 = }; } -// node_modules/@clack/prompts/dist/index.mjs +// node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs var import_picocolors2 = __toESM(require_picocolors(), 1); var import_sisteransi2 = __toESM(require_src(), 1); import h from "node:process"; From 24a25e4958dd5df0a5975391b2b0afacaf366bc6 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 11:41:08 +0200 Subject: [PATCH 099/122] Comply with spec Former-commit-id: 3928ebe23385568228e38b71f0daf0b4a63f07a4 Former-commit-id: 650b1e505ecb01d294f9c43951158875e4b192b2 --- .github/workflows/npm-publish.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 82411d7..455bd22 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -24,6 +24,7 @@ jobs: - uses: actions/setup-node@v2 with: node-version: 20 + registry-url: 'https://registry.npmjs.org' # Only install dev dependencies, for the binary. No need to install deps for the source code. - name: Install dependencies @@ -34,9 +35,6 @@ jobs: - name: Build binary run: pnpm run build-bin working-directory: ./examples/get-started - - name: Run git diff - run: git diff - working-directory: ./examples/get-started - name: Publish to npm # --no-git-checks is needed because "rollup-linux-x64-gnu" is out sync From 9403346703c889faf9a381e57f92aee4a74b6aae Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 11:45:35 +0200 Subject: [PATCH 100/122] Get stared: version Former-commit-id: ef9f1b548ffc0a835d90c15fdc6181a86a928ed2 Former-commit-id: 8896f0e9f7b4c64b11e901f6eddace5618b7a096 --- examples/get-started/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/get-started/package.json b/examples/get-started/package.json index dfb1bfa..62d4541 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.4", + "version": "1.0.5", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" From f35038d9db097470b7e065a38905530c6eb3d902 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 12:41:22 +0200 Subject: [PATCH 101/122] Tsup to esbuild Former-commit-id: 11a08db3404de91200f2ff0a73f3eb9a0eff27f2 Former-commit-id: 82dddaaf6e4ced47a9b50874c6edecffde692006 --- .github/workflows/npm-publish.yml | 2 +- examples/get-started/bin/get-started.mjs | 682 +--------- examples/get-started/bin/get-started.ts | 12 +- examples/get-started/package-lock.json | 1468 ++-------------------- examples/get-started/package.json | 9 +- examples/get-started/pnpm-lock.yaml | 916 ++------------ 6 files changed, 244 insertions(+), 2845 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 455bd22..84b1bf7 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -29,7 +29,7 @@ jobs: # Only install dev dependencies, for the binary. No need to install deps for the source code. - name: Install dependencies # Weird tsup quirk https://github.com/npm/cli/issues/4828#issuecomment-2404560937 - run: pnpm i @rollup/rollup-linux-x64-gnu && pnpm install --dev + run: pnpm install --dev working-directory: ./examples/get-started - name: Build binary diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs index 2b12542..ca57599 100755 --- a/examples/get-started/bin/get-started.mjs +++ b/examples/get-started/bin/get-started.mjs @@ -1,673 +1,18 @@ #!/usr/bin/env node -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); - -// node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js -var require_src = __commonJS({ - "node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports, module) { - "use strict"; - var ESC = "\x1B"; - var CSI = `${ESC}[`; - var beep = "\x07"; - var cursor = { - to(x3, y3) { - if (!y3) return `${CSI}${x3 + 1}G`; - return `${CSI}${y3 + 1};${x3 + 1}H`; - }, - move(x3, y3) { - let ret = ""; - if (x3 < 0) ret += `${CSI}${-x3}D`; - else if (x3 > 0) ret += `${CSI}${x3}C`; - if (y3 < 0) ret += `${CSI}${-y3}A`; - else if (y3 > 0) ret += `${CSI}${y3}B`; - return ret; - }, - up: (count = 1) => `${CSI}${count}A`, - down: (count = 1) => `${CSI}${count}B`, - forward: (count = 1) => `${CSI}${count}C`, - backward: (count = 1) => `${CSI}${count}D`, - nextLine: (count = 1) => `${CSI}E`.repeat(count), - prevLine: (count = 1) => `${CSI}F`.repeat(count), - left: `${CSI}G`, - hide: `${CSI}?25l`, - show: `${CSI}?25h`, - save: `${ESC}7`, - restore: `${ESC}8` - }; - var scroll = { - up: (count = 1) => `${CSI}S`.repeat(count), - down: (count = 1) => `${CSI}T`.repeat(count) - }; - var erase = { - screen: `${CSI}2J`, - up: (count = 1) => `${CSI}1J`.repeat(count), - down: (count = 1) => `${CSI}J`.repeat(count), - line: `${CSI}2K`, - lineEnd: `${CSI}K`, - lineStart: `${CSI}1K`, - lines(count) { - let clear = ""; - for (let i = 0; i < count; i++) - clear += this.line + (i < count - 1 ? cursor.up() : ""); - if (count) - clear += cursor.left; - return clear; - } - }; - module.exports = { cursor, scroll, erase, beep }; - } -}); - -// node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js -var require_picocolors = __commonJS({ - "node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports, module) { - var p = process || {}; - var argv = p.argv || []; - var env = p.env || {}; - var isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI); - var formatter = (open, close, replace = open) => (input) => { - let string = "" + input, index = string.indexOf(close, open.length); - return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; - }; - var replaceClose = (string, close, replace, index) => { - let result = "", cursor = 0; - do { - result += string.substring(cursor, index) + replace; - cursor = index + close.length; - index = string.indexOf(close, cursor); - } while (~index); - return result + string.substring(cursor); - }; - var createColors = (enabled = isColorSupported) => { - let f2 = enabled ? formatter : () => String; - return { - isColorSupported: enabled, - reset: f2("\x1B[0m", "\x1B[0m"), - bold: f2("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), - dim: f2("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), - italic: f2("\x1B[3m", "\x1B[23m"), - underline: f2("\x1B[4m", "\x1B[24m"), - inverse: f2("\x1B[7m", "\x1B[27m"), - hidden: f2("\x1B[8m", "\x1B[28m"), - strikethrough: f2("\x1B[9m", "\x1B[29m"), - black: f2("\x1B[30m", "\x1B[39m"), - red: f2("\x1B[31m", "\x1B[39m"), - green: f2("\x1B[32m", "\x1B[39m"), - yellow: f2("\x1B[33m", "\x1B[39m"), - blue: f2("\x1B[34m", "\x1B[39m"), - magenta: f2("\x1B[35m", "\x1B[39m"), - cyan: f2("\x1B[36m", "\x1B[39m"), - white: f2("\x1B[37m", "\x1B[39m"), - gray: f2("\x1B[90m", "\x1B[39m"), - bgBlack: f2("\x1B[40m", "\x1B[49m"), - bgRed: f2("\x1B[41m", "\x1B[49m"), - bgGreen: f2("\x1B[42m", "\x1B[49m"), - bgYellow: f2("\x1B[43m", "\x1B[49m"), - bgBlue: f2("\x1B[44m", "\x1B[49m"), - bgMagenta: f2("\x1B[45m", "\x1B[49m"), - bgCyan: f2("\x1B[46m", "\x1B[49m"), - bgWhite: f2("\x1B[47m", "\x1B[49m"), - blackBright: f2("\x1B[90m", "\x1B[39m"), - redBright: f2("\x1B[91m", "\x1B[39m"), - greenBright: f2("\x1B[92m", "\x1B[39m"), - yellowBright: f2("\x1B[93m", "\x1B[39m"), - blueBright: f2("\x1B[94m", "\x1B[39m"), - magentaBright: f2("\x1B[95m", "\x1B[39m"), - cyanBright: f2("\x1B[96m", "\x1B[39m"), - whiteBright: f2("\x1B[97m", "\x1B[39m"), - bgBlackBright: f2("\x1B[100m", "\x1B[49m"), - bgRedBright: f2("\x1B[101m", "\x1B[49m"), - bgGreenBright: f2("\x1B[102m", "\x1B[49m"), - bgYellowBright: f2("\x1B[103m", "\x1B[49m"), - bgBlueBright: f2("\x1B[104m", "\x1B[49m"), - bgMagentaBright: f2("\x1B[105m", "\x1B[49m"), - bgCyanBright: f2("\x1B[106m", "\x1B[49m"), - bgWhiteBright: f2("\x1B[107m", "\x1B[49m") - }; - }; - module.exports = createColors(); - module.exports.createColors = createColors; - } -}); - -// node_modules/.pnpm/@clack+core@0.3.4/node_modules/@clack/core/dist/index.mjs -var import_sisteransi = __toESM(require_src(), 1); -var import_picocolors = __toESM(require_picocolors(), 1); -import { stdin as $, stdout as k } from "node:process"; -import * as f from "node:readline"; -import _ from "node:readline"; -import { WriteStream as U } from "node:tty"; -function q({ onlyFirst: t = false } = {}) { - const u = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"); - return new RegExp(u, t ? void 0 : "g"); -} -function S(t) { - if (typeof t != "string") throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``); - return t.replace(q(), ""); -} -function j(t) { - return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; -} -var M = { exports: {} }; -(function(t) { - var u = {}; - t.exports = u, u.eastAsianWidth = function(e2) { - var s = e2.charCodeAt(0), C2 = e2.length == 2 ? e2.charCodeAt(1) : 0, D = s; - return 55296 <= s && s <= 56319 && 56320 <= C2 && C2 <= 57343 && (s &= 1023, C2 &= 1023, D = s << 10 | C2, D += 65536), D == 12288 || 65281 <= D && D <= 65376 || 65504 <= D && D <= 65510 ? "F" : D == 8361 || 65377 <= D && D <= 65470 || 65474 <= D && D <= 65479 || 65482 <= D && D <= 65487 || 65490 <= D && D <= 65495 || 65498 <= D && D <= 65500 || 65512 <= D && D <= 65518 ? "H" : 4352 <= D && D <= 4447 || 4515 <= D && D <= 4519 || 4602 <= D && D <= 4607 || 9001 <= D && D <= 9002 || 11904 <= D && D <= 11929 || 11931 <= D && D <= 12019 || 12032 <= D && D <= 12245 || 12272 <= D && D <= 12283 || 12289 <= D && D <= 12350 || 12353 <= D && D <= 12438 || 12441 <= D && D <= 12543 || 12549 <= D && D <= 12589 || 12593 <= D && D <= 12686 || 12688 <= D && D <= 12730 || 12736 <= D && D <= 12771 || 12784 <= D && D <= 12830 || 12832 <= D && D <= 12871 || 12880 <= D && D <= 13054 || 13056 <= D && D <= 19903 || 19968 <= D && D <= 42124 || 42128 <= D && D <= 42182 || 43360 <= D && D <= 43388 || 44032 <= D && D <= 55203 || 55216 <= D && D <= 55238 || 55243 <= D && D <= 55291 || 63744 <= D && D <= 64255 || 65040 <= D && D <= 65049 || 65072 <= D && D <= 65106 || 65108 <= D && D <= 65126 || 65128 <= D && D <= 65131 || 110592 <= D && D <= 110593 || 127488 <= D && D <= 127490 || 127504 <= D && D <= 127546 || 127552 <= D && D <= 127560 || 127568 <= D && D <= 127569 || 131072 <= D && D <= 194367 || 177984 <= D && D <= 196605 || 196608 <= D && D <= 262141 ? "W" : 32 <= D && D <= 126 || 162 <= D && D <= 163 || 165 <= D && D <= 166 || D == 172 || D == 175 || 10214 <= D && D <= 10221 || 10629 <= D && D <= 10630 ? "Na" : D == 161 || D == 164 || 167 <= D && D <= 168 || D == 170 || 173 <= D && D <= 174 || 176 <= D && D <= 180 || 182 <= D && D <= 186 || 188 <= D && D <= 191 || D == 198 || D == 208 || 215 <= D && D <= 216 || 222 <= D && D <= 225 || D == 230 || 232 <= D && D <= 234 || 236 <= D && D <= 237 || D == 240 || 242 <= D && D <= 243 || 247 <= D && D <= 250 || D == 252 || D == 254 || D == 257 || D == 273 || D == 275 || D == 283 || 294 <= D && D <= 295 || D == 299 || 305 <= D && D <= 307 || D == 312 || 319 <= D && D <= 322 || D == 324 || 328 <= D && D <= 331 || D == 333 || 338 <= D && D <= 339 || 358 <= D && D <= 359 || D == 363 || D == 462 || D == 464 || D == 466 || D == 468 || D == 470 || D == 472 || D == 474 || D == 476 || D == 593 || D == 609 || D == 708 || D == 711 || 713 <= D && D <= 715 || D == 717 || D == 720 || 728 <= D && D <= 731 || D == 733 || D == 735 || 768 <= D && D <= 879 || 913 <= D && D <= 929 || 931 <= D && D <= 937 || 945 <= D && D <= 961 || 963 <= D && D <= 969 || D == 1025 || 1040 <= D && D <= 1103 || D == 1105 || D == 8208 || 8211 <= D && D <= 8214 || 8216 <= D && D <= 8217 || 8220 <= D && D <= 8221 || 8224 <= D && D <= 8226 || 8228 <= D && D <= 8231 || D == 8240 || 8242 <= D && D <= 8243 || D == 8245 || D == 8251 || D == 8254 || D == 8308 || D == 8319 || 8321 <= D && D <= 8324 || D == 8364 || D == 8451 || D == 8453 || D == 8457 || D == 8467 || D == 8470 || 8481 <= D && D <= 8482 || D == 8486 || D == 8491 || 8531 <= D && D <= 8532 || 8539 <= D && D <= 8542 || 8544 <= D && D <= 8555 || 8560 <= D && D <= 8569 || D == 8585 || 8592 <= D && D <= 8601 || 8632 <= D && D <= 8633 || D == 8658 || D == 8660 || D == 8679 || D == 8704 || 8706 <= D && D <= 8707 || 8711 <= D && D <= 8712 || D == 8715 || D == 8719 || D == 8721 || D == 8725 || D == 8730 || 8733 <= D && D <= 8736 || D == 8739 || D == 8741 || 8743 <= D && D <= 8748 || D == 8750 || 8756 <= D && D <= 8759 || 8764 <= D && D <= 8765 || D == 8776 || D == 8780 || D == 8786 || 8800 <= D && D <= 8801 || 8804 <= D && D <= 8807 || 8810 <= D && D <= 8811 || 8814 <= D && D <= 8815 || 8834 <= D && D <= 8835 || 8838 <= D && D <= 8839 || D == 8853 || D == 8857 || D == 8869 || D == 8895 || D == 8978 || 9312 <= D && D <= 9449 || 9451 <= D && D <= 9547 || 9552 <= D && D <= 9587 || 9600 <= D && D <= 9615 || 9618 <= D && D <= 9621 || 9632 <= D && D <= 9633 || 9635 <= D && D <= 9641 || 9650 <= D && D <= 9651 || 9654 <= D && D <= 9655 || 9660 <= D && D <= 9661 || 9664 <= D && D <= 9665 || 9670 <= D && D <= 9672 || D == 9675 || 9678 <= D && D <= 9681 || 9698 <= D && D <= 9701 || D == 9711 || 9733 <= D && D <= 9734 || D == 9737 || 9742 <= D && D <= 9743 || 9748 <= D && D <= 9749 || D == 9756 || D == 9758 || D == 9792 || D == 9794 || 9824 <= D && D <= 9825 || 9827 <= D && D <= 9829 || 9831 <= D && D <= 9834 || 9836 <= D && D <= 9837 || D == 9839 || 9886 <= D && D <= 9887 || 9918 <= D && D <= 9919 || 9924 <= D && D <= 9933 || 9935 <= D && D <= 9953 || D == 9955 || 9960 <= D && D <= 9983 || D == 10045 || D == 10071 || 10102 <= D && D <= 10111 || 11093 <= D && D <= 11097 || 12872 <= D && D <= 12879 || 57344 <= D && D <= 63743 || 65024 <= D && D <= 65039 || D == 65533 || 127232 <= D && D <= 127242 || 127248 <= D && D <= 127277 || 127280 <= D && D <= 127337 || 127344 <= D && D <= 127386 || 917760 <= D && D <= 917999 || 983040 <= D && D <= 1048573 || 1048576 <= D && D <= 1114109 ? "A" : "N"; - }, u.characterLength = function(e2) { - var s = this.eastAsianWidth(e2); - return s == "F" || s == "W" || s == "A" ? 2 : 1; - }; - function F(e2) { - return e2.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; - } - u.length = function(e2) { - for (var s = F(e2), C2 = 0, D = 0; D < s.length; D++) C2 = C2 + this.characterLength(s[D]); - return C2; - }, u.slice = function(e2, s, C2) { - textLen = u.length(e2), s = s || 0, C2 = C2 || 1, s < 0 && (s = textLen + s), C2 < 0 && (C2 = textLen + C2); - for (var D = "", i = 0, n = F(e2), E2 = 0; E2 < n.length; E2++) { - var h2 = n[E2], o2 = u.length(h2); - if (i >= s - (o2 == 2 ? 1 : 0)) if (i + o2 <= C2) D += h2; - else break; - i += o2; - } - return D; - }; -})(M); -var J = M.exports; -var Q = j(J); -var X = function() { - return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; -}; -var DD = j(X); -function A(t, u = {}) { - if (typeof t != "string" || t.length === 0 || (u = { ambiguousIsNarrow: true, ...u }, t = S(t), t.length === 0)) return 0; - t = t.replace(DD(), " "); - const F = u.ambiguousIsNarrow ? 1 : 2; - let e2 = 0; - for (const s of t) { - const C2 = s.codePointAt(0); - if (C2 <= 31 || C2 >= 127 && C2 <= 159 || C2 >= 768 && C2 <= 879) continue; - switch (Q.eastAsianWidth(s)) { - case "F": - case "W": - e2 += 2; - break; - case "A": - e2 += F; - break; - default: - e2 += 1; - } - } - return e2; -} -var m = 10; -var T = (t = 0) => (u) => `\x1B[${u + t}m`; -var P = (t = 0) => (u) => `\x1B[${38 + t};5;${u}m`; -var W = (t = 0) => (u, F, e2) => `\x1B[${38 + t};2;${u};${F};${e2}m`; -var r = { modifier: { reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], overline: [53, 55], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], blackBright: [90, 39], gray: [90, 39], grey: [90, 39], redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], bgBlackBright: [100, 49], bgGray: [100, 49], bgGrey: [100, 49], bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; -Object.keys(r.modifier); -var uD = Object.keys(r.color); -var FD = Object.keys(r.bgColor); -[...uD, ...FD]; -function tD() { - const t = /* @__PURE__ */ new Map(); - for (const [u, F] of Object.entries(r)) { - for (const [e2, s] of Object.entries(F)) r[e2] = { open: `\x1B[${s[0]}m`, close: `\x1B[${s[1]}m` }, F[e2] = r[e2], t.set(s[0], s[1]); - Object.defineProperty(r, u, { value: F, enumerable: false }); - } - return Object.defineProperty(r, "codes", { value: t, enumerable: false }), r.color.close = "\x1B[39m", r.bgColor.close = "\x1B[49m", r.color.ansi = T(), r.color.ansi256 = P(), r.color.ansi16m = W(), r.bgColor.ansi = T(m), r.bgColor.ansi256 = P(m), r.bgColor.ansi16m = W(m), Object.defineProperties(r, { rgbToAnsi256: { value: (u, F, e2) => u === F && F === e2 ? u < 8 ? 16 : u > 248 ? 231 : Math.round((u - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(u / 255 * 5) + 6 * Math.round(F / 255 * 5) + Math.round(e2 / 255 * 5), enumerable: false }, hexToRgb: { value: (u) => { - const F = /[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16)); - if (!F) return [0, 0, 0]; - let [e2] = F; - e2.length === 3 && (e2 = [...e2].map((C2) => C2 + C2).join("")); - const s = Number.parseInt(e2, 16); - return [s >> 16 & 255, s >> 8 & 255, s & 255]; - }, enumerable: false }, hexToAnsi256: { value: (u) => r.rgbToAnsi256(...r.hexToRgb(u)), enumerable: false }, ansi256ToAnsi: { value: (u) => { - if (u < 8) return 30 + u; - if (u < 16) return 90 + (u - 8); - let F, e2, s; - if (u >= 232) F = ((u - 232) * 10 + 8) / 255, e2 = F, s = F; - else { - u -= 16; - const i = u % 36; - F = Math.floor(u / 36) / 5, e2 = Math.floor(i / 6) / 5, s = i % 6 / 5; - } - const C2 = Math.max(F, e2, s) * 2; - if (C2 === 0) return 30; - let D = 30 + (Math.round(s) << 2 | Math.round(e2) << 1 | Math.round(F)); - return C2 === 2 && (D += 60), D; - }, enumerable: false }, rgbToAnsi: { value: (u, F, e2) => r.ansi256ToAnsi(r.rgbToAnsi256(u, F, e2)), enumerable: false }, hexToAnsi: { value: (u) => r.ansi256ToAnsi(r.hexToAnsi256(u)), enumerable: false } }), r; -} -var eD = tD(); -var g = /* @__PURE__ */ new Set(["\x1B", "\x9B"]); -var sD = 39; -var b = "\x07"; -var O = "["; -var CD = "]"; -var I = "m"; -var w = `${CD}8;;`; -var N = (t) => `${g.values().next().value}${O}${t}${I}`; -var L = (t) => `${g.values().next().value}${w}${t}${b}`; -var iD = (t) => t.split(" ").map((u) => A(u)); -var y = (t, u, F) => { - const e2 = [...u]; - let s = false, C2 = false, D = A(S(t[t.length - 1])); - for (const [i, n] of e2.entries()) { - const E2 = A(n); - if (D + E2 <= F ? t[t.length - 1] += n : (t.push(n), D = 0), g.has(n) && (s = true, C2 = e2.slice(i + 1).join("").startsWith(w)), s) { - C2 ? n === b && (s = false, C2 = false) : n === I && (s = false); - continue; - } - D += E2, D === F && i < e2.length - 1 && (t.push(""), D = 0); - } - !D && t[t.length - 1].length > 0 && t.length > 1 && (t[t.length - 2] += t.pop()); -}; -var rD = (t) => { - const u = t.split(" "); - let F = u.length; - for (; F > 0 && !(A(u[F - 1]) > 0); ) F--; - return F === u.length ? t : u.slice(0, F).join(" ") + u.slice(F).join(""); -}; -var ED = (t, u, F = {}) => { - if (F.trim !== false && t.trim() === "") return ""; - let e2 = "", s, C2; - const D = iD(t); - let i = [""]; - for (const [E2, h2] of t.split(" ").entries()) { - F.trim !== false && (i[i.length - 1] = i[i.length - 1].trimStart()); - let o2 = A(i[i.length - 1]); - if (E2 !== 0 && (o2 >= u && (F.wordWrap === false || F.trim === false) && (i.push(""), o2 = 0), (o2 > 0 || F.trim === false) && (i[i.length - 1] += " ", o2++)), F.hard && D[E2] > u) { - const B2 = u - o2, p = 1 + Math.floor((D[E2] - B2 - 1) / u); - Math.floor((D[E2] - 1) / u) < p && i.push(""), y(i, h2, u); - continue; - } - if (o2 + D[E2] > u && o2 > 0 && D[E2] > 0) { - if (F.wordWrap === false && o2 < u) { - y(i, h2, u); - continue; - } - i.push(""); - } - if (o2 + D[E2] > u && F.wordWrap === false) { - y(i, h2, u); - continue; - } - i[i.length - 1] += h2; - } - F.trim !== false && (i = i.map((E2) => rD(E2))); - const n = [...i.join(` -`)]; - for (const [E2, h2] of n.entries()) { - if (e2 += h2, g.has(h2)) { - const { groups: B2 } = new RegExp(`(?:\\${O}(?\\d+)m|\\${w}(?.*)${b})`).exec(n.slice(E2).join("")) || { groups: {} }; - if (B2.code !== void 0) { - const p = Number.parseFloat(B2.code); - s = p === sD ? void 0 : p; - } else B2.uri !== void 0 && (C2 = B2.uri.length === 0 ? void 0 : B2.uri); - } - const o2 = eD.codes.get(Number(s)); - n[E2 + 1] === ` -` ? (C2 && (e2 += L("")), s && o2 && (e2 += N(o2))) : h2 === ` -` && (s && o2 && (e2 += N(s)), C2 && (e2 += L(C2))); - } - return e2; -}; -function R(t, u, F) { - return String(t).normalize().replace(/\r\n/g, ` -`).split(` -`).map((e2) => ED(e2, u, F)).join(` -`); -} -var oD = Object.defineProperty; -var nD = (t, u, F) => u in t ? oD(t, u, { enumerable: true, configurable: true, writable: true, value: F }) : t[u] = F; -var a = (t, u, F) => (nD(t, typeof u != "symbol" ? u + "" : u, F), F); -function aD(t, u) { - if (t === u) return; - const F = t.split(` -`), e2 = u.split(` -`), s = []; - for (let C2 = 0; C2 < Math.max(F.length, e2.length); C2++) F[C2] !== e2[C2] && s.push(C2); - return s; -} -var V = Symbol("clack:cancel"); -function v(t, u) { - t.isTTY && t.setRawMode(u); -} -var z = /* @__PURE__ */ new Map([["k", "up"], ["j", "down"], ["h", "left"], ["l", "right"]]); -var lD = /* @__PURE__ */ new Set(["up", "down", "left", "right", "space", "enter"]); -var x = class { - constructor({ render: u, input: F = $, output: e2 = k, ...s }, C2 = true) { - a(this, "input"), a(this, "output"), a(this, "rl"), a(this, "opts"), a(this, "_track", false), a(this, "_render"), a(this, "_cursor", 0), a(this, "state", "initial"), a(this, "value"), a(this, "error", ""), a(this, "subscribers", /* @__PURE__ */ new Map()), a(this, "_prevFrame", ""), this.opts = s, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = u.bind(this), this._track = C2, this.input = F, this.output = e2; - } - prompt() { - const u = new U(0); - return u._write = (F, e2, s) => { - this._track && (this.value = this.rl.line.replace(/\t/g, ""), this._cursor = this.rl.cursor, this.emit("value", this.value)), s(); - }, this.input.pipe(u), this.rl = _.createInterface({ input: this.input, output: u, tabSize: 2, prompt: "", escapeCodeTimeout: 50 }), _.emitKeypressEvents(this.input, this.rl), this.rl.prompt(), this.opts.initialValue !== void 0 && this._track && this.rl.write(this.opts.initialValue), this.input.on("keypress", this.onKeypress), v(this.input, true), this.output.on("resize", this.render), this.render(), new Promise((F, e2) => { - this.once("submit", () => { - this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), v(this.input, false), F(this.value); - }), this.once("cancel", () => { - this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), v(this.input, false), F(V); - }); - }); - } - on(u, F) { - const e2 = this.subscribers.get(u) ?? []; - e2.push({ cb: F }), this.subscribers.set(u, e2); - } - once(u, F) { - const e2 = this.subscribers.get(u) ?? []; - e2.push({ cb: F, once: true }), this.subscribers.set(u, e2); - } - emit(u, ...F) { - const e2 = this.subscribers.get(u) ?? [], s = []; - for (const C2 of e2) C2.cb(...F), C2.once && s.push(() => e2.splice(e2.indexOf(C2), 1)); - for (const C2 of s) C2(); - } - unsubscribe() { - this.subscribers.clear(); - } - onKeypress(u, F) { - if (this.state === "error" && (this.state = "active"), F?.name && !this._track && z.has(F.name) && this.emit("cursor", z.get(F.name)), F?.name && lD.has(F.name) && this.emit("cursor", F.name), u && (u.toLowerCase() === "y" || u.toLowerCase() === "n") && this.emit("confirm", u.toLowerCase() === "y"), u === " " && this.opts.placeholder && (this.value || (this.rl.write(this.opts.placeholder), this.emit("value", this.opts.placeholder))), u && this.emit("key", u.toLowerCase()), F?.name === "return") { - if (this.opts.validate) { - const e2 = this.opts.validate(this.value); - e2 && (this.error = e2, this.state = "error", this.rl.write(this.value)); - } - this.state !== "error" && (this.state = "submit"); - } - u === "" && (this.state = "cancel"), (this.state === "submit" || this.state === "cancel") && this.emit("finalize"), this.render(), (this.state === "submit" || this.state === "cancel") && this.close(); - } - close() { - this.input.unpipe(), this.input.removeListener("keypress", this.onKeypress), this.output.write(` -`), v(this.input, false), this.rl.close(), this.emit(`${this.state}`, this.value), this.unsubscribe(); - } - restoreCursor() { - const u = R(this._prevFrame, process.stdout.columns, { hard: true }).split(` -`).length - 1; - this.output.write(import_sisteransi.cursor.move(-999, u * -1)); - } - render() { - const u = R(this._render(this) ?? "", process.stdout.columns, { hard: true }); - if (u !== this._prevFrame) { - if (this.state === "initial") this.output.write(import_sisteransi.cursor.hide); - else { - const F = aD(this._prevFrame, u); - if (this.restoreCursor(), F && F?.length === 1) { - const e2 = F[0]; - this.output.write(import_sisteransi.cursor.move(0, e2)), this.output.write(import_sisteransi.erase.lines(1)); - const s = u.split(` -`); - this.output.write(s[e2]), this._prevFrame = u, this.output.write(import_sisteransi.cursor.move(0, s.length - e2 - 1)); - return; - } else if (F && F?.length > 1) { - const e2 = F[0]; - this.output.write(import_sisteransi.cursor.move(0, e2)), this.output.write(import_sisteransi.erase.down()); - const s = u.split(` -`).slice(e2); - this.output.write(s.join(` -`)), this._prevFrame = u; - return; - } - this.output.write(import_sisteransi.erase.down()); - } - this.output.write(u), this.state === "initial" && (this.state = "active"), this._prevFrame = u; - } - } -}; -var xD = class extends x { - get cursor() { - return this.value ? 0 : 1; - } - get _value() { - return this.cursor === 0; - } - constructor(u) { - super(u, false), this.value = !!u.initialValue, this.on("value", () => { - this.value = this._value; - }), this.on("confirm", (F) => { - this.output.write(import_sisteransi.cursor.move(0, -1)), this.value = F, this.state = "submit", this.close(); - }), this.on("cursor", () => { - this.value = !this.value; - }); - } -}; -var SD = Object.defineProperty; -var jD = (t, u, F) => u in t ? SD(t, u, { enumerable: true, configurable: true, writable: true, value: F }) : t[u] = F; -var MD = (t, u, F) => (jD(t, typeof u != "symbol" ? u + "" : u, F), F); -var TD = class extends x { - constructor(u) { - super(u), MD(this, "valueWithCursor", ""), this.on("finalize", () => { - this.value || (this.value = u.defaultValue), this.valueWithCursor = this.value; - }), this.on("value", () => { - if (this.cursor >= this.value.length) this.valueWithCursor = `${this.value}${import_picocolors.default.inverse(import_picocolors.default.hidden("_"))}`; - else { - const F = this.value.slice(0, this.cursor), e2 = this.value.slice(this.cursor); - this.valueWithCursor = `${F}${import_picocolors.default.inverse(e2[0])}${e2.slice(1)}`; - } - }); - } - get cursor() { - return this._cursor; - } -}; -var PD = globalThis.process.platform.startsWith("win"); -function WD({ input: t = $, output: u = k, overwrite: F = true, hideCursor: e2 = true } = {}) { - const s = f.createInterface({ input: t, output: u, prompt: "", tabSize: 1 }); - f.emitKeypressEvents(t, s), t.isTTY && t.setRawMode(true); - const C2 = (D, { name: i }) => { - if (String(D) === "" && process.exit(0), !F) return; - let n = i === "return" ? 0 : -1, E2 = i === "return" ? -1 : 0; - f.moveCursor(u, n, E2, () => { - f.clearLine(u, 1, () => { - t.once("keypress", C2); - }); - }); - }; - return e2 && process.stdout.write(import_sisteransi.cursor.hide), t.once("keypress", C2), () => { - t.off("keypress", C2), e2 && process.stdout.write(import_sisteransi.cursor.show), t.isTTY && !PD && t.setRawMode(false), s.terminal = false, s.close(); - }; -} - -// node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs -var import_picocolors2 = __toESM(require_picocolors(), 1); -var import_sisteransi2 = __toESM(require_src(), 1); -import h from "node:process"; -function q2() { - return h.platform !== "win32" ? h.env.TERM !== "linux" : Boolean(h.env.CI) || Boolean(h.env.WT_SESSION) || Boolean(h.env.TERMINUS_SUBLIME) || h.env.ConEmuTask === "{cmd::Cmder}" || h.env.TERM_PROGRAM === "Terminus-Sublime" || h.env.TERM_PROGRAM === "vscode" || h.env.TERM === "xterm-256color" || h.env.TERM === "alacritty" || h.env.TERMINAL_EMULATOR === "JetBrains-JediTerm"; -} -var _2 = q2(); -var o = (r2, n) => _2 ? r2 : n; -var H = o("\u25C6", "*"); -var I2 = o("\u25A0", "x"); -var x2 = o("\u25B2", "x"); -var S2 = o("\u25C7", "o"); -var K = o("\u250C", "T"); -var a2 = o("\u2502", "|"); -var d2 = o("\u2514", "\u2014"); -var b2 = o("\u25CF", ">"); -var E = o("\u25CB", " "); -var C = o("\u25FB", "[\u2022]"); -var w2 = o("\u25FC", "[+]"); -var M2 = o("\u25FB", "[ ]"); -var U2 = o("\u25AA", "\u2022"); -var B = o("\u2500", "-"); -var Z = o("\u256E", "+"); -var z2 = o("\u251C", "+"); -var X2 = o("\u256F", "+"); -var J2 = o("\u25CF", "\u2022"); -var Y = o("\u25C6", "*"); -var Q2 = o("\u25B2", "!"); -var ee = o("\u25A0", "x"); -var y2 = (r2) => { - switch (r2) { - case "initial": - case "active": - return import_picocolors2.default.cyan(H); - case "cancel": - return import_picocolors2.default.red(I2); - case "error": - return import_picocolors2.default.yellow(x2); - case "submit": - return import_picocolors2.default.green(S2); - } -}; -var te = (r2) => new TD({ validate: r2.validate, placeholder: r2.placeholder, defaultValue: r2.defaultValue, initialValue: r2.initialValue, render() { - const n = `${import_picocolors2.default.gray(a2)} -${y2(this.state)} ${r2.message} -`, i = r2.placeholder ? import_picocolors2.default.inverse(r2.placeholder[0]) + import_picocolors2.default.dim(r2.placeholder.slice(1)) : import_picocolors2.default.inverse(import_picocolors2.default.hidden("_")), t = this.value ? this.valueWithCursor : i; - switch (this.state) { - case "error": - return `${n.trim()} -${import_picocolors2.default.yellow(a2)} ${t} -${import_picocolors2.default.yellow(d2)} ${import_picocolors2.default.yellow(this.error)} -`; - case "submit": - return `${n}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.dim(this.value || r2.placeholder)}`; - case "cancel": - return `${n}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(this.value ?? ""))}${this.value?.trim() ? ` -` + import_picocolors2.default.gray(a2) : ""}`; - default: - return `${n}${import_picocolors2.default.cyan(a2)} ${t} -${import_picocolors2.default.cyan(d2)} -`; - } -} }).prompt(); -var se = (r2) => { - const n = r2.active ?? "Yes", i = r2.inactive ?? "No"; - return new xD({ active: n, inactive: i, initialValue: r2.initialValue ?? true, render() { - const t = `${import_picocolors2.default.gray(a2)} -${y2(this.state)} ${r2.message} -`, s = this.value ? n : i; - switch (this.state) { - case "submit": - return `${t}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.dim(s)}`; - case "cancel": - return `${t}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(s))} -${import_picocolors2.default.gray(a2)}`; - default: - return `${t}${import_picocolors2.default.cyan(a2)} ${this.value ? `${import_picocolors2.default.green(b2)} ${n}` : `${import_picocolors2.default.dim(E)} ${import_picocolors2.default.dim(n)}`} ${import_picocolors2.default.dim("/")} ${this.value ? `${import_picocolors2.default.dim(E)} ${import_picocolors2.default.dim(i)}` : `${import_picocolors2.default.green(b2)} ${i}`} -${import_picocolors2.default.cyan(d2)} -`; - } - } }).prompt(); -}; -var oe = (r2 = "") => { - process.stdout.write(`${import_picocolors2.default.gray(K)} ${r2} -`); -}; -var $e = (r2 = "") => { - process.stdout.write(`${import_picocolors2.default.gray(a2)} -${import_picocolors2.default.gray(d2)} ${r2} - -`); -}; -var de = () => { - const r2 = _2 ? ["\u25D2", "\u25D0", "\u25D3", "\u25D1"] : ["\u2022", "o", "O", "0"], n = _2 ? 80 : 120; - let i, t, s = false, c2 = ""; - const l2 = (v2 = "") => { - s = true, i = WD(), c2 = v2.replace(/\.+$/, ""), process.stdout.write(`${import_picocolors2.default.gray(a2)} -`); - let g2 = 0, p = 0; - t = setInterval(() => { - const O2 = import_picocolors2.default.magenta(r2[g2]), P2 = ".".repeat(Math.floor(p)).slice(0, 3); - process.stdout.write(import_sisteransi2.cursor.move(-999, 0)), process.stdout.write(import_sisteransi2.erase.down(1)), process.stdout.write(`${O2} ${c2}${P2}`), g2 = g2 + 1 < r2.length ? g2 + 1 : 0, p = p < r2.length ? p + 0.125 : 0; - }, n); - }, u = (v2 = "", g2 = 0) => { - c2 = v2 ?? c2, s = false, clearInterval(t); - const p = g2 === 0 ? import_picocolors2.default.green(S2) : g2 === 1 ? import_picocolors2.default.red(I2) : import_picocolors2.default.red(x2); - process.stdout.write(import_sisteransi2.cursor.move(-999, 0)), process.stdout.write(import_sisteransi2.erase.down(1)), process.stdout.write(`${p} ${c2} -`), i(); - }, m2 = (v2 = "") => { - c2 = v2 ?? c2; - }, $2 = (v2) => { - const g2 = v2 > 1 ? "Something went wrong" : "Canceled"; - s && u(g2, v2); - }; - return process.on("uncaughtExceptionMonitor", () => $2(2)), process.on("unhandledRejection", () => $2(2)), process.on("SIGINT", () => $2(1)), process.on("SIGTERM", () => $2(1)), process.on("exit", $2), { start: l2, stop: u, message: m2 }; -}; - -// bin/get-started.ts +import * as clack from "@clack/prompts"; import fs from "fs"; import { execSync } from "child_process"; import path from "path"; import { fileURLToPath } from "url"; import waitOn from "wait-on"; - -// package.json -var package_default = { - name: "@restackio/get-started", - version: "1.0.4", - description: "Get started with Restack AI SDK", - bin: { - "get-started": "bin/get-started.mjs" - }, - files: [ - "bin", - "src", - "scheduleWorkflow.ts", - "readme.md", - "tsconfig.json" - ], - keywords: [ - "restack", - "starter", - "template" - ], - license: "MIT", - dependencies: { - "@restackio/ai": "^0.0.75", - "@temporalio/workflow": "^1.11.2", - nodemon: "^2.0.22", - "ts-node": "^10.9.2", - typescript: "^5.6.2", - "wait-on": "^8.0.1" - }, - scripts: { - "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", - service: "ts-node src/services.ts", - schedule: "ts-node scheduleWorkflow.ts" - }, - devDependencies: { - "@clack/prompts": "^0.7.0", - tsup: "8.3.0" - } -}; - -// bin/get-started.ts -var __filename = fileURLToPath(import.meta.url); -var __dirname = path.dirname(__filename); -var packageRoot = path.join(__dirname, ".."); +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const packageRoot = path.join(__dirname, ".."); async function main() { - oe("Welcome Restack Get started"); + clack.intro("Welcome Restack Get started"); const currentDir = process.cwd(); let targetDir; - const projectName = await te({ + const projectName = await clack.text({ message: "Enter the project folder name:", defaultValue: "restack-get-started", initialValue: "restack-get-started", @@ -677,15 +22,12 @@ async function main() { }); if (projectName) { targetDir = path.join(currentDir, projectName); - const filesToCopy = ["src", "scheduleWorkflow.ts", "tsconfig.json"]; + const filesToCopy = ["src", "scheduleWorkflow.ts", "tsconfig.json", "package.json"]; filesToCopy.forEach((file) => { fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); }); - delete package_default.bin; - delete package_default.files; - fs.writeFileSync(path.join(targetDir, "package.json"), JSON.stringify(package_default, null, 2)); } - const installDependencies = await se({ + const installDependencies = await clack.confirm({ message: "Install dependencies?", initialValue: true }); @@ -693,7 +35,7 @@ async function main() { console.log("Installing dependencies..."); execSync("npm install", { stdio: "inherit", cwd: targetDir }); } - const startRestack = await se({ + const startRestack = await clack.confirm({ message: "Start Restack Engine?", initialValue: true }); @@ -703,12 +45,12 @@ async function main() { execSync("docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main", { stdio: "inherit", cwd: currentDir }); console.log(`Restack Engine Studio started on http://localhost:5233`); } - const openRestack = await se({ + const openRestack = await clack.confirm({ message: "Open Restack Engine Studio?", initialValue: true }); if (openRestack) { - const s = de(); + const s = clack.spinner(); s.start("Waiting for Restack Engine Studio to start"); await waitOn({ resources: ["http://localhost:5233"] }); s.stop(); @@ -716,7 +58,7 @@ async function main() { } const blue = "\x1B[34m"; const noColor = "\x1B[0m"; - $e(` + clack.outro(` Project created successfully! We suggest that you begin with following commands: diff --git a/examples/get-started/bin/get-started.ts b/examples/get-started/bin/get-started.ts index a527855..2bfb642 100644 --- a/examples/get-started/bin/get-started.ts +++ b/examples/get-started/bin/get-started.ts @@ -6,9 +6,6 @@ import path from 'path'; import { fileURLToPath } from 'url'; import waitOn from 'wait-on'; -// @ts-ignore -import packageJson from '../package.json'; - // @ts-ignore const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); @@ -32,15 +29,10 @@ async function main() { if (projectName) { targetDir = path.join(currentDir, projectName); - const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; + const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json', 'package.json']; filesToCopy.forEach(file => { fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); }); - - // Copy package.json separately and modify it - delete packageJson.bin; - delete packageJson.files; - fs.writeFileSync(path.join(targetDir, 'package.json'), JSON.stringify(packageJson, null, 2)); } const installDependencies = (await clack.confirm({ @@ -72,7 +64,7 @@ async function main() { if (openRestack) { const s = clack.spinner(); - s.start('Waiting for Restack Engine Studio to start'); + s.start('Waiting for Restack Engine Studio to be ready...'); await waitOn({ resources: ['http://localhost:5233'] }); s.stop(); execSync('open http://localhost:5233', { stdio: 'inherit', cwd: targetDir }); diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index 448b286..a755a85 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -1,12 +1,12 @@ { "name": "@restackio/get-started", - "version": "1.0.4", + "version": "1.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@restackio/get-started", - "version": "1.0.4", + "version": "1.0.6", "license": "MIT", "dependencies": { "@restackio/ai": "^0.0.75", @@ -21,7 +21,10 @@ }, "devDependencies": { "@clack/prompts": "^0.7.0", - "tsup": "8.3.0" + "esbuild": "^0.24.0" + }, + "engines": { + "node": ">=20" } }, "node_modules/@clack/core": { @@ -76,9 +79,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", - "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", "cpu": [ "ppc64" ], @@ -93,9 +96,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", - "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", "cpu": [ "arm" ], @@ -110,9 +113,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", - "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", "cpu": [ "arm64" ], @@ -127,9 +130,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", - "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", "cpu": [ "x64" ], @@ -144,9 +147,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", - "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ "arm64" ], @@ -161,9 +164,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", - "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", "cpu": [ "x64" ], @@ -178,9 +181,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", - "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", "cpu": [ "arm64" ], @@ -195,9 +198,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", - "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", "cpu": [ "x64" ], @@ -212,9 +215,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", - "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", "cpu": [ "arm" ], @@ -229,9 +232,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", - "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", "cpu": [ "arm64" ], @@ -246,9 +249,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", - "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", "cpu": [ "ia32" ], @@ -263,9 +266,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", - "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", "cpu": [ "loong64" ], @@ -280,9 +283,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", - "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", "cpu": [ "mips64el" ], @@ -297,9 +300,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", - "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", "cpu": [ "ppc64" ], @@ -314,9 +317,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", - "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", "cpu": [ "riscv64" ], @@ -331,9 +334,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", - "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", "cpu": [ "s390x" ], @@ -348,9 +351,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", - "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", "cpu": [ "x64" ], @@ -365,9 +368,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", - "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", "cpu": [ "x64" ], @@ -382,9 +385,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", - "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", "cpu": [ "arm64" ], @@ -399,9 +402,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", - "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", "cpu": [ "x64" ], @@ -416,9 +419,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", - "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", "cpu": [ "x64" ], @@ -433,9 +436,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", - "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", "cpu": [ "arm64" ], @@ -450,9 +453,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", - "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", "cpu": [ "ia32" ], @@ -467,9 +470,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", - "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", "cpu": [ "x64" ], @@ -529,24 +532,6 @@ "@hapi/hoek": "^9.0.0" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -689,17 +674,6 @@ "tslib": "2" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -778,230 +752,6 @@ "node": ">=20" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -1606,39 +1356,6 @@ "ajv": "^6.9.1" } }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -1753,32 +1470,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, - "node_modules/bundle-require": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz", - "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "load-tsconfig": "^0.2.3" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "esbuild": ">=0.18" - } - }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001669", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", @@ -1958,76 +1649,18 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, - "node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "license": "MIT" }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -2061,26 +1694,12 @@ "node": ">=0.3.1" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, "node_modules/electron-to-chromium": { "version": "1.5.41", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", "license": "ISC" }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/enhanced-resolve": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", @@ -2101,9 +1720,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", - "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2114,30 +1733,30 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.1", - "@esbuild/android-arm": "0.23.1", - "@esbuild/android-arm64": "0.23.1", - "@esbuild/android-x64": "0.23.1", - "@esbuild/darwin-arm64": "0.23.1", - "@esbuild/darwin-x64": "0.23.1", - "@esbuild/freebsd-arm64": "0.23.1", - "@esbuild/freebsd-x64": "0.23.1", - "@esbuild/linux-arm": "0.23.1", - "@esbuild/linux-arm64": "0.23.1", - "@esbuild/linux-ia32": "0.23.1", - "@esbuild/linux-loong64": "0.23.1", - "@esbuild/linux-mips64el": "0.23.1", - "@esbuild/linux-ppc64": "0.23.1", - "@esbuild/linux-riscv64": "0.23.1", - "@esbuild/linux-s390x": "0.23.1", - "@esbuild/linux-x64": "0.23.1", - "@esbuild/netbsd-x64": "0.23.1", - "@esbuild/openbsd-arm64": "0.23.1", - "@esbuild/openbsd-x64": "0.23.1", - "@esbuild/sunos-x64": "0.23.1", - "@esbuild/win32-arm64": "0.23.1", - "@esbuild/win32-ia32": "0.23.1", - "@esbuild/win32-x64": "0.23.1" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/escalade": { @@ -2210,30 +1829,6 @@ "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2278,36 +1873,6 @@ } } }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -2351,40 +1916,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -2403,32 +1934,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2453,16 +1958,6 @@ "node": ">=10.0.0" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/hyperdyperid": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", @@ -2541,19 +2036,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", @@ -2563,22 +2045,6 @@ "node": ">=16" } }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -2606,16 +2072,6 @@ "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -2628,36 +2084,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "license": "MIT" }, - "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/load-tsconfig": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", - "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -2679,26 +2105,12 @@ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "license": "MIT" }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", - "dev": true, - "license": "MIT" - }, "node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", "license": "Apache-2.0" }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -2751,16 +2163,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2782,16 +2184,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/ms": { "version": "3.0.0-canary.1", "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", @@ -2801,18 +2193,6 @@ "node": ">=12.13" } }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -2883,79 +2263,6 @@ "node": ">=0.10.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -2974,59 +2281,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, "node_modules/proto3-json-serializer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", @@ -3114,52 +2368,6 @@ "node": ">=0.10.0" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", - "fsevents": "~2.3.2" - } - }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -3231,36 +2439,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", @@ -3346,143 +2524,6 @@ "node": ">=0.10.0" } }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -3588,29 +2629,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/thingies": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", @@ -3623,48 +2641,6 @@ "tslib": "^2" } }, - "node_modules/tinyglobby": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.9.tgz", - "integrity": "sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.0", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", - "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3686,16 +2662,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/tree-dump": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", @@ -3712,23 +2678,6 @@ "tslib": "2" } }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -3784,96 +2733,6 @@ "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", "license": "0BSD" }, - "node_modules/tsup": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", - "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-require": "^5.0.0", - "cac": "^6.7.14", - "chokidar": "^3.6.0", - "consola": "^3.2.3", - "debug": "^4.3.5", - "esbuild": "^0.23.0", - "execa": "^5.1.1", - "joycon": "^3.1.1", - "picocolors": "^1.0.1", - "postcss-load-config": "^6.0.1", - "resolve-from": "^5.0.0", - "rollup": "^4.19.0", - "source-map": "0.8.0-beta.0", - "sucrase": "^3.35.0", - "tinyglobby": "^0.2.1", - "tree-kill": "^1.2.2" - }, - "bin": { - "tsup": "dist/cli-default.js", - "tsup-node": "dist/cli-node.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@microsoft/api-extractor": "^7.36.0", - "@swc/core": "^1", - "postcss": "^8.4.12", - "typescript": ">=4.5.0" - }, - "peerDependenciesMeta": { - "@microsoft/api-extractor": { - "optional": true - }, - "@swc/core": { - "optional": true - }, - "postcss": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tsup/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", @@ -3997,13 +2856,6 @@ "node": ">=10.13.0" } }, - "node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/webpack": { "version": "5.95.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", @@ -4059,18 +2911,6 @@ "node": ">=10.13.0" } }, - "node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, "node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -4086,104 +2926,6 @@ "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 62d4541..0a90f2b 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.5", + "version": "1.0.6", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" @@ -26,13 +26,16 @@ "typescript": "^5.6.2", "wait-on": "^8.0.1" }, + "engines": { + "node": ">=20" + }, "scripts": { - "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", + "build-bin": "pnpm esbuild bin/get-started.ts --outfile=bin/get-started.mjs --format=esm", "service": "ts-node src/services.ts", "schedule": "ts-node scheduleWorkflow.ts" }, "devDependencies": { "@clack/prompts": "^0.7.0", - "tsup": "8.3.0" + "esbuild": "^0.24.0" } } diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index 59b8331..2fd44c9 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@restackio/ai': specifier: ^0.0.75 - version: 0.0.75(esbuild@0.23.1) + version: 0.0.75(esbuild@0.24.0) '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.3 @@ -30,9 +30,9 @@ importers: '@clack/prompts': specifier: ^0.7.0 version: 0.7.0 - tsup: - specifier: 8.3.0 - version: 8.3.0(@swc/core@1.7.36)(typescript@5.6.3) + esbuild: + specifier: ^0.24.0 + version: 0.24.0 packages: @@ -48,146 +48,146 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -207,10 +207,6 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -256,10 +252,6 @@ packages: peerDependencies: tslib: '2' - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -294,86 +286,6 @@ packages: resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} engines: {node: '>=20'} - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} - cpu: [x64] - os: [win32] - '@sideway/address@4.1.5': resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} @@ -582,21 +494,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -623,9 +524,6 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -638,16 +536,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - bundle-require@5.0.0: - resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - caniuse-lite@1.0.30001669: resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} @@ -681,24 +569,12 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -707,15 +583,6 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -724,18 +591,12 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.41: resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -743,8 +604,8 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} engines: {node: '>=18'} hasBin: true @@ -776,24 +637,12 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fdir@6.4.2: - resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -807,10 +656,6 @@ packages: debug: optional: true - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - form-data@4.0.1: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} @@ -827,10 +672,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -838,10 +679,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -857,10 +694,6 @@ packages: resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} engines: {node: '>=10.0.0'} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -892,20 +725,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -913,27 +736,12 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -941,18 +749,12 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -971,24 +773,12 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -996,9 +786,6 @@ packages: resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} engines: {node: '>=12.13'} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -1014,29 +801,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -1044,32 +808,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} @@ -1099,15 +837,6 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -1132,21 +861,6 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - simple-update-notifier@1.1.0: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} engines: {node: '>=8.10.0'} @@ -1175,35 +889,14 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -1243,23 +936,12 @@ packages: engines: {node: '>=10'} hasBin: true - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 - tinyglobby@0.2.9: - resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} - engines: {node: '>=12.0.0'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -1268,22 +950,12 @@ packages: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tree-dump@1.0.2: resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -1301,25 +973,6 @@ packages: tslib@2.8.0: resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} - tsup@8.3.0: - resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} @@ -1359,9 +1012,6 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -1376,14 +1026,6 @@ packages: webpack-cli: optional: true - whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - which@4.0.0: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} engines: {node: ^16.13.0 || >=18.0.0} @@ -1393,10 +1035,6 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -1430,76 +1068,76 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@esbuild/aix-ppc64@0.23.1': + '@esbuild/aix-ppc64@0.24.0': optional: true - '@esbuild/android-arm64@0.23.1': + '@esbuild/android-arm64@0.24.0': optional: true - '@esbuild/android-arm@0.23.1': + '@esbuild/android-arm@0.24.0': optional: true - '@esbuild/android-x64@0.23.1': + '@esbuild/android-x64@0.24.0': optional: true - '@esbuild/darwin-arm64@0.23.1': + '@esbuild/darwin-arm64@0.24.0': optional: true - '@esbuild/darwin-x64@0.23.1': + '@esbuild/darwin-x64@0.24.0': optional: true - '@esbuild/freebsd-arm64@0.23.1': + '@esbuild/freebsd-arm64@0.24.0': optional: true - '@esbuild/freebsd-x64@0.23.1': + '@esbuild/freebsd-x64@0.24.0': optional: true - '@esbuild/linux-arm64@0.23.1': + '@esbuild/linux-arm64@0.24.0': optional: true - '@esbuild/linux-arm@0.23.1': + '@esbuild/linux-arm@0.24.0': optional: true - '@esbuild/linux-ia32@0.23.1': + '@esbuild/linux-ia32@0.24.0': optional: true - '@esbuild/linux-loong64@0.23.1': + '@esbuild/linux-loong64@0.24.0': optional: true - '@esbuild/linux-mips64el@0.23.1': + '@esbuild/linux-mips64el@0.24.0': optional: true - '@esbuild/linux-ppc64@0.23.1': + '@esbuild/linux-ppc64@0.24.0': optional: true - '@esbuild/linux-riscv64@0.23.1': + '@esbuild/linux-riscv64@0.24.0': optional: true - '@esbuild/linux-s390x@0.23.1': + '@esbuild/linux-s390x@0.24.0': optional: true - '@esbuild/linux-x64@0.23.1': + '@esbuild/linux-x64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.23.1': + '@esbuild/netbsd-x64@0.24.0': optional: true - '@esbuild/openbsd-arm64@0.23.1': + '@esbuild/openbsd-arm64@0.24.0': optional: true - '@esbuild/openbsd-x64@0.23.1': + '@esbuild/openbsd-x64@0.24.0': optional: true - '@esbuild/sunos-x64@0.23.1': + '@esbuild/sunos-x64@0.24.0': optional: true - '@esbuild/win32-arm64@0.23.1': + '@esbuild/win32-arm64@0.24.0': optional: true - '@esbuild/win32-ia32@0.23.1': + '@esbuild/win32-ia32@0.24.0': optional: true - '@esbuild/win32-x64@0.23.1': + '@esbuild/win32-x64@0.24.0': optional: true '@grpc/grpc-js@1.12.2': @@ -1520,15 +1158,6 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -1574,9 +1203,6 @@ snapshots: dependencies: tslib: 2.8.0 - '@pkgjs/parseargs@0.11.0': - optional: true - '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -1600,11 +1226,11 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/ai@0.0.75(esbuild@0.23.1)': + '@restackio/ai@0.0.75(esbuild@0.24.0)': dependencies: '@temporalio/activity': 1.11.3 '@temporalio/client': 1.11.3 - '@temporalio/worker': 1.11.3(esbuild@0.23.1) + '@temporalio/worker': 1.11.3(esbuild@0.24.0) '@temporalio/workflow': 1.11.3 transitivePeerDependencies: - '@swc/helpers' @@ -1612,54 +1238,6 @@ snapshots: - uglify-js - webpack-cli - '@rollup/rollup-android-arm-eabi@4.24.0': - optional: true - - '@rollup/rollup-android-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-x64@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.24.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.24.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.24.0': - optional: true - '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 @@ -1753,7 +1331,7 @@ snapshots: long: 5.2.3 protobufjs: 7.4.0 - '@temporalio/worker@1.11.3(esbuild@0.23.1)': + '@temporalio/worker@1.11.3(esbuild@0.24.0)': dependencies: '@swc/core': 1.7.36 '@temporalio/activity': 1.11.3 @@ -1767,11 +1345,11 @@ snapshots: memfs: 4.14.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) + swc-loader: 0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)) unionfs: 4.5.4 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1906,16 +1484,10 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} - - any-promise@1.3.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -1944,10 +1516,6 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -1961,13 +1529,6 @@ snapshots: buffer-from@1.1.2: {} - bundle-require@5.0.0(esbuild@0.23.1): - dependencies: - esbuild: 0.23.1 - load-tsconfig: 0.2.5 - - cac@6.7.14: {} - caniuse-lite@1.0.30001669: {} cargo-cp-artifact@0.1.9: {} @@ -2004,42 +1565,24 @@ snapshots: commander@2.20.3: {} - commander@4.1.1: {} - concat-map@0.0.1: {} - consola@3.2.3: {} - create-require@1.1.1: {} - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - debug@3.2.7(supports-color@5.5.0): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 5.5.0 - debug@4.3.7: - dependencies: - ms: 2.1.3 - delayed-stream@1.0.0: {} diff@4.0.2: {} - eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.41: {} emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -2047,32 +1590,32 @@ snapshots: es-module-lexer@1.5.4: {} - esbuild@0.23.1: + esbuild@0.24.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 escalade@3.2.0: {} @@ -2093,37 +1636,16 @@ snapshots: events@3.3.0: {} - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - fast-deep-equal@3.1.3: {} fast-json-stable-stringify@2.1.0: {} - fdir@6.4.2(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 follow-redirects@1.15.9: {} - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - form-data@4.0.1: dependencies: asynckit: 0.4.0 @@ -2137,23 +1659,12 @@ snapshots: get-caller-file@2.0.5: {} - get-stream@6.0.1: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 glob-to-regexp@0.4.1: {} - glob@10.4.5: - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - graceful-fs@4.2.11: {} has-flag@3.0.0: {} @@ -2162,8 +1673,6 @@ snapshots: heap-js@2.5.0: {} - human-signals@2.1.0: {} - hyperdyperid@1.2.0: {} iconv-lite@0.6.3: @@ -2186,18 +1695,8 @@ snapshots: is-number@7.0.0: {} - is-stream@2.0.1: {} - - isexe@2.0.0: {} - isexe@3.1.1: {} - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jest-worker@27.5.1: dependencies: '@types/node': 22.7.7 @@ -2212,30 +1711,18 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - joycon@3.1.1: {} - json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} - lilconfig@3.1.2: {} - - lines-and-columns@1.2.4: {} - - load-tsconfig@0.2.5: {} - loader-runner@4.3.0: {} lodash.camelcase@4.3.0: {} - lodash.sortby@4.7.0: {} - lodash@4.17.21: {} long@5.2.3: {} - lru-cache@10.4.3: {} - make-error@1.3.6: {} memfs@4.14.0: @@ -2253,30 +1740,16 @@ snapshots: dependencies: mime-db: 1.52.0 - mimic-fn@2.1.0: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.1 - minimist@1.2.8: {} - minipass@7.1.2: {} - ms@2.1.3: {} ms@3.0.0-canary.1: {} - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - neo-async@2.6.2: {} node-releases@2.0.18: {} @@ -2296,37 +1769,10 @@ snapshots: normalize-path@3.0.0: {} - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - object-assign@4.1.1: {} - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - package-json-from-dist@1.0.1: {} - - path-key@3.1.1: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - picocolors@1.1.1: {} picomatch@2.3.1: {} - picomatch@4.0.2: {} - - pirates@4.0.6: {} - - postcss-load-config@6.0.1: - dependencies: - lilconfig: 3.1.2 - proto3-json-serializer@2.0.2: dependencies: protobufjs: 7.4.0 @@ -2362,30 +1808,6 @@ snapshots: require-directory@2.1.1: {} - resolve-from@5.0.0: {} - - rollup@4.24.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 - fsevents: 2.3.3 - rxjs@7.8.1: dependencies: tslib: 2.8.0 @@ -2408,16 +1830,6 @@ snapshots: dependencies: randombytes: 2.1.0 - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - simple-update-notifier@1.1.0: dependencies: semver: 7.0.0 @@ -2426,11 +1838,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) source-map-support@0.5.21: dependencies: @@ -2441,42 +1853,16 @@ snapshots: source-map@0.7.4: {} - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-final-newline@2.0.0: {} - - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -2485,25 +1871,25 @@ snapshots: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): + swc-loader@0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)): dependencies: '@swc/core': 1.7.36 '@swc/counter': 0.1.3 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.36)(esbuild@0.24.0)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) optionalDependencies: '@swc/core': 1.7.36 - esbuild: 0.23.1 + esbuild: 0.24.0 terser@5.36.0: dependencies: @@ -2512,41 +1898,20 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - thingies@1.21.0(tslib@2.8.0): dependencies: tslib: 2.8.0 - tinyglobby@0.2.9: - dependencies: - fdir: 6.4.2(picomatch@4.0.2) - picomatch: 4.0.2 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 touch@3.1.1: {} - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - tree-dump@1.0.2(tslib@2.8.0): dependencies: tslib: 2.8.0 - tree-kill@1.2.2: {} - - ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.7.36)(@types/node@22.7.7)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -2569,33 +1934,6 @@ snapshots: tslib@2.8.0: {} - tsup@8.3.0(@swc/core@1.7.36)(typescript@5.6.3): - dependencies: - bundle-require: 5.0.0(esbuild@0.23.1) - cac: 6.7.14 - chokidar: 3.6.0 - consola: 3.2.3 - debug: 4.3.7 - esbuild: 0.23.1 - execa: 5.1.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1 - resolve-from: 5.0.0 - rollup: 4.24.0 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tinyglobby: 0.2.9 - tree-kill: 1.2.2 - optionalDependencies: - '@swc/core': 1.7.36 - typescript: 5.6.3 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - typescript@5.6.3: {} undefsafe@2.0.5: {} @@ -2635,11 +1973,9 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - webidl-conversions@4.0.2: {} - webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1): + webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -2661,7 +1997,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.36)(esbuild@0.24.0)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -2669,16 +2005,6 @@ snapshots: - esbuild - uglify-js - whatwg-url@7.1.0: - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - which@4.0.0: dependencies: isexe: 3.1.1 @@ -2689,12 +2015,6 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - y18n@5.0.8: {} yargs-parser@21.1.1: {} From 6b7080ffce28199e36dee98c2e98d71ed3c03623 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 22 Oct 2024 13:05:18 +0200 Subject: [PATCH 102/122] Revert "Tsup to esbuild" This reverts commit f35038d9db097470b7e065a38905530c6eb3d902 [formerly 82dddaaf6e4ced47a9b50874c6edecffde692006] [formerly 11a08db3404de91200f2ff0a73f3eb9a0eff27f2]. Former-commit-id: 34dd657aec30bdd56b60cb5484f484f90624972a Former-commit-id: a23946030b4ef9d23c0c4686a3f94d10464d412c --- .github/workflows/npm-publish.yml | 2 +- examples/get-started/bin/get-started.mjs | 682 +++++++++- examples/get-started/bin/get-started.ts | 12 +- examples/get-started/package-lock.json | 1478 ++++++++++++++++++++-- examples/get-started/package.json | 9 +- examples/get-started/pnpm-lock.yaml | 916 ++++++++++++-- 6 files changed, 2850 insertions(+), 249 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 84b1bf7..455bd22 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -29,7 +29,7 @@ jobs: # Only install dev dependencies, for the binary. No need to install deps for the source code. - name: Install dependencies # Weird tsup quirk https://github.com/npm/cli/issues/4828#issuecomment-2404560937 - run: pnpm install --dev + run: pnpm i @rollup/rollup-linux-x64-gnu && pnpm install --dev working-directory: ./examples/get-started - name: Build binary diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs index ca57599..2b12542 100755 --- a/examples/get-started/bin/get-started.mjs +++ b/examples/get-started/bin/get-started.mjs @@ -1,18 +1,673 @@ #!/usr/bin/env node -import * as clack from "@clack/prompts"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js +var require_src = __commonJS({ + "node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports, module) { + "use strict"; + var ESC = "\x1B"; + var CSI = `${ESC}[`; + var beep = "\x07"; + var cursor = { + to(x3, y3) { + if (!y3) return `${CSI}${x3 + 1}G`; + return `${CSI}${y3 + 1};${x3 + 1}H`; + }, + move(x3, y3) { + let ret = ""; + if (x3 < 0) ret += `${CSI}${-x3}D`; + else if (x3 > 0) ret += `${CSI}${x3}C`; + if (y3 < 0) ret += `${CSI}${-y3}A`; + else if (y3 > 0) ret += `${CSI}${y3}B`; + return ret; + }, + up: (count = 1) => `${CSI}${count}A`, + down: (count = 1) => `${CSI}${count}B`, + forward: (count = 1) => `${CSI}${count}C`, + backward: (count = 1) => `${CSI}${count}D`, + nextLine: (count = 1) => `${CSI}E`.repeat(count), + prevLine: (count = 1) => `${CSI}F`.repeat(count), + left: `${CSI}G`, + hide: `${CSI}?25l`, + show: `${CSI}?25h`, + save: `${ESC}7`, + restore: `${ESC}8` + }; + var scroll = { + up: (count = 1) => `${CSI}S`.repeat(count), + down: (count = 1) => `${CSI}T`.repeat(count) + }; + var erase = { + screen: `${CSI}2J`, + up: (count = 1) => `${CSI}1J`.repeat(count), + down: (count = 1) => `${CSI}J`.repeat(count), + line: `${CSI}2K`, + lineEnd: `${CSI}K`, + lineStart: `${CSI}1K`, + lines(count) { + let clear = ""; + for (let i = 0; i < count; i++) + clear += this.line + (i < count - 1 ? cursor.up() : ""); + if (count) + clear += cursor.left; + return clear; + } + }; + module.exports = { cursor, scroll, erase, beep }; + } +}); + +// node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js +var require_picocolors = __commonJS({ + "node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports, module) { + var p = process || {}; + var argv = p.argv || []; + var env = p.env || {}; + var isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI); + var formatter = (open, close, replace = open) => (input) => { + let string = "" + input, index = string.indexOf(close, open.length); + return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; + }; + var replaceClose = (string, close, replace, index) => { + let result = "", cursor = 0; + do { + result += string.substring(cursor, index) + replace; + cursor = index + close.length; + index = string.indexOf(close, cursor); + } while (~index); + return result + string.substring(cursor); + }; + var createColors = (enabled = isColorSupported) => { + let f2 = enabled ? formatter : () => String; + return { + isColorSupported: enabled, + reset: f2("\x1B[0m", "\x1B[0m"), + bold: f2("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), + dim: f2("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), + italic: f2("\x1B[3m", "\x1B[23m"), + underline: f2("\x1B[4m", "\x1B[24m"), + inverse: f2("\x1B[7m", "\x1B[27m"), + hidden: f2("\x1B[8m", "\x1B[28m"), + strikethrough: f2("\x1B[9m", "\x1B[29m"), + black: f2("\x1B[30m", "\x1B[39m"), + red: f2("\x1B[31m", "\x1B[39m"), + green: f2("\x1B[32m", "\x1B[39m"), + yellow: f2("\x1B[33m", "\x1B[39m"), + blue: f2("\x1B[34m", "\x1B[39m"), + magenta: f2("\x1B[35m", "\x1B[39m"), + cyan: f2("\x1B[36m", "\x1B[39m"), + white: f2("\x1B[37m", "\x1B[39m"), + gray: f2("\x1B[90m", "\x1B[39m"), + bgBlack: f2("\x1B[40m", "\x1B[49m"), + bgRed: f2("\x1B[41m", "\x1B[49m"), + bgGreen: f2("\x1B[42m", "\x1B[49m"), + bgYellow: f2("\x1B[43m", "\x1B[49m"), + bgBlue: f2("\x1B[44m", "\x1B[49m"), + bgMagenta: f2("\x1B[45m", "\x1B[49m"), + bgCyan: f2("\x1B[46m", "\x1B[49m"), + bgWhite: f2("\x1B[47m", "\x1B[49m"), + blackBright: f2("\x1B[90m", "\x1B[39m"), + redBright: f2("\x1B[91m", "\x1B[39m"), + greenBright: f2("\x1B[92m", "\x1B[39m"), + yellowBright: f2("\x1B[93m", "\x1B[39m"), + blueBright: f2("\x1B[94m", "\x1B[39m"), + magentaBright: f2("\x1B[95m", "\x1B[39m"), + cyanBright: f2("\x1B[96m", "\x1B[39m"), + whiteBright: f2("\x1B[97m", "\x1B[39m"), + bgBlackBright: f2("\x1B[100m", "\x1B[49m"), + bgRedBright: f2("\x1B[101m", "\x1B[49m"), + bgGreenBright: f2("\x1B[102m", "\x1B[49m"), + bgYellowBright: f2("\x1B[103m", "\x1B[49m"), + bgBlueBright: f2("\x1B[104m", "\x1B[49m"), + bgMagentaBright: f2("\x1B[105m", "\x1B[49m"), + bgCyanBright: f2("\x1B[106m", "\x1B[49m"), + bgWhiteBright: f2("\x1B[107m", "\x1B[49m") + }; + }; + module.exports = createColors(); + module.exports.createColors = createColors; + } +}); + +// node_modules/.pnpm/@clack+core@0.3.4/node_modules/@clack/core/dist/index.mjs +var import_sisteransi = __toESM(require_src(), 1); +var import_picocolors = __toESM(require_picocolors(), 1); +import { stdin as $, stdout as k } from "node:process"; +import * as f from "node:readline"; +import _ from "node:readline"; +import { WriteStream as U } from "node:tty"; +function q({ onlyFirst: t = false } = {}) { + const u = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"); + return new RegExp(u, t ? void 0 : "g"); +} +function S(t) { + if (typeof t != "string") throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``); + return t.replace(q(), ""); +} +function j(t) { + return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; +} +var M = { exports: {} }; +(function(t) { + var u = {}; + t.exports = u, u.eastAsianWidth = function(e2) { + var s = e2.charCodeAt(0), C2 = e2.length == 2 ? e2.charCodeAt(1) : 0, D = s; + return 55296 <= s && s <= 56319 && 56320 <= C2 && C2 <= 57343 && (s &= 1023, C2 &= 1023, D = s << 10 | C2, D += 65536), D == 12288 || 65281 <= D && D <= 65376 || 65504 <= D && D <= 65510 ? "F" : D == 8361 || 65377 <= D && D <= 65470 || 65474 <= D && D <= 65479 || 65482 <= D && D <= 65487 || 65490 <= D && D <= 65495 || 65498 <= D && D <= 65500 || 65512 <= D && D <= 65518 ? "H" : 4352 <= D && D <= 4447 || 4515 <= D && D <= 4519 || 4602 <= D && D <= 4607 || 9001 <= D && D <= 9002 || 11904 <= D && D <= 11929 || 11931 <= D && D <= 12019 || 12032 <= D && D <= 12245 || 12272 <= D && D <= 12283 || 12289 <= D && D <= 12350 || 12353 <= D && D <= 12438 || 12441 <= D && D <= 12543 || 12549 <= D && D <= 12589 || 12593 <= D && D <= 12686 || 12688 <= D && D <= 12730 || 12736 <= D && D <= 12771 || 12784 <= D && D <= 12830 || 12832 <= D && D <= 12871 || 12880 <= D && D <= 13054 || 13056 <= D && D <= 19903 || 19968 <= D && D <= 42124 || 42128 <= D && D <= 42182 || 43360 <= D && D <= 43388 || 44032 <= D && D <= 55203 || 55216 <= D && D <= 55238 || 55243 <= D && D <= 55291 || 63744 <= D && D <= 64255 || 65040 <= D && D <= 65049 || 65072 <= D && D <= 65106 || 65108 <= D && D <= 65126 || 65128 <= D && D <= 65131 || 110592 <= D && D <= 110593 || 127488 <= D && D <= 127490 || 127504 <= D && D <= 127546 || 127552 <= D && D <= 127560 || 127568 <= D && D <= 127569 || 131072 <= D && D <= 194367 || 177984 <= D && D <= 196605 || 196608 <= D && D <= 262141 ? "W" : 32 <= D && D <= 126 || 162 <= D && D <= 163 || 165 <= D && D <= 166 || D == 172 || D == 175 || 10214 <= D && D <= 10221 || 10629 <= D && D <= 10630 ? "Na" : D == 161 || D == 164 || 167 <= D && D <= 168 || D == 170 || 173 <= D && D <= 174 || 176 <= D && D <= 180 || 182 <= D && D <= 186 || 188 <= D && D <= 191 || D == 198 || D == 208 || 215 <= D && D <= 216 || 222 <= D && D <= 225 || D == 230 || 232 <= D && D <= 234 || 236 <= D && D <= 237 || D == 240 || 242 <= D && D <= 243 || 247 <= D && D <= 250 || D == 252 || D == 254 || D == 257 || D == 273 || D == 275 || D == 283 || 294 <= D && D <= 295 || D == 299 || 305 <= D && D <= 307 || D == 312 || 319 <= D && D <= 322 || D == 324 || 328 <= D && D <= 331 || D == 333 || 338 <= D && D <= 339 || 358 <= D && D <= 359 || D == 363 || D == 462 || D == 464 || D == 466 || D == 468 || D == 470 || D == 472 || D == 474 || D == 476 || D == 593 || D == 609 || D == 708 || D == 711 || 713 <= D && D <= 715 || D == 717 || D == 720 || 728 <= D && D <= 731 || D == 733 || D == 735 || 768 <= D && D <= 879 || 913 <= D && D <= 929 || 931 <= D && D <= 937 || 945 <= D && D <= 961 || 963 <= D && D <= 969 || D == 1025 || 1040 <= D && D <= 1103 || D == 1105 || D == 8208 || 8211 <= D && D <= 8214 || 8216 <= D && D <= 8217 || 8220 <= D && D <= 8221 || 8224 <= D && D <= 8226 || 8228 <= D && D <= 8231 || D == 8240 || 8242 <= D && D <= 8243 || D == 8245 || D == 8251 || D == 8254 || D == 8308 || D == 8319 || 8321 <= D && D <= 8324 || D == 8364 || D == 8451 || D == 8453 || D == 8457 || D == 8467 || D == 8470 || 8481 <= D && D <= 8482 || D == 8486 || D == 8491 || 8531 <= D && D <= 8532 || 8539 <= D && D <= 8542 || 8544 <= D && D <= 8555 || 8560 <= D && D <= 8569 || D == 8585 || 8592 <= D && D <= 8601 || 8632 <= D && D <= 8633 || D == 8658 || D == 8660 || D == 8679 || D == 8704 || 8706 <= D && D <= 8707 || 8711 <= D && D <= 8712 || D == 8715 || D == 8719 || D == 8721 || D == 8725 || D == 8730 || 8733 <= D && D <= 8736 || D == 8739 || D == 8741 || 8743 <= D && D <= 8748 || D == 8750 || 8756 <= D && D <= 8759 || 8764 <= D && D <= 8765 || D == 8776 || D == 8780 || D == 8786 || 8800 <= D && D <= 8801 || 8804 <= D && D <= 8807 || 8810 <= D && D <= 8811 || 8814 <= D && D <= 8815 || 8834 <= D && D <= 8835 || 8838 <= D && D <= 8839 || D == 8853 || D == 8857 || D == 8869 || D == 8895 || D == 8978 || 9312 <= D && D <= 9449 || 9451 <= D && D <= 9547 || 9552 <= D && D <= 9587 || 9600 <= D && D <= 9615 || 9618 <= D && D <= 9621 || 9632 <= D && D <= 9633 || 9635 <= D && D <= 9641 || 9650 <= D && D <= 9651 || 9654 <= D && D <= 9655 || 9660 <= D && D <= 9661 || 9664 <= D && D <= 9665 || 9670 <= D && D <= 9672 || D == 9675 || 9678 <= D && D <= 9681 || 9698 <= D && D <= 9701 || D == 9711 || 9733 <= D && D <= 9734 || D == 9737 || 9742 <= D && D <= 9743 || 9748 <= D && D <= 9749 || D == 9756 || D == 9758 || D == 9792 || D == 9794 || 9824 <= D && D <= 9825 || 9827 <= D && D <= 9829 || 9831 <= D && D <= 9834 || 9836 <= D && D <= 9837 || D == 9839 || 9886 <= D && D <= 9887 || 9918 <= D && D <= 9919 || 9924 <= D && D <= 9933 || 9935 <= D && D <= 9953 || D == 9955 || 9960 <= D && D <= 9983 || D == 10045 || D == 10071 || 10102 <= D && D <= 10111 || 11093 <= D && D <= 11097 || 12872 <= D && D <= 12879 || 57344 <= D && D <= 63743 || 65024 <= D && D <= 65039 || D == 65533 || 127232 <= D && D <= 127242 || 127248 <= D && D <= 127277 || 127280 <= D && D <= 127337 || 127344 <= D && D <= 127386 || 917760 <= D && D <= 917999 || 983040 <= D && D <= 1048573 || 1048576 <= D && D <= 1114109 ? "A" : "N"; + }, u.characterLength = function(e2) { + var s = this.eastAsianWidth(e2); + return s == "F" || s == "W" || s == "A" ? 2 : 1; + }; + function F(e2) { + return e2.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; + } + u.length = function(e2) { + for (var s = F(e2), C2 = 0, D = 0; D < s.length; D++) C2 = C2 + this.characterLength(s[D]); + return C2; + }, u.slice = function(e2, s, C2) { + textLen = u.length(e2), s = s || 0, C2 = C2 || 1, s < 0 && (s = textLen + s), C2 < 0 && (C2 = textLen + C2); + for (var D = "", i = 0, n = F(e2), E2 = 0; E2 < n.length; E2++) { + var h2 = n[E2], o2 = u.length(h2); + if (i >= s - (o2 == 2 ? 1 : 0)) if (i + o2 <= C2) D += h2; + else break; + i += o2; + } + return D; + }; +})(M); +var J = M.exports; +var Q = j(J); +var X = function() { + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; +var DD = j(X); +function A(t, u = {}) { + if (typeof t != "string" || t.length === 0 || (u = { ambiguousIsNarrow: true, ...u }, t = S(t), t.length === 0)) return 0; + t = t.replace(DD(), " "); + const F = u.ambiguousIsNarrow ? 1 : 2; + let e2 = 0; + for (const s of t) { + const C2 = s.codePointAt(0); + if (C2 <= 31 || C2 >= 127 && C2 <= 159 || C2 >= 768 && C2 <= 879) continue; + switch (Q.eastAsianWidth(s)) { + case "F": + case "W": + e2 += 2; + break; + case "A": + e2 += F; + break; + default: + e2 += 1; + } + } + return e2; +} +var m = 10; +var T = (t = 0) => (u) => `\x1B[${u + t}m`; +var P = (t = 0) => (u) => `\x1B[${38 + t};5;${u}m`; +var W = (t = 0) => (u, F, e2) => `\x1B[${38 + t};2;${u};${F};${e2}m`; +var r = { modifier: { reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], overline: [53, 55], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], blackBright: [90, 39], gray: [90, 39], grey: [90, 39], redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], bgBlackBright: [100, 49], bgGray: [100, 49], bgGrey: [100, 49], bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; +Object.keys(r.modifier); +var uD = Object.keys(r.color); +var FD = Object.keys(r.bgColor); +[...uD, ...FD]; +function tD() { + const t = /* @__PURE__ */ new Map(); + for (const [u, F] of Object.entries(r)) { + for (const [e2, s] of Object.entries(F)) r[e2] = { open: `\x1B[${s[0]}m`, close: `\x1B[${s[1]}m` }, F[e2] = r[e2], t.set(s[0], s[1]); + Object.defineProperty(r, u, { value: F, enumerable: false }); + } + return Object.defineProperty(r, "codes", { value: t, enumerable: false }), r.color.close = "\x1B[39m", r.bgColor.close = "\x1B[49m", r.color.ansi = T(), r.color.ansi256 = P(), r.color.ansi16m = W(), r.bgColor.ansi = T(m), r.bgColor.ansi256 = P(m), r.bgColor.ansi16m = W(m), Object.defineProperties(r, { rgbToAnsi256: { value: (u, F, e2) => u === F && F === e2 ? u < 8 ? 16 : u > 248 ? 231 : Math.round((u - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(u / 255 * 5) + 6 * Math.round(F / 255 * 5) + Math.round(e2 / 255 * 5), enumerable: false }, hexToRgb: { value: (u) => { + const F = /[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16)); + if (!F) return [0, 0, 0]; + let [e2] = F; + e2.length === 3 && (e2 = [...e2].map((C2) => C2 + C2).join("")); + const s = Number.parseInt(e2, 16); + return [s >> 16 & 255, s >> 8 & 255, s & 255]; + }, enumerable: false }, hexToAnsi256: { value: (u) => r.rgbToAnsi256(...r.hexToRgb(u)), enumerable: false }, ansi256ToAnsi: { value: (u) => { + if (u < 8) return 30 + u; + if (u < 16) return 90 + (u - 8); + let F, e2, s; + if (u >= 232) F = ((u - 232) * 10 + 8) / 255, e2 = F, s = F; + else { + u -= 16; + const i = u % 36; + F = Math.floor(u / 36) / 5, e2 = Math.floor(i / 6) / 5, s = i % 6 / 5; + } + const C2 = Math.max(F, e2, s) * 2; + if (C2 === 0) return 30; + let D = 30 + (Math.round(s) << 2 | Math.round(e2) << 1 | Math.round(F)); + return C2 === 2 && (D += 60), D; + }, enumerable: false }, rgbToAnsi: { value: (u, F, e2) => r.ansi256ToAnsi(r.rgbToAnsi256(u, F, e2)), enumerable: false }, hexToAnsi: { value: (u) => r.ansi256ToAnsi(r.hexToAnsi256(u)), enumerable: false } }), r; +} +var eD = tD(); +var g = /* @__PURE__ */ new Set(["\x1B", "\x9B"]); +var sD = 39; +var b = "\x07"; +var O = "["; +var CD = "]"; +var I = "m"; +var w = `${CD}8;;`; +var N = (t) => `${g.values().next().value}${O}${t}${I}`; +var L = (t) => `${g.values().next().value}${w}${t}${b}`; +var iD = (t) => t.split(" ").map((u) => A(u)); +var y = (t, u, F) => { + const e2 = [...u]; + let s = false, C2 = false, D = A(S(t[t.length - 1])); + for (const [i, n] of e2.entries()) { + const E2 = A(n); + if (D + E2 <= F ? t[t.length - 1] += n : (t.push(n), D = 0), g.has(n) && (s = true, C2 = e2.slice(i + 1).join("").startsWith(w)), s) { + C2 ? n === b && (s = false, C2 = false) : n === I && (s = false); + continue; + } + D += E2, D === F && i < e2.length - 1 && (t.push(""), D = 0); + } + !D && t[t.length - 1].length > 0 && t.length > 1 && (t[t.length - 2] += t.pop()); +}; +var rD = (t) => { + const u = t.split(" "); + let F = u.length; + for (; F > 0 && !(A(u[F - 1]) > 0); ) F--; + return F === u.length ? t : u.slice(0, F).join(" ") + u.slice(F).join(""); +}; +var ED = (t, u, F = {}) => { + if (F.trim !== false && t.trim() === "") return ""; + let e2 = "", s, C2; + const D = iD(t); + let i = [""]; + for (const [E2, h2] of t.split(" ").entries()) { + F.trim !== false && (i[i.length - 1] = i[i.length - 1].trimStart()); + let o2 = A(i[i.length - 1]); + if (E2 !== 0 && (o2 >= u && (F.wordWrap === false || F.trim === false) && (i.push(""), o2 = 0), (o2 > 0 || F.trim === false) && (i[i.length - 1] += " ", o2++)), F.hard && D[E2] > u) { + const B2 = u - o2, p = 1 + Math.floor((D[E2] - B2 - 1) / u); + Math.floor((D[E2] - 1) / u) < p && i.push(""), y(i, h2, u); + continue; + } + if (o2 + D[E2] > u && o2 > 0 && D[E2] > 0) { + if (F.wordWrap === false && o2 < u) { + y(i, h2, u); + continue; + } + i.push(""); + } + if (o2 + D[E2] > u && F.wordWrap === false) { + y(i, h2, u); + continue; + } + i[i.length - 1] += h2; + } + F.trim !== false && (i = i.map((E2) => rD(E2))); + const n = [...i.join(` +`)]; + for (const [E2, h2] of n.entries()) { + if (e2 += h2, g.has(h2)) { + const { groups: B2 } = new RegExp(`(?:\\${O}(?\\d+)m|\\${w}(?.*)${b})`).exec(n.slice(E2).join("")) || { groups: {} }; + if (B2.code !== void 0) { + const p = Number.parseFloat(B2.code); + s = p === sD ? void 0 : p; + } else B2.uri !== void 0 && (C2 = B2.uri.length === 0 ? void 0 : B2.uri); + } + const o2 = eD.codes.get(Number(s)); + n[E2 + 1] === ` +` ? (C2 && (e2 += L("")), s && o2 && (e2 += N(o2))) : h2 === ` +` && (s && o2 && (e2 += N(s)), C2 && (e2 += L(C2))); + } + return e2; +}; +function R(t, u, F) { + return String(t).normalize().replace(/\r\n/g, ` +`).split(` +`).map((e2) => ED(e2, u, F)).join(` +`); +} +var oD = Object.defineProperty; +var nD = (t, u, F) => u in t ? oD(t, u, { enumerable: true, configurable: true, writable: true, value: F }) : t[u] = F; +var a = (t, u, F) => (nD(t, typeof u != "symbol" ? u + "" : u, F), F); +function aD(t, u) { + if (t === u) return; + const F = t.split(` +`), e2 = u.split(` +`), s = []; + for (let C2 = 0; C2 < Math.max(F.length, e2.length); C2++) F[C2] !== e2[C2] && s.push(C2); + return s; +} +var V = Symbol("clack:cancel"); +function v(t, u) { + t.isTTY && t.setRawMode(u); +} +var z = /* @__PURE__ */ new Map([["k", "up"], ["j", "down"], ["h", "left"], ["l", "right"]]); +var lD = /* @__PURE__ */ new Set(["up", "down", "left", "right", "space", "enter"]); +var x = class { + constructor({ render: u, input: F = $, output: e2 = k, ...s }, C2 = true) { + a(this, "input"), a(this, "output"), a(this, "rl"), a(this, "opts"), a(this, "_track", false), a(this, "_render"), a(this, "_cursor", 0), a(this, "state", "initial"), a(this, "value"), a(this, "error", ""), a(this, "subscribers", /* @__PURE__ */ new Map()), a(this, "_prevFrame", ""), this.opts = s, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = u.bind(this), this._track = C2, this.input = F, this.output = e2; + } + prompt() { + const u = new U(0); + return u._write = (F, e2, s) => { + this._track && (this.value = this.rl.line.replace(/\t/g, ""), this._cursor = this.rl.cursor, this.emit("value", this.value)), s(); + }, this.input.pipe(u), this.rl = _.createInterface({ input: this.input, output: u, tabSize: 2, prompt: "", escapeCodeTimeout: 50 }), _.emitKeypressEvents(this.input, this.rl), this.rl.prompt(), this.opts.initialValue !== void 0 && this._track && this.rl.write(this.opts.initialValue), this.input.on("keypress", this.onKeypress), v(this.input, true), this.output.on("resize", this.render), this.render(), new Promise((F, e2) => { + this.once("submit", () => { + this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), v(this.input, false), F(this.value); + }), this.once("cancel", () => { + this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), v(this.input, false), F(V); + }); + }); + } + on(u, F) { + const e2 = this.subscribers.get(u) ?? []; + e2.push({ cb: F }), this.subscribers.set(u, e2); + } + once(u, F) { + const e2 = this.subscribers.get(u) ?? []; + e2.push({ cb: F, once: true }), this.subscribers.set(u, e2); + } + emit(u, ...F) { + const e2 = this.subscribers.get(u) ?? [], s = []; + for (const C2 of e2) C2.cb(...F), C2.once && s.push(() => e2.splice(e2.indexOf(C2), 1)); + for (const C2 of s) C2(); + } + unsubscribe() { + this.subscribers.clear(); + } + onKeypress(u, F) { + if (this.state === "error" && (this.state = "active"), F?.name && !this._track && z.has(F.name) && this.emit("cursor", z.get(F.name)), F?.name && lD.has(F.name) && this.emit("cursor", F.name), u && (u.toLowerCase() === "y" || u.toLowerCase() === "n") && this.emit("confirm", u.toLowerCase() === "y"), u === " " && this.opts.placeholder && (this.value || (this.rl.write(this.opts.placeholder), this.emit("value", this.opts.placeholder))), u && this.emit("key", u.toLowerCase()), F?.name === "return") { + if (this.opts.validate) { + const e2 = this.opts.validate(this.value); + e2 && (this.error = e2, this.state = "error", this.rl.write(this.value)); + } + this.state !== "error" && (this.state = "submit"); + } + u === "" && (this.state = "cancel"), (this.state === "submit" || this.state === "cancel") && this.emit("finalize"), this.render(), (this.state === "submit" || this.state === "cancel") && this.close(); + } + close() { + this.input.unpipe(), this.input.removeListener("keypress", this.onKeypress), this.output.write(` +`), v(this.input, false), this.rl.close(), this.emit(`${this.state}`, this.value), this.unsubscribe(); + } + restoreCursor() { + const u = R(this._prevFrame, process.stdout.columns, { hard: true }).split(` +`).length - 1; + this.output.write(import_sisteransi.cursor.move(-999, u * -1)); + } + render() { + const u = R(this._render(this) ?? "", process.stdout.columns, { hard: true }); + if (u !== this._prevFrame) { + if (this.state === "initial") this.output.write(import_sisteransi.cursor.hide); + else { + const F = aD(this._prevFrame, u); + if (this.restoreCursor(), F && F?.length === 1) { + const e2 = F[0]; + this.output.write(import_sisteransi.cursor.move(0, e2)), this.output.write(import_sisteransi.erase.lines(1)); + const s = u.split(` +`); + this.output.write(s[e2]), this._prevFrame = u, this.output.write(import_sisteransi.cursor.move(0, s.length - e2 - 1)); + return; + } else if (F && F?.length > 1) { + const e2 = F[0]; + this.output.write(import_sisteransi.cursor.move(0, e2)), this.output.write(import_sisteransi.erase.down()); + const s = u.split(` +`).slice(e2); + this.output.write(s.join(` +`)), this._prevFrame = u; + return; + } + this.output.write(import_sisteransi.erase.down()); + } + this.output.write(u), this.state === "initial" && (this.state = "active"), this._prevFrame = u; + } + } +}; +var xD = class extends x { + get cursor() { + return this.value ? 0 : 1; + } + get _value() { + return this.cursor === 0; + } + constructor(u) { + super(u, false), this.value = !!u.initialValue, this.on("value", () => { + this.value = this._value; + }), this.on("confirm", (F) => { + this.output.write(import_sisteransi.cursor.move(0, -1)), this.value = F, this.state = "submit", this.close(); + }), this.on("cursor", () => { + this.value = !this.value; + }); + } +}; +var SD = Object.defineProperty; +var jD = (t, u, F) => u in t ? SD(t, u, { enumerable: true, configurable: true, writable: true, value: F }) : t[u] = F; +var MD = (t, u, F) => (jD(t, typeof u != "symbol" ? u + "" : u, F), F); +var TD = class extends x { + constructor(u) { + super(u), MD(this, "valueWithCursor", ""), this.on("finalize", () => { + this.value || (this.value = u.defaultValue), this.valueWithCursor = this.value; + }), this.on("value", () => { + if (this.cursor >= this.value.length) this.valueWithCursor = `${this.value}${import_picocolors.default.inverse(import_picocolors.default.hidden("_"))}`; + else { + const F = this.value.slice(0, this.cursor), e2 = this.value.slice(this.cursor); + this.valueWithCursor = `${F}${import_picocolors.default.inverse(e2[0])}${e2.slice(1)}`; + } + }); + } + get cursor() { + return this._cursor; + } +}; +var PD = globalThis.process.platform.startsWith("win"); +function WD({ input: t = $, output: u = k, overwrite: F = true, hideCursor: e2 = true } = {}) { + const s = f.createInterface({ input: t, output: u, prompt: "", tabSize: 1 }); + f.emitKeypressEvents(t, s), t.isTTY && t.setRawMode(true); + const C2 = (D, { name: i }) => { + if (String(D) === "" && process.exit(0), !F) return; + let n = i === "return" ? 0 : -1, E2 = i === "return" ? -1 : 0; + f.moveCursor(u, n, E2, () => { + f.clearLine(u, 1, () => { + t.once("keypress", C2); + }); + }); + }; + return e2 && process.stdout.write(import_sisteransi.cursor.hide), t.once("keypress", C2), () => { + t.off("keypress", C2), e2 && process.stdout.write(import_sisteransi.cursor.show), t.isTTY && !PD && t.setRawMode(false), s.terminal = false, s.close(); + }; +} + +// node_modules/.pnpm/@clack+prompts@0.7.0/node_modules/@clack/prompts/dist/index.mjs +var import_picocolors2 = __toESM(require_picocolors(), 1); +var import_sisteransi2 = __toESM(require_src(), 1); +import h from "node:process"; +function q2() { + return h.platform !== "win32" ? h.env.TERM !== "linux" : Boolean(h.env.CI) || Boolean(h.env.WT_SESSION) || Boolean(h.env.TERMINUS_SUBLIME) || h.env.ConEmuTask === "{cmd::Cmder}" || h.env.TERM_PROGRAM === "Terminus-Sublime" || h.env.TERM_PROGRAM === "vscode" || h.env.TERM === "xterm-256color" || h.env.TERM === "alacritty" || h.env.TERMINAL_EMULATOR === "JetBrains-JediTerm"; +} +var _2 = q2(); +var o = (r2, n) => _2 ? r2 : n; +var H = o("\u25C6", "*"); +var I2 = o("\u25A0", "x"); +var x2 = o("\u25B2", "x"); +var S2 = o("\u25C7", "o"); +var K = o("\u250C", "T"); +var a2 = o("\u2502", "|"); +var d2 = o("\u2514", "\u2014"); +var b2 = o("\u25CF", ">"); +var E = o("\u25CB", " "); +var C = o("\u25FB", "[\u2022]"); +var w2 = o("\u25FC", "[+]"); +var M2 = o("\u25FB", "[ ]"); +var U2 = o("\u25AA", "\u2022"); +var B = o("\u2500", "-"); +var Z = o("\u256E", "+"); +var z2 = o("\u251C", "+"); +var X2 = o("\u256F", "+"); +var J2 = o("\u25CF", "\u2022"); +var Y = o("\u25C6", "*"); +var Q2 = o("\u25B2", "!"); +var ee = o("\u25A0", "x"); +var y2 = (r2) => { + switch (r2) { + case "initial": + case "active": + return import_picocolors2.default.cyan(H); + case "cancel": + return import_picocolors2.default.red(I2); + case "error": + return import_picocolors2.default.yellow(x2); + case "submit": + return import_picocolors2.default.green(S2); + } +}; +var te = (r2) => new TD({ validate: r2.validate, placeholder: r2.placeholder, defaultValue: r2.defaultValue, initialValue: r2.initialValue, render() { + const n = `${import_picocolors2.default.gray(a2)} +${y2(this.state)} ${r2.message} +`, i = r2.placeholder ? import_picocolors2.default.inverse(r2.placeholder[0]) + import_picocolors2.default.dim(r2.placeholder.slice(1)) : import_picocolors2.default.inverse(import_picocolors2.default.hidden("_")), t = this.value ? this.valueWithCursor : i; + switch (this.state) { + case "error": + return `${n.trim()} +${import_picocolors2.default.yellow(a2)} ${t} +${import_picocolors2.default.yellow(d2)} ${import_picocolors2.default.yellow(this.error)} +`; + case "submit": + return `${n}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.dim(this.value || r2.placeholder)}`; + case "cancel": + return `${n}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(this.value ?? ""))}${this.value?.trim() ? ` +` + import_picocolors2.default.gray(a2) : ""}`; + default: + return `${n}${import_picocolors2.default.cyan(a2)} ${t} +${import_picocolors2.default.cyan(d2)} +`; + } +} }).prompt(); +var se = (r2) => { + const n = r2.active ?? "Yes", i = r2.inactive ?? "No"; + return new xD({ active: n, inactive: i, initialValue: r2.initialValue ?? true, render() { + const t = `${import_picocolors2.default.gray(a2)} +${y2(this.state)} ${r2.message} +`, s = this.value ? n : i; + switch (this.state) { + case "submit": + return `${t}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.dim(s)}`; + case "cancel": + return `${t}${import_picocolors2.default.gray(a2)} ${import_picocolors2.default.strikethrough(import_picocolors2.default.dim(s))} +${import_picocolors2.default.gray(a2)}`; + default: + return `${t}${import_picocolors2.default.cyan(a2)} ${this.value ? `${import_picocolors2.default.green(b2)} ${n}` : `${import_picocolors2.default.dim(E)} ${import_picocolors2.default.dim(n)}`} ${import_picocolors2.default.dim("/")} ${this.value ? `${import_picocolors2.default.dim(E)} ${import_picocolors2.default.dim(i)}` : `${import_picocolors2.default.green(b2)} ${i}`} +${import_picocolors2.default.cyan(d2)} +`; + } + } }).prompt(); +}; +var oe = (r2 = "") => { + process.stdout.write(`${import_picocolors2.default.gray(K)} ${r2} +`); +}; +var $e = (r2 = "") => { + process.stdout.write(`${import_picocolors2.default.gray(a2)} +${import_picocolors2.default.gray(d2)} ${r2} + +`); +}; +var de = () => { + const r2 = _2 ? ["\u25D2", "\u25D0", "\u25D3", "\u25D1"] : ["\u2022", "o", "O", "0"], n = _2 ? 80 : 120; + let i, t, s = false, c2 = ""; + const l2 = (v2 = "") => { + s = true, i = WD(), c2 = v2.replace(/\.+$/, ""), process.stdout.write(`${import_picocolors2.default.gray(a2)} +`); + let g2 = 0, p = 0; + t = setInterval(() => { + const O2 = import_picocolors2.default.magenta(r2[g2]), P2 = ".".repeat(Math.floor(p)).slice(0, 3); + process.stdout.write(import_sisteransi2.cursor.move(-999, 0)), process.stdout.write(import_sisteransi2.erase.down(1)), process.stdout.write(`${O2} ${c2}${P2}`), g2 = g2 + 1 < r2.length ? g2 + 1 : 0, p = p < r2.length ? p + 0.125 : 0; + }, n); + }, u = (v2 = "", g2 = 0) => { + c2 = v2 ?? c2, s = false, clearInterval(t); + const p = g2 === 0 ? import_picocolors2.default.green(S2) : g2 === 1 ? import_picocolors2.default.red(I2) : import_picocolors2.default.red(x2); + process.stdout.write(import_sisteransi2.cursor.move(-999, 0)), process.stdout.write(import_sisteransi2.erase.down(1)), process.stdout.write(`${p} ${c2} +`), i(); + }, m2 = (v2 = "") => { + c2 = v2 ?? c2; + }, $2 = (v2) => { + const g2 = v2 > 1 ? "Something went wrong" : "Canceled"; + s && u(g2, v2); + }; + return process.on("uncaughtExceptionMonitor", () => $2(2)), process.on("unhandledRejection", () => $2(2)), process.on("SIGINT", () => $2(1)), process.on("SIGTERM", () => $2(1)), process.on("exit", $2), { start: l2, stop: u, message: m2 }; +}; + +// bin/get-started.ts import fs from "fs"; import { execSync } from "child_process"; import path from "path"; import { fileURLToPath } from "url"; import waitOn from "wait-on"; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); -const packageRoot = path.join(__dirname, ".."); + +// package.json +var package_default = { + name: "@restackio/get-started", + version: "1.0.4", + description: "Get started with Restack AI SDK", + bin: { + "get-started": "bin/get-started.mjs" + }, + files: [ + "bin", + "src", + "scheduleWorkflow.ts", + "readme.md", + "tsconfig.json" + ], + keywords: [ + "restack", + "starter", + "template" + ], + license: "MIT", + dependencies: { + "@restackio/ai": "^0.0.75", + "@temporalio/workflow": "^1.11.2", + nodemon: "^2.0.22", + "ts-node": "^10.9.2", + typescript: "^5.6.2", + "wait-on": "^8.0.1" + }, + scripts: { + "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", + service: "ts-node src/services.ts", + schedule: "ts-node scheduleWorkflow.ts" + }, + devDependencies: { + "@clack/prompts": "^0.7.0", + tsup: "8.3.0" + } +}; + +// bin/get-started.ts +var __filename = fileURLToPath(import.meta.url); +var __dirname = path.dirname(__filename); +var packageRoot = path.join(__dirname, ".."); async function main() { - clack.intro("Welcome Restack Get started"); + oe("Welcome Restack Get started"); const currentDir = process.cwd(); let targetDir; - const projectName = await clack.text({ + const projectName = await te({ message: "Enter the project folder name:", defaultValue: "restack-get-started", initialValue: "restack-get-started", @@ -22,12 +677,15 @@ async function main() { }); if (projectName) { targetDir = path.join(currentDir, projectName); - const filesToCopy = ["src", "scheduleWorkflow.ts", "tsconfig.json", "package.json"]; + const filesToCopy = ["src", "scheduleWorkflow.ts", "tsconfig.json"]; filesToCopy.forEach((file) => { fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); }); + delete package_default.bin; + delete package_default.files; + fs.writeFileSync(path.join(targetDir, "package.json"), JSON.stringify(package_default, null, 2)); } - const installDependencies = await clack.confirm({ + const installDependencies = await se({ message: "Install dependencies?", initialValue: true }); @@ -35,7 +693,7 @@ async function main() { console.log("Installing dependencies..."); execSync("npm install", { stdio: "inherit", cwd: targetDir }); } - const startRestack = await clack.confirm({ + const startRestack = await se({ message: "Start Restack Engine?", initialValue: true }); @@ -45,12 +703,12 @@ async function main() { execSync("docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/engine:main", { stdio: "inherit", cwd: currentDir }); console.log(`Restack Engine Studio started on http://localhost:5233`); } - const openRestack = await clack.confirm({ + const openRestack = await se({ message: "Open Restack Engine Studio?", initialValue: true }); if (openRestack) { - const s = clack.spinner(); + const s = de(); s.start("Waiting for Restack Engine Studio to start"); await waitOn({ resources: ["http://localhost:5233"] }); s.stop(); @@ -58,7 +716,7 @@ async function main() { } const blue = "\x1B[34m"; const noColor = "\x1B[0m"; - clack.outro(` + $e(` Project created successfully! We suggest that you begin with following commands: diff --git a/examples/get-started/bin/get-started.ts b/examples/get-started/bin/get-started.ts index 2bfb642..a527855 100644 --- a/examples/get-started/bin/get-started.ts +++ b/examples/get-started/bin/get-started.ts @@ -6,6 +6,9 @@ import path from 'path'; import { fileURLToPath } from 'url'; import waitOn from 'wait-on'; +// @ts-ignore +import packageJson from '../package.json'; + // @ts-ignore const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); @@ -29,10 +32,15 @@ async function main() { if (projectName) { targetDir = path.join(currentDir, projectName); - const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json', 'package.json']; + const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; filesToCopy.forEach(file => { fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); }); + + // Copy package.json separately and modify it + delete packageJson.bin; + delete packageJson.files; + fs.writeFileSync(path.join(targetDir, 'package.json'), JSON.stringify(packageJson, null, 2)); } const installDependencies = (await clack.confirm({ @@ -64,7 +72,7 @@ async function main() { if (openRestack) { const s = clack.spinner(); - s.start('Waiting for Restack Engine Studio to be ready...'); + s.start('Waiting for Restack Engine Studio to start'); await waitOn({ resources: ['http://localhost:5233'] }); s.stop(); execSync('open http://localhost:5233', { stdio: 'inherit', cwd: targetDir }); diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index a755a85..448b286 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -1,12 +1,12 @@ { "name": "@restackio/get-started", - "version": "1.0.6", + "version": "1.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@restackio/get-started", - "version": "1.0.6", + "version": "1.0.4", "license": "MIT", "dependencies": { "@restackio/ai": "^0.0.75", @@ -21,10 +21,7 @@ }, "devDependencies": { "@clack/prompts": "^0.7.0", - "esbuild": "^0.24.0" - }, - "engines": { - "node": ">=20" + "tsup": "8.3.0" } }, "node_modules/@clack/core": { @@ -79,9 +76,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", - "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", "cpu": [ "ppc64" ], @@ -96,9 +93,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", "cpu": [ "arm" ], @@ -113,9 +110,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", "cpu": [ "arm64" ], @@ -130,9 +127,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", "cpu": [ "x64" ], @@ -147,9 +144,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", - "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", "cpu": [ "arm64" ], @@ -164,9 +161,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", "cpu": [ "x64" ], @@ -181,9 +178,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", "cpu": [ "arm64" ], @@ -198,9 +195,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", "cpu": [ "x64" ], @@ -215,9 +212,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", "cpu": [ "arm" ], @@ -232,9 +229,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", "cpu": [ "arm64" ], @@ -249,9 +246,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", "cpu": [ "ia32" ], @@ -266,9 +263,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", "cpu": [ "loong64" ], @@ -283,9 +280,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", "cpu": [ "mips64el" ], @@ -300,9 +297,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", "cpu": [ "ppc64" ], @@ -317,9 +314,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", "cpu": [ "riscv64" ], @@ -334,9 +331,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", "cpu": [ "s390x" ], @@ -351,9 +348,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", "cpu": [ "x64" ], @@ -368,9 +365,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", "cpu": [ "x64" ], @@ -385,9 +382,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", - "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", "cpu": [ "arm64" ], @@ -402,9 +399,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", "cpu": [ "x64" ], @@ -419,9 +416,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", "cpu": [ "x64" ], @@ -436,9 +433,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", "cpu": [ "arm64" ], @@ -453,9 +450,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", "cpu": [ "ia32" ], @@ -470,9 +467,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", "cpu": [ "x64" ], @@ -532,6 +529,24 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -674,6 +689,17 @@ "tslib": "2" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -752,6 +778,230 @@ "node": ">=20" } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -1356,6 +1606,39 @@ "ajv": "^6.9.1" } }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -1470,6 +1753,32 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, + "node_modules/bundle-require": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz", + "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001669", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", @@ -1649,18 +1958,76 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "license": "MIT" }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -1694,12 +2061,26 @@ "node": ">=0.3.1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { "version": "1.5.41", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", "license": "ISC" }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, "node_modules/enhanced-resolve": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", @@ -1720,9 +2101,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", - "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1733,30 +2114,30 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" } }, "node_modules/escalade": { @@ -1829,6 +2210,30 @@ "node": ">=0.8.x" } }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1873,6 +2278,36 @@ } } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -1916,6 +2351,40 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -1934,6 +2403,32 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1958,6 +2453,16 @@ "node": ">=10.0.0" } }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/hyperdyperid": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", @@ -2036,6 +2541,19 @@ "node": ">=0.12.0" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", @@ -2045,6 +2563,22 @@ "node": ">=16" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -2072,6 +2606,16 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -2084,6 +2628,36 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "license": "MIT" }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -2105,12 +2679,26 @@ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "license": "MIT" }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true, + "license": "MIT" + }, "node_modules/long": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", "license": "Apache-2.0" }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -2163,6 +2751,16 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2184,6 +2782,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "3.0.0-canary.1", "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.1.tgz", @@ -2193,6 +2801,18 @@ "node": ">=12.13" } }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -2263,6 +2883,79 @@ "node": ">=0.10.0" } }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -2281,6 +2974,59 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, "node_modules/proto3-json-serializer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", @@ -2368,6 +3114,52 @@ "node": ">=0.10.0" } }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -2439,6 +3231,36 @@ "randombytes": "^2.1.0" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", @@ -2524,11 +3346,148 @@ "node": ">=0.10.0" } }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2629,6 +3588,29 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/thingies": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", @@ -2641,6 +3623,48 @@ "tslib": "^2" } }, + "node_modules/tinyglobby": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.9.tgz", + "integrity": "sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.0", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2662,6 +3686,16 @@ "nodetouch": "bin/nodetouch.js" } }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/tree-dump": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", @@ -2678,6 +3712,23 @@ "tslib": "2" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -2733,6 +3784,96 @@ "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", "license": "0BSD" }, + "node_modules/tsup": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", + "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-require": "^5.0.0", + "cac": "^6.7.14", + "chokidar": "^3.6.0", + "consola": "^3.2.3", + "debug": "^4.3.5", + "esbuild": "^0.23.0", + "execa": "^5.1.1", + "joycon": "^3.1.1", + "picocolors": "^1.0.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.19.0", + "source-map": "0.8.0-beta.0", + "sucrase": "^3.35.0", + "tinyglobby": "^0.2.1", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tsup/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", @@ -2856,6 +3997,13 @@ "node": ">=10.13.0" } }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/webpack": { "version": "5.95.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", @@ -2911,6 +4059,18 @@ "node": ">=10.13.0" } }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -2926,6 +4086,104 @@ "node": "^16.13.0 || >=18.0.0" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 0a90f2b..62d4541 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.6", + "version": "1.0.5", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" @@ -26,16 +26,13 @@ "typescript": "^5.6.2", "wait-on": "^8.0.1" }, - "engines": { - "node": ">=20" - }, "scripts": { - "build-bin": "pnpm esbuild bin/get-started.ts --outfile=bin/get-started.mjs --format=esm", + "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", "service": "ts-node src/services.ts", "schedule": "ts-node scheduleWorkflow.ts" }, "devDependencies": { "@clack/prompts": "^0.7.0", - "esbuild": "^0.24.0" + "tsup": "8.3.0" } } diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index 2fd44c9..59b8331 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@restackio/ai': specifier: ^0.0.75 - version: 0.0.75(esbuild@0.24.0) + version: 0.0.75(esbuild@0.23.1) '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.3 @@ -30,9 +30,9 @@ importers: '@clack/prompts': specifier: ^0.7.0 version: 0.7.0 - esbuild: - specifier: ^0.24.0 - version: 0.24.0 + tsup: + specifier: 8.3.0 + version: 8.3.0(@swc/core@1.7.36)(typescript@5.6.3) packages: @@ -48,146 +48,146 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -207,6 +207,10 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -252,6 +256,10 @@ packages: peerDependencies: tslib: '2' + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -286,6 +294,86 @@ packages: resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} engines: {node: '>=20'} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + '@sideway/address@4.1.5': resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} @@ -494,10 +582,21 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -524,6 +623,9 @@ packages: brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -536,6 +638,16 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + caniuse-lite@1.0.30001669: resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} @@ -569,12 +681,24 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -583,6 +707,15 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -591,12 +724,18 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + electron-to-chromium@1.5.41: resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -604,8 +743,8 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} hasBin: true @@ -637,12 +776,24 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -656,6 +807,10 @@ packages: debug: optional: true + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + form-data@4.0.1: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} @@ -672,6 +827,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -679,6 +838,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -694,6 +857,10 @@ packages: resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} engines: {node: '>=10.0.0'} + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -725,10 +892,20 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -736,12 +913,27 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -749,12 +941,18 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -773,12 +971,24 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -786,6 +996,9 @@ packages: resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} engines: {node: '>=12.13'} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -801,6 +1014,29 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -808,6 +1044,32 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + proto3-json-serializer@2.0.2: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} @@ -837,6 +1099,15 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -861,6 +1132,21 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-update-notifier@1.1.0: resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} engines: {node: '>=8.10.0'} @@ -889,14 +1175,35 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -936,12 +1243,23 @@ packages: engines: {node: '>=10'} hasBin: true + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 + tinyglobby@0.2.9: + resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} + engines: {node: '>=12.0.0'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -950,12 +1268,22 @@ packages: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + tree-dump@1.0.2: resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -973,6 +1301,25 @@ packages: tslib@2.8.0: resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + tsup@8.3.0: + resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} @@ -1012,6 +1359,9 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -1026,6 +1376,14 @@ packages: webpack-cli: optional: true + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + which@4.0.0: resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} engines: {node: ^16.13.0 || >=18.0.0} @@ -1035,6 +1393,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -1068,76 +1430,76 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@esbuild/aix-ppc64@0.24.0': + '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.24.0': + '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.24.0': + '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.24.0': + '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.24.0': + '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.24.0': + '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.24.0': + '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.24.0': + '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.24.0': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.24.0': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.24.0': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.24.0': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.24.0': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.24.0': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.24.0': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.24.0': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.24.0': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.24.0': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.24.0': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.24.0': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.24.0': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.24.0': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-ia32@0.24.0': + '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-x64@0.24.0': + '@esbuild/win32-x64@0.23.1': optional: true '@grpc/grpc-js@1.12.2': @@ -1158,6 +1520,15 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -1203,6 +1574,9 @@ snapshots: dependencies: tslib: 2.8.0 + '@pkgjs/parseargs@0.11.0': + optional: true + '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -1226,11 +1600,11 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/ai@0.0.75(esbuild@0.24.0)': + '@restackio/ai@0.0.75(esbuild@0.23.1)': dependencies: '@temporalio/activity': 1.11.3 '@temporalio/client': 1.11.3 - '@temporalio/worker': 1.11.3(esbuild@0.24.0) + '@temporalio/worker': 1.11.3(esbuild@0.23.1) '@temporalio/workflow': 1.11.3 transitivePeerDependencies: - '@swc/helpers' @@ -1238,6 +1612,54 @@ snapshots: - uglify-js - webpack-cli + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 @@ -1331,7 +1753,7 @@ snapshots: long: 5.2.3 protobufjs: 7.4.0 - '@temporalio/worker@1.11.3(esbuild@0.24.0)': + '@temporalio/worker@1.11.3(esbuild@0.23.1)': dependencies: '@swc/core': 1.7.36 '@temporalio/activity': 1.11.3 @@ -1345,11 +1767,11 @@ snapshots: memfs: 4.14.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)) + swc-loader: 0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) unionfs: 4.5.4 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1484,10 +1906,16 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -1516,6 +1944,10 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -1529,6 +1961,13 @@ snapshots: buffer-from@1.1.2: {} + bundle-require@5.0.0(esbuild@0.23.1): + dependencies: + esbuild: 0.23.1 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} + caniuse-lite@1.0.30001669: {} cargo-cp-artifact@0.1.9: {} @@ -1565,24 +2004,42 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + concat-map@0.0.1: {} + consola@3.2.3: {} + create-require@1.1.1: {} + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + debug@3.2.7(supports-color@5.5.0): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 5.5.0 + debug@4.3.7: + dependencies: + ms: 2.1.3 + delayed-stream@1.0.0: {} diff@4.0.2: {} + eastasianwidth@0.2.0: {} + electron-to-chromium@1.5.41: {} emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -1590,32 +2047,32 @@ snapshots: es-module-lexer@1.5.4: {} - esbuild@0.24.0: + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 escalade@3.2.0: {} @@ -1636,16 +2093,37 @@ snapshots: events@3.3.0: {} + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + fast-deep-equal@3.1.3: {} fast-json-stable-stringify@2.1.0: {} + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 follow-redirects@1.15.9: {} + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + form-data@4.0.1: dependencies: asynckit: 0.4.0 @@ -1659,12 +2137,23 @@ snapshots: get-caller-file@2.0.5: {} + get-stream@6.0.1: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 glob-to-regexp@0.4.1: {} + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + graceful-fs@4.2.11: {} has-flag@3.0.0: {} @@ -1673,6 +2162,8 @@ snapshots: heap-js@2.5.0: {} + human-signals@2.1.0: {} + hyperdyperid@1.2.0: {} iconv-lite@0.6.3: @@ -1695,8 +2186,18 @@ snapshots: is-number@7.0.0: {} + is-stream@2.0.1: {} + + isexe@2.0.0: {} + isexe@3.1.1: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jest-worker@27.5.1: dependencies: '@types/node': 22.7.7 @@ -1711,18 +2212,30 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + joycon@3.1.1: {} + json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + load-tsconfig@0.2.5: {} + loader-runner@4.3.0: {} lodash.camelcase@4.3.0: {} + lodash.sortby@4.7.0: {} + lodash@4.17.21: {} long@5.2.3: {} + lru-cache@10.4.3: {} + make-error@1.3.6: {} memfs@4.14.0: @@ -1740,16 +2253,30 @@ snapshots: dependencies: mime-db: 1.52.0 + mimic-fn@2.1.0: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} + minipass@7.1.2: {} + ms@2.1.3: {} ms@3.0.0-canary.1: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + neo-async@2.6.2: {} node-releases@2.0.18: {} @@ -1769,10 +2296,37 @@ snapshots: normalize-path@3.0.0: {} + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + object-assign@4.1.1: {} + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + package-json-from-dist@1.0.1: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.2: {} + + pirates@4.0.6: {} + + postcss-load-config@6.0.1: + dependencies: + lilconfig: 3.1.2 + proto3-json-serializer@2.0.2: dependencies: protobufjs: 7.4.0 @@ -1808,6 +2362,30 @@ snapshots: require-directory@2.1.1: {} + resolve-from@5.0.0: {} + + rollup@4.24.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 + rxjs@7.8.1: dependencies: tslib: 2.8.0 @@ -1830,6 +2408,16 @@ snapshots: dependencies: randombytes: 2.1.0 + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + simple-update-notifier@1.1.0: dependencies: semver: 7.0.0 @@ -1838,11 +2426,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) source-map-support@0.5.21: dependencies: @@ -1853,16 +2441,42 @@ snapshots: source-map@0.7.4: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-final-newline@2.0.0: {} + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -1871,25 +2485,25 @@ snapshots: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)): + swc-loader@0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): dependencies: '@swc/core': 1.7.36 '@swc/counter': 0.1.3 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.36)(esbuild@0.24.0)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.24.0) + webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) optionalDependencies: '@swc/core': 1.7.36 - esbuild: 0.24.0 + esbuild: 0.23.1 terser@5.36.0: dependencies: @@ -1898,20 +2512,41 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thingies@1.21.0(tslib@2.8.0): dependencies: tslib: 2.8.0 + tinyglobby@0.2.9: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 touch@3.1.1: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + tree-dump@1.0.2(tslib@2.8.0): dependencies: tslib: 2.8.0 + tree-kill@1.2.2: {} + + ts-interface-checker@0.1.13: {} + ts-node@10.9.2(@swc/core@1.7.36)(@types/node@22.7.7)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -1934,6 +2569,33 @@ snapshots: tslib@2.8.0: {} + tsup@8.3.0(@swc/core@1.7.36)(typescript@5.6.3): + dependencies: + bundle-require: 5.0.0(esbuild@0.23.1) + cac: 6.7.14 + chokidar: 3.6.0 + consola: 3.2.3 + debug: 4.3.7 + esbuild: 0.23.1 + execa: 5.1.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1 + resolve-from: 5.0.0 + rollup: 4.24.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyglobby: 0.2.9 + tree-kill: 1.2.2 + optionalDependencies: + '@swc/core': 1.7.36 + typescript: 5.6.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + typescript@5.6.3: {} undefsafe@2.0.5: {} @@ -1973,9 +2635,11 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + webidl-conversions@4.0.2: {} + webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0): + webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -1997,7 +2661,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.36)(esbuild@0.24.0)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.24.0)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -2005,6 +2669,16 @@ snapshots: - esbuild - uglify-js + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + which@4.0.0: dependencies: isexe: 3.1.1 @@ -2015,6 +2689,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + y18n@5.0.8: {} yargs-parser@21.1.1: {} From 06b4af9ec20c3a1dccf75fac0748f8875a5f8ae3 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Wed, 23 Oct 2024 13:57:35 +0200 Subject: [PATCH 103/122] Override with rollup with wasm version Former-commit-id: d6cefb6091a5f17ff02382d672869c9ab8daa3e8 Former-commit-id: 38ce53a63a56583b8cb423c9f7235d7f758936f1 --- .github/workflows/npm-publish.yml | 2 +- examples/get-started/bin/get-started.mjs | 7 +- examples/get-started/package.json | 12 +- examples/get-started/pnpm-lock.yaml | 343 +++++++---------------- 4 files changed, 117 insertions(+), 247 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 455bd22..84b1bf7 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -29,7 +29,7 @@ jobs: # Only install dev dependencies, for the binary. No need to install deps for the source code. - name: Install dependencies # Weird tsup quirk https://github.com/npm/cli/issues/4828#issuecomment-2404560937 - run: pnpm i @rollup/rollup-linux-x64-gnu && pnpm install --dev + run: pnpm install --dev working-directory: ./examples/get-started - name: Build binary diff --git a/examples/get-started/bin/get-started.mjs b/examples/get-started/bin/get-started.mjs index 2b12542..56298bc 100755 --- a/examples/get-started/bin/get-started.mjs +++ b/examples/get-started/bin/get-started.mjs @@ -622,7 +622,7 @@ import waitOn from "wait-on"; // package.json var package_default = { name: "@restackio/get-started", - version: "1.0.4", + version: "1.0.7", description: "Get started with Restack AI SDK", bin: { "get-started": "bin/get-started.mjs" @@ -656,6 +656,11 @@ var package_default = { devDependencies: { "@clack/prompts": "^0.7.0", tsup: "8.3.0" + }, + pnpm: { + overrides: { + rollup: "npm:@rollup/wasm-node" + } } }; diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 62d4541..e79483f 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.5", + "version": "1.0.8", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" @@ -23,7 +23,6 @@ "@temporalio/workflow": "^1.11.2", "nodemon": "^2.0.22", "ts-node": "^10.9.2", - "typescript": "^5.6.2", "wait-on": "^8.0.1" }, "scripts": { @@ -33,6 +32,13 @@ }, "devDependencies": { "@clack/prompts": "^0.7.0", - "tsup": "8.3.0" + "tsup": "8.3.0", + "typescript": "5.6.2" + }, + "pnpm": { + "overrides": { + "rollup": "npm:@rollup/wasm-node" + } } + } diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index 59b8331..fe877f8 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + rollup: npm:@rollup/wasm-node + importers: .: @@ -19,10 +22,7 @@ importers: version: 2.0.22 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.36)(@types/node@22.7.7)(typescript@5.6.3) - typescript: - specifier: ^5.6.2 - version: 5.6.3 + version: 10.9.2(@swc/core@1.7.39)(@types/node@22.7.9)(typescript@5.6.2) wait-on: specifier: ^8.0.1 version: 8.0.1 @@ -32,7 +32,10 @@ importers: version: 0.7.0 tsup: specifier: 8.3.0 - version: 8.3.0(@swc/core@1.7.36)(typescript@5.6.3) + version: 8.3.0(@swc/core@1.7.39)(typescript@5.6.2) + typescript: + specifier: 5.6.2 + version: 5.6.2 packages: @@ -294,85 +297,10 @@ packages: resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} engines: {node: '>=20'} - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} - cpu: [x64] - os: [win32] + '@rollup/wasm-node@4.24.0': + resolution: {integrity: sha512-LL6oALR6fKG6GihtH0K0uWLAl19Q/QJst+oKJT1VWwFo4sPLA0/7JeZaSqrpFWq8OPloiKx/NDG4BWppFSX2vQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true '@sideway/address@4.1.5': resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} @@ -383,68 +311,68 @@ packages: '@sideway/pinpoint@2.0.0': resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - '@swc/core-darwin-arm64@1.7.36': - resolution: {integrity: sha512-8vDczXzCgv3ceTPhEivlpGprN44YlrCK1nbfU9g2TrhV/Aiqi09W/eM5zLesdoM1Z3mJl492gc/8nlTkpDdusw==} + '@swc/core-darwin-arm64@1.7.39': + resolution: {integrity: sha512-o2nbEL6scMBMCTvY9OnbyVXtepLuNbdblV9oNJEFia5v5eGj9WMrnRQiylH3Wp/G2NYkW7V1/ZVW+kfvIeYe9A==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.36': - resolution: {integrity: sha512-Pa2Gao7+Wf5m3SsK4abKRtd48AtoUnJInvaC3d077swBfgZjbjUbQvcpdc2dOeQtWwo49rFqUZJonMsL0jnPgQ==} + '@swc/core-darwin-x64@1.7.39': + resolution: {integrity: sha512-qMlv3XPgtPi/Fe11VhiPDHSLiYYk2dFYl747oGsHZPq+6tIdDQjIhijXPcsUHIXYDyG7lNpODPL8cP/X1sc9MA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.36': - resolution: {integrity: sha512-3YsMWd7V+WZEjbfBnLkkz/olcRBa8nyoK0iIOnNARJBMcYaJxjkJSMZpmSojCnIVwvjA1N83CPAbUL+W+fCnHg==} + '@swc/core-linux-arm-gnueabihf@1.7.39': + resolution: {integrity: sha512-NP+JIkBs1ZKnpa3Lk2W1kBJMwHfNOxCUJXuTa2ckjFsuZ8OUu2gwdeLFkTHbR43dxGwH5UzSmuGocXeMowra/Q==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.36': - resolution: {integrity: sha512-lqM3aBB7kJazJYOwHeA5OGNLqXoQPZ/76b3dV+XcjN1GhD0CcXz6mW5PRYVin6OSN1eKrKBKJjtDA1mqADDEvw==} + '@swc/core-linux-arm64-gnu@1.7.39': + resolution: {integrity: sha512-cPc+/HehyHyHcvAsk3ML/9wYcpWVIWax3YBaA+ScecJpSE04l/oBHPfdqKUPslqZ+Gcw0OWnIBGJT/fBZW2ayw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.36': - resolution: {integrity: sha512-bqei2YDzvUfG0pth5W2xJaj0eG4XWYk0d/NJ75vBX6bkIzK6dC8iuKQ41jOfUWonnrAs7rTDDJW0sTn/evvRdw==} + '@swc/core-linux-arm64-musl@1.7.39': + resolution: {integrity: sha512-8RxgBC6ubFem66bk9XJ0vclu3exJ6eD7x7CwDhp5AD/tulZslTYXM7oNPjEtje3xxabXuj/bEUMNvHZhQRFdqA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.36': - resolution: {integrity: sha512-03maXTUyaBjeCxlDltmdzHje1ryQt1C4OWmmNgSSRXjLb+GNnAenwOJMSrcvHP/aNClD2pwsFCnYKDGy+sYE6w==} + '@swc/core-linux-x64-gnu@1.7.39': + resolution: {integrity: sha512-3gtCPEJuXLQEolo9xsXtuPDocmXQx12vewEyFFSMSjOfakuPOBmOQMa0sVL8Wwius8C1eZVeD1fgk0omMqeC+Q==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.36': - resolution: {integrity: sha512-XXysqLkvjtQnXm1zHqLhy00UYPv/gk5OtwR732X+piNisnEbcJBqI8Qp9O7YvLWllRcoP8IMBGDWLGdGLSpViA==} + '@swc/core-linux-x64-musl@1.7.39': + resolution: {integrity: sha512-mg39pW5x/eqqpZDdtjZJxrUvQNSvJF4O8wCl37fbuFUqOtXs4TxsjZ0aolt876HXxxhsQl7rS+N4KioEMSgTZw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.36': - resolution: {integrity: sha512-k7+dmb13a/zPw+E4XYfPmLZFWJgcOcBRKIjYl9nQErtYsgsg3Ji6TBbsvJVETy23lNHyewZ17V5Vq6NzaG0hzg==} + '@swc/core-win32-arm64-msvc@1.7.39': + resolution: {integrity: sha512-NZwuS0mNJowH3e9bMttr7B1fB8bW5svW/yyySigv9qmV5VcQRNz1kMlCvrCLYRsa93JnARuiaBI6FazSeG8mpA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.36': - resolution: {integrity: sha512-ridD3ay6YM2PEYHZXXFN+edYEv0FOynaqOBP+NSnGNHA35azItIjoIe+KNi4WltGtAjpKCHSpjGCNfna12wdYQ==} + '@swc/core-win32-ia32-msvc@1.7.39': + resolution: {integrity: sha512-qFmvv5UExbJPXhhvCVDBnjK5Duqxr048dlVB6ZCgGzbRxuarOlawCzzLK4N172230pzlAWGLgn9CWl3+N6zfHA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.36': - resolution: {integrity: sha512-j1z2Z1Ln9d0E3dHsPkC1K9XDh0ojhRPwV+GfRTu4D61PE+aYhYLvbJC6xPvL4/204QrStRS7eDu3m+BcDp3rgQ==} + '@swc/core-win32-x64-msvc@1.7.39': + resolution: {integrity: sha512-o+5IMqgOtj9+BEOp16atTfBgCogVak9svhBpwsbcJQp67bQbxGYhAPPDW/hZ2rpSSF7UdzbY9wudoX9G4trcuQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.36': - resolution: {integrity: sha512-bu7ymMX+LCJOSSrKank25Jaq66ymLVA9fOUuy4ck3/6rbXdLw+pIJPnIDKQ9uNcxww8KDxOuJk9Ui9pqR+aGFw==} + '@swc/core@1.7.39': + resolution: {integrity: sha512-jns6VFeOT49uoTKLWIEfiQqJAlyqldNAt80kAr8f7a5YjX0zgnG3RBiLMpksx4Ka4SlK4O6TJ/lumIM3Trp82g==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -498,8 +426,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@22.7.7': - resolution: {integrity: sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==} + '@types/node@22.7.9': + resolution: {integrity: sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -630,8 +558,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.0: - resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -727,8 +655,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.41: - resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} + electron-to-chromium@1.5.43: + resolution: {integrity: sha512-NxnmFBHDl5Sachd2P46O7UJiMaMHMLSofoIWVJq3mj8NJgG0umiSeljAVP9lGzjI0UDLJJ5jjoGjcrB8RSbjLQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1103,11 +1031,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -1320,8 +1243,8 @@ packages: typescript: optional: true - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true @@ -1612,53 +1535,11 @@ snapshots: - uglify-js - webpack-cli - '@rollup/rollup-android-arm-eabi@4.24.0': - optional: true - - '@rollup/rollup-android-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.24.0': - optional: true - - '@rollup/rollup-darwin-x64@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.24.0': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.24.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.24.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.24.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.24.0': - optional: true + '@rollup/wasm-node@4.24.0': + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + fsevents: 2.3.3 '@sideway/address@4.1.5': dependencies: @@ -1668,51 +1549,51 @@ snapshots: '@sideway/pinpoint@2.0.0': {} - '@swc/core-darwin-arm64@1.7.36': + '@swc/core-darwin-arm64@1.7.39': optional: true - '@swc/core-darwin-x64@1.7.36': + '@swc/core-darwin-x64@1.7.39': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.36': + '@swc/core-linux-arm-gnueabihf@1.7.39': optional: true - '@swc/core-linux-arm64-gnu@1.7.36': + '@swc/core-linux-arm64-gnu@1.7.39': optional: true - '@swc/core-linux-arm64-musl@1.7.36': + '@swc/core-linux-arm64-musl@1.7.39': optional: true - '@swc/core-linux-x64-gnu@1.7.36': + '@swc/core-linux-x64-gnu@1.7.39': optional: true - '@swc/core-linux-x64-musl@1.7.36': + '@swc/core-linux-x64-musl@1.7.39': optional: true - '@swc/core-win32-arm64-msvc@1.7.36': + '@swc/core-win32-arm64-msvc@1.7.39': optional: true - '@swc/core-win32-ia32-msvc@1.7.36': + '@swc/core-win32-ia32-msvc@1.7.39': optional: true - '@swc/core-win32-x64-msvc@1.7.36': + '@swc/core-win32-x64-msvc@1.7.39': optional: true - '@swc/core@1.7.36': + '@swc/core@1.7.39': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.13 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.36 - '@swc/core-darwin-x64': 1.7.36 - '@swc/core-linux-arm-gnueabihf': 1.7.36 - '@swc/core-linux-arm64-gnu': 1.7.36 - '@swc/core-linux-arm64-musl': 1.7.36 - '@swc/core-linux-x64-gnu': 1.7.36 - '@swc/core-linux-x64-musl': 1.7.36 - '@swc/core-win32-arm64-msvc': 1.7.36 - '@swc/core-win32-ia32-msvc': 1.7.36 - '@swc/core-win32-x64-msvc': 1.7.36 + '@swc/core-darwin-arm64': 1.7.39 + '@swc/core-darwin-x64': 1.7.39 + '@swc/core-linux-arm-gnueabihf': 1.7.39 + '@swc/core-linux-arm64-gnu': 1.7.39 + '@swc/core-linux-arm64-musl': 1.7.39 + '@swc/core-linux-x64-gnu': 1.7.39 + '@swc/core-linux-x64-musl': 1.7.39 + '@swc/core-win32-arm64-msvc': 1.7.39 + '@swc/core-win32-ia32-msvc': 1.7.39 + '@swc/core-win32-x64-msvc': 1.7.39 '@swc/counter@0.1.3': {} @@ -1755,7 +1636,7 @@ snapshots: '@temporalio/worker@1.11.3(esbuild@0.23.1)': dependencies: - '@swc/core': 1.7.36 + '@swc/core': 1.7.39 '@temporalio/activity': 1.11.3 '@temporalio/client': 1.11.3 '@temporalio/common': 1.11.3 @@ -1767,11 +1648,11 @@ snapshots: memfs: 4.14.0 rxjs: 7.8.1 source-map: 0.7.4 - source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) supports-color: 8.1.1 - swc-loader: 0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) + swc-loader: 0.2.6(@swc/core@1.7.39)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) unionfs: 4.5.4 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) transitivePeerDependencies: - '@swc/helpers' - esbuild @@ -1795,7 +1676,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@22.7.7': + '@types/node@22.7.9': dependencies: undici-types: 6.19.8 @@ -1952,12 +1833,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.0: + browserslist@4.24.2: dependencies: caniuse-lite: 1.0.30001669 - electron-to-chromium: 1.5.41 + electron-to-chromium: 1.5.43 node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.0) + update-browserslist-db: 1.1.1(browserslist@4.24.2) buffer-from@1.1.2: {} @@ -2034,7 +1915,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.41: {} + electron-to-chromium@1.5.43: {} emoji-regex@8.0.0: {} @@ -2200,7 +2081,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.7.7 + '@types/node': 22.7.9 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2343,7 +2224,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.7.7 + '@types/node': 22.7.9 long: 5.2.3 proxy-from-env@1.1.0: {} @@ -2364,28 +2245,6 @@ snapshots: resolve-from@5.0.0: {} - rollup@4.24.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 - fsevents: 2.3.3 - rxjs@7.8.1: dependencies: tslib: 2.8.0 @@ -2426,11 +2285,11 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) source-map-support@0.5.21: dependencies: @@ -2485,24 +2344,24 @@ snapshots: dependencies: has-flag: 4.0.0 - swc-loader@0.2.6(@swc/core@1.7.36)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): + swc-loader@0.2.6(@swc/core@1.7.39)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: - '@swc/core': 1.7.36 + '@swc/core': 1.7.39 '@swc/counter': 0.1.3 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.39)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 - webpack: 5.95.0(@swc/core@1.7.36)(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) optionalDependencies: - '@swc/core': 1.7.36 + '@swc/core': 1.7.39 esbuild: 0.23.1 terser@5.36.0: @@ -2547,29 +2406,29 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.7.36)(@types/node@22.7.7)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.7.39)(@types/node@22.7.9)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.7.7 + '@types/node': 22.7.9 acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.3 + typescript: 5.6.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.36 + '@swc/core': 1.7.39 tslib@2.8.0: {} - tsup@8.3.0(@swc/core@1.7.36)(typescript@5.6.3): + tsup@8.3.0(@swc/core@1.7.39)(typescript@5.6.2): dependencies: bundle-require: 5.0.0(esbuild@0.23.1) cac: 6.7.14 @@ -2582,21 +2441,21 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1 resolve-from: 5.0.0 - rollup: 4.24.0 + rollup: '@rollup/wasm-node@4.24.0' source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyglobby: 0.2.9 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.7.36 - typescript: 5.6.3 + '@swc/core': 1.7.39 + typescript: 5.6.2 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - typescript@5.6.3: {} + typescript@5.6.2: {} undefsafe@2.0.5: {} @@ -2606,9 +2465,9 @@ snapshots: dependencies: fs-monkey: 1.0.6 - update-browserslist-db@1.1.1(browserslist@4.24.0): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.24.0 + browserslist: 4.24.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -2639,7 +2498,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1): + webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -2647,7 +2506,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.13.0 acorn-import-attributes: 1.9.5(acorn@8.13.0) - browserslist: 4.24.0 + browserslist: 4.24.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 @@ -2661,7 +2520,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.36)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.36)(esbuild@0.23.1)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.39)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: From 758418891af765a07ccbd2354e84de3c792232ab Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Wed, 23 Oct 2024 17:38:27 +0200 Subject: [PATCH 104/122] Final prep Former-commit-id: 38c8f8e6c2149fcfcafaf3cafb3be503c7ac2f58 Former-commit-id: 76e1769e50ae8c51396d59c122b448ed8b94384f --- .github/workflows/npm-publish.yml | 27 ++-- examples/get-started/.gitignore | 7 + examples/get-started/bin/get-started.ts | 2 +- examples/get-started/package-lock.json | 176 ++++++++++++++++++++++-- examples/get-started/package.json | 2 +- examples/get-started/pnpm-lock.yaml | 126 +++++++++++++++++ 6 files changed, 320 insertions(+), 20 deletions(-) create mode 100644 examples/get-started/.gitignore diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 84b1bf7..0252d19 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -1,4 +1,4 @@ -name: Publish to npm +name: Publish "get-started" to npm on: push: @@ -6,15 +6,24 @@ on: - 'main' paths: - 'examples/get-started/**' - # TODO: Remove after testing - pull_request: - branches: - - '*' - paths: - - 'examples/get-started/**' jobs: + check_version: + runs-on: ubuntu-latest + outputs: + version_changed: ${{ steps.check_version.outputs.changed }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 2 + - name: Check if version has changed + id: check_version + run: | + git diff HEAD^ HEAD -- examples/get-started/package.json | grep '"version"' && echo "changed=true" >> $GITHUB_OUTPUT || echo "changed=false" >> $GITHUB_OUTPUT + publish: + needs: check_version + if: needs.check_version.outputs.version_changed == 'true' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -28,7 +37,6 @@ jobs: # Only install dev dependencies, for the binary. No need to install deps for the source code. - name: Install dependencies - # Weird tsup quirk https://github.com/npm/cli/issues/4828#issuecomment-2404560937 run: pnpm install --dev working-directory: ./examples/get-started @@ -37,8 +45,7 @@ jobs: working-directory: ./examples/get-started - name: Publish to npm - # --no-git-checks is needed because "rollup-linux-x64-gnu" is out sync - run: pnpm publish --access public --no-git-checks + run: pnpm publish --access public working-directory: ./examples/get-started env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/examples/get-started/.gitignore b/examples/get-started/.gitignore new file mode 100644 index 0000000..00d9c71 --- /dev/null +++ b/examples/get-started/.gitignore @@ -0,0 +1,7 @@ +node_modules +dist +.env +.env* +.npmrc +tsconfig.tsbuildinfo +.DS_Store \ No newline at end of file diff --git a/examples/get-started/bin/get-started.ts b/examples/get-started/bin/get-started.ts index a527855..02d696a 100644 --- a/examples/get-started/bin/get-started.ts +++ b/examples/get-started/bin/get-started.ts @@ -32,7 +32,7 @@ async function main() { if (projectName) { targetDir = path.join(currentDir, projectName); - const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; + const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json', '.gitignore']; filesToCopy.forEach(file => { fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); }); diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index 448b286..c2efa9a 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -1,19 +1,19 @@ { "name": "@restackio/get-started", - "version": "1.0.4", + "version": "1.0.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@restackio/get-started", - "version": "1.0.4", + "version": "1.0.8", "license": "MIT", "dependencies": { "@restackio/ai": "^0.0.75", + "@restackio/integrations-openai": "^0.0.24", "@temporalio/workflow": "^1.11.2", "nodemon": "^2.0.22", "ts-node": "^10.9.2", - "typescript": "^5.6.2", "wait-on": "^8.0.1" }, "bin": { @@ -21,7 +21,8 @@ }, "devDependencies": { "@clack/prompts": "^0.7.0", - "tsup": "8.3.0" + "tsup": "8.3.0", + "typescript": "5.6.2" } }, "node_modules/@clack/core": { @@ -778,6 +779,14 @@ "node": ">=20" } }, + "node_modules/@restackio/integrations-openai": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@restackio/integrations-openai/-/integrations-openai-0.0.24.tgz", + "integrity": "sha512-CqkZaLobYV+mfTjTz0vcRctb16JA0KclHC3h1aKjJiylB5ht3LigC0tYWJaApDBSvUbMoA7v5QueWR9Q8fJslQ==", + "dependencies": { + "openai": "^4.60.1" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", @@ -1378,6 +1387,15 @@ "undici-types": "~6.19.2" } }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -1581,6 +1599,17 @@ "node": ">=0.4.0" } }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2322,6 +2351,23 @@ "node": ">= 6" } }, + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" + }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "dependencies": { + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" + }, + "engines": { + "node": ">= 12.20" + } + }, "node_modules/fs-monkey": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", @@ -2463,6 +2509,19 @@ "node": ">=10.17.0" } }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/humanize-ms/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, "node_modules/hyperdyperid": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", @@ -2819,6 +2878,62 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "license": "MIT" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -2922,6 +3037,44 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openai": { + "version": "4.68.2", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.68.2.tgz", + "integrity": "sha512-Ys3Jl9vkBUFtrFj4pgrF7rMte4JNekZoMgI6dWkkpOIwNUKGkc4I8jTqv86LB+TcoqkTPzV6DS269dPR9ILWsQ==", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + }, + "bin": { + "openai": "bin/cli" + }, + "peerDependencies": { + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.59", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.59.tgz", + "integrity": "sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/openai/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -3875,10 +4028,9 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", - "license": "Apache-2.0", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", + "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3997,6 +4149,14 @@ "node": ">=10.13.0" } }, + "node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "engines": { + "node": ">= 14" + } + }, "node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", diff --git a/examples/get-started/package.json b/examples/get-started/package.json index e79483f..2a2b28a 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -20,6 +20,7 @@ "license": "MIT", "dependencies": { "@restackio/ai": "^0.0.75", + "@restackio/integrations-openai": "^0.0.24", "@temporalio/workflow": "^1.11.2", "nodemon": "^2.0.22", "ts-node": "^10.9.2", @@ -40,5 +41,4 @@ "rollup": "npm:@rollup/wasm-node" } } - } diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index fe877f8..17eaef3 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@restackio/ai': specifier: ^0.0.75 version: 0.0.75(esbuild@0.23.1) + '@restackio/integrations-openai': + specifier: ^0.0.24 + version: 0.0.24 '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.3 @@ -297,6 +300,9 @@ packages: resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} engines: {node: '>=20'} + '@restackio/integrations-openai@0.0.24': + resolution: {integrity: sha512-CqkZaLobYV+mfTjTz0vcRctb16JA0KclHC3h1aKjJiylB5ht3LigC0tYWJaApDBSvUbMoA7v5QueWR9Q8fJslQ==} + '@rollup/wasm-node@4.24.0': resolution: {integrity: sha512-LL6oALR6fKG6GihtH0K0uWLAl19Q/QJst+oKJT1VWwFo4sPLA0/7JeZaSqrpFWq8OPloiKx/NDG4BWppFSX2vQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -426,6 +432,12 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@18.19.59': + resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==} + '@types/node@22.7.9': resolution: {integrity: sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==} @@ -498,6 +510,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -739,10 +755,17 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + form-data@4.0.1: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -789,6 +812,9 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -930,6 +956,19 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -954,6 +993,15 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + openai@4.68.2: + resolution: {integrity: sha512-Ys3Jl9vkBUFtrFj4pgrF7rMte4JNekZoMgI6dWkkpOIwNUKGkc4I8jTqv86LB+TcoqkTPzV6DS269dPR9ILWsQ==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -1191,6 +1239,9 @@ packages: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -1251,6 +1302,9 @@ packages: undefsafe@2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -1282,6 +1336,13 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -1299,6 +1360,9 @@ packages: webpack-cli: optional: true + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -1535,6 +1599,13 @@ snapshots: - uglify-js - webpack-cli + '@restackio/integrations-openai@0.0.24': + dependencies: + openai: 4.68.2 + transitivePeerDependencies: + - encoding + - zod + '@rollup/wasm-node@4.24.0': dependencies: '@types/estree': 1.0.6 @@ -1676,6 +1747,15 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 22.7.9 + form-data: 4.0.1 + + '@types/node@18.19.59': + dependencies: + undici-types: 5.26.5 + '@types/node@22.7.9': dependencies: undici-types: 6.19.8 @@ -1774,6 +1854,10 @@ snapshots: acorn@8.13.0: {} + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 @@ -2005,12 +2089,19 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 + form-data-encoder@1.7.2: {} + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + fs-monkey@1.0.6: {} fsevents@2.3.3: @@ -2045,6 +2136,10 @@ snapshots: human-signals@2.1.0: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + hyperdyperid@1.2.0: {} iconv-lite@0.6.3: @@ -2160,6 +2255,12 @@ snapshots: neo-async@2.6.2: {} + node-domexception@1.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + node-releases@2.0.18: {} nodemon@2.0.22: @@ -2187,6 +2288,18 @@ snapshots: dependencies: mimic-fn: 2.1.0 + openai@4.68.2: + dependencies: + '@types/node': 18.19.59 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + package-json-from-dist@1.0.1: {} path-key@3.1.1: {} @@ -2394,6 +2507,8 @@ snapshots: touch@3.1.1: {} + tr46@0.0.3: {} + tr46@1.0.1: dependencies: punycode: 2.3.1 @@ -2459,6 +2574,8 @@ snapshots: undefsafe@2.0.5: {} + undici-types@5.26.5: {} + undici-types@6.19.8: {} unionfs@4.5.4: @@ -2494,6 +2611,10 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} webpack-sources@3.2.3: {} @@ -2528,6 +2649,11 @@ snapshots: - esbuild - uglify-js + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 From 5dd77d03d3af206321b804baf4048a84844d418d Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Wed, 23 Oct 2024 17:41:05 +0200 Subject: [PATCH 105/122] New version Former-commit-id: 9dc506bc7615472c76b08a892f7128e374588a59 Former-commit-id: fbcf25e9092e0076d363d93d80e7440b0320b096 --- examples/get-started/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 2a2b28a..e101736 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.8", + "version": "1.0.9", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" From c8f1ef3d1f26cddcb2225d48423179c3cdd64398 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Wed, 23 Oct 2024 17:48:12 +0200 Subject: [PATCH 106/122] Release get-started Former-commit-id: 532faeeb76a1d75a965febf8c7da65298264da2f Former-commit-id: 79135fb207897fc2b32396773301f54095ca7d39 --- .github/workflows/npm-publish.yml | 2 +- examples/get-started/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 0252d19..b53e06b 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -45,7 +45,7 @@ jobs: working-directory: ./examples/get-started - name: Publish to npm - run: pnpm publish --access public + run: pnpm publish --access public --no-git-checks working-directory: ./examples/get-started env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/examples/get-started/package.json b/examples/get-started/package.json index e101736..a5a5940 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.9", + "version": "1.0.10", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" From e5ffa233b4e385b59e4b589ecb6c3c53638f0577 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Wed, 23 Oct 2024 17:53:41 +0200 Subject: [PATCH 107/122] Add gitignore to get-started files Former-commit-id: 4f70fb9645b89a1fef2ccba48f9298d073f0351c Former-commit-id: 3e53c9eb3ae160031811c5971bfe6171839e3b15 --- examples/get-started/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/get-started/package.json b/examples/get-started/package.json index a5a5940..482a1cd 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.10", + "version": "1.0.11", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" @@ -9,6 +9,7 @@ "bin", "src", "scheduleWorkflow.ts", + ".gitignore", "readme.md", "tsconfig.json" ], From 920a7b490d8e712e44a7a19b908f6de29807de08 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Wed, 23 Oct 2024 18:04:13 +0200 Subject: [PATCH 108/122] Revert .gitignore in get-started Former-commit-id: b78ede5a4d9361e6f6ac1fc74cbd243d0942eb98 Former-commit-id: 3a634d584e4c7a59d0532bedd32dbdc060e53d92 --- examples/get-started/.gitignore | 7 ------- examples/get-started/bin/get-started.ts | 2 +- examples/get-started/package.json | 3 +-- 3 files changed, 2 insertions(+), 10 deletions(-) delete mode 100644 examples/get-started/.gitignore diff --git a/examples/get-started/.gitignore b/examples/get-started/.gitignore deleted file mode 100644 index 00d9c71..0000000 --- a/examples/get-started/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -dist -.env -.env* -.npmrc -tsconfig.tsbuildinfo -.DS_Store \ No newline at end of file diff --git a/examples/get-started/bin/get-started.ts b/examples/get-started/bin/get-started.ts index 02d696a..a527855 100644 --- a/examples/get-started/bin/get-started.ts +++ b/examples/get-started/bin/get-started.ts @@ -32,7 +32,7 @@ async function main() { if (projectName) { targetDir = path.join(currentDir, projectName); - const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json', '.gitignore']; + const filesToCopy = ['src', 'scheduleWorkflow.ts', 'tsconfig.json']; filesToCopy.forEach(file => { fs.cpSync(path.join(packageRoot, file), path.join(targetDir, file), { recursive: true }); }); diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 482a1cd..9cec6f9 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,6 +1,6 @@ { "name": "@restackio/get-started", - "version": "1.0.11", + "version": "1.0.12", "description": "Get started with Restack AI SDK", "bin": { "get-started": "bin/get-started.mjs" @@ -9,7 +9,6 @@ "bin", "src", "scheduleWorkflow.ts", - ".gitignore", "readme.md", "tsconfig.json" ], From b655237136eb3a358298b53b443710f3e53e2ef0 Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 19:35:48 -0700 Subject: [PATCH 109/122] helloworld -> openai Former-commit-id: e8747a2a021d9dd01f832f384a78d81c864fdcde Former-commit-id: 6489dbb34a49c079af5deaad8c6c9065480f70f2 --- examples/hello/.env.example | 9 ------- examples/{hello => openai}/Dockerfile | 0 examples/{hello => openai}/package.json | 6 ++--- examples/{hello => openai}/pnpm-lock.yaml | 24 +++++++++---------- examples/{hello => openai}/readme.md | 0 examples/{hello => openai}/restack_up.mjs | 0 .../{hello => openai}/scheduleWorkflow.ts | 0 examples/{hello => openai}/src/client.ts | 0 .../src/functions/goodbye.ts | 0 .../{hello => openai}/src/functions/index.ts | 0 examples/{hello => openai}/src/services.ts | 0 .../{hello => openai}/src/workflows/hello.ts | 0 .../{hello => openai}/src/workflows/index.ts | 0 examples/{hello => openai}/tsconfig.json | 0 14 files changed, 15 insertions(+), 24 deletions(-) delete mode 100644 examples/hello/.env.example rename examples/{hello => openai}/Dockerfile (100%) rename examples/{hello => openai}/package.json (86%) rename examples/{hello => openai}/pnpm-lock.yaml (99%) rename examples/{hello => openai}/readme.md (100%) rename examples/{hello => openai}/restack_up.mjs (100%) rename examples/{hello => openai}/scheduleWorkflow.ts (100%) rename examples/{hello => openai}/src/client.ts (100%) rename examples/{hello => openai}/src/functions/goodbye.ts (100%) rename examples/{hello => openai}/src/functions/index.ts (100%) rename examples/{hello => openai}/src/services.ts (100%) rename examples/{hello => openai}/src/workflows/hello.ts (100%) rename examples/{hello => openai}/src/workflows/index.ts (100%) rename examples/{hello => openai}/tsconfig.json (100%) diff --git a/examples/hello/.env.example b/examples/hello/.env.example deleted file mode 100644 index adccfc3..0000000 --- a/examples/hello/.env.example +++ /dev/null @@ -1,9 +0,0 @@ -OPENAI_API_KEY= - -# Restack - -RESTACK_ENGINE_ID= -RESTACK_ENGINE_ADDRESS= -RESTACK_ENGINE_API_KEY= - -RESTACK_CLOUD_TOKEN= \ No newline at end of file diff --git a/examples/hello/Dockerfile b/examples/openai/Dockerfile similarity index 100% rename from examples/hello/Dockerfile rename to examples/openai/Dockerfile diff --git a/examples/hello/package.json b/examples/openai/package.json similarity index 86% rename from examples/hello/package.json rename to examples/openai/package.json index f3b729a..3947f26 100644 --- a/examples/hello/package.json +++ b/examples/openai/package.json @@ -1,7 +1,7 @@ { "name": "sdk-example-ts", "version": "1.0.0", - "description": "", + "description": "Basic OpenAI example", "main": "index.js", "scripts": { "start": "ts-node src/services.ts", @@ -22,8 +22,8 @@ ] }, "dependencies": { - "@restackio/integrations-openai": "^0.0.23", - "@restackio/ai": "^0.0.75", + "@restackio/integrations-openai": "^0.0.29", + "@restackio/ai": "^0.0.80", "@temporalio/workflow": "^1.11.2", "dotenv": "^16.4.5", "zod": "^3.23.8", diff --git a/examples/hello/pnpm-lock.yaml b/examples/openai/pnpm-lock.yaml similarity index 99% rename from examples/hello/pnpm-lock.yaml rename to examples/openai/pnpm-lock.yaml index 663b4c8..ec88546 100644 --- a/examples/hello/pnpm-lock.yaml +++ b/examples/openai/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@restackio/ai': - specifier: ^0.0.75 - version: 0.0.75 + specifier: ^0.0.80 + version: 0.0.80 '@restackio/integrations-openai': - specifier: ^0.0.23 - version: 0.0.23(zod@3.23.8) + specifier: ^0.0.29 + version: 0.0.29(zod@3.23.8) '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.2 @@ -28,10 +28,10 @@ importers: version: 3.23.3(zod@3.23.8) devDependencies: '@restackio/restack-sdk-cloud-ts': - specifier: ^1.0.16 + specifier: ^1.0.15 version: 1.0.16 '@types/node': - specifier: ^20.16.10 + specifier: ^20.16.9 version: 20.16.10 nodemon: specifier: ^2.0.22 @@ -178,12 +178,12 @@ packages: resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} engines: {node: '>=20'} - '@restackio/ai@0.0.75': - resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + '@restackio/ai@0.0.80': + resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} engines: {node: '>=20'} - '@restackio/integrations-openai@0.0.23': - resolution: {integrity: sha512-cTKk3mirbn25i4S/wG5b0o6gAoiPojkHptIP0q/C0aTLysm/Ps0daL4cVY/Q0hXmKfXLQ9+rxHkJOLS5zhMYrw==} + '@restackio/integrations-openai@0.0.29': + resolution: {integrity: sha512-pZmU9aeLW/yno2jtReSYyC+20tHCEmpInkwtYG3LZpmwWgyiUmz2hjxlnZ2H1r5WQQWL9xUvV2TOrk3dCKfg0A==} '@restackio/restack-sdk-cloud-ts@1.0.16': resolution: {integrity: sha512-oIanzD6ym6c+hZ6eMJozTaIxGmMn1hPZRwogzz4v2hdd40IpdbwuHc98bPrHjswS1rZa+vjPjLbKoSuLlZloOQ==} @@ -1321,7 +1321,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/ai@0.0.75': + '@restackio/ai@0.0.80': dependencies: '@temporalio/activity': 1.11.2 '@temporalio/client': 1.11.2 @@ -1333,7 +1333,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/integrations-openai@0.0.23(zod@3.23.8)': + '@restackio/integrations-openai@0.0.29(zod@3.23.8)': dependencies: openai: 4.67.1(zod@3.23.8) transitivePeerDependencies: diff --git a/examples/hello/readme.md b/examples/openai/readme.md similarity index 100% rename from examples/hello/readme.md rename to examples/openai/readme.md diff --git a/examples/hello/restack_up.mjs b/examples/openai/restack_up.mjs similarity index 100% rename from examples/hello/restack_up.mjs rename to examples/openai/restack_up.mjs diff --git a/examples/hello/scheduleWorkflow.ts b/examples/openai/scheduleWorkflow.ts similarity index 100% rename from examples/hello/scheduleWorkflow.ts rename to examples/openai/scheduleWorkflow.ts diff --git a/examples/hello/src/client.ts b/examples/openai/src/client.ts similarity index 100% rename from examples/hello/src/client.ts rename to examples/openai/src/client.ts diff --git a/examples/hello/src/functions/goodbye.ts b/examples/openai/src/functions/goodbye.ts similarity index 100% rename from examples/hello/src/functions/goodbye.ts rename to examples/openai/src/functions/goodbye.ts diff --git a/examples/hello/src/functions/index.ts b/examples/openai/src/functions/index.ts similarity index 100% rename from examples/hello/src/functions/index.ts rename to examples/openai/src/functions/index.ts diff --git a/examples/hello/src/services.ts b/examples/openai/src/services.ts similarity index 100% rename from examples/hello/src/services.ts rename to examples/openai/src/services.ts diff --git a/examples/hello/src/workflows/hello.ts b/examples/openai/src/workflows/hello.ts similarity index 100% rename from examples/hello/src/workflows/hello.ts rename to examples/openai/src/workflows/hello.ts diff --git a/examples/hello/src/workflows/index.ts b/examples/openai/src/workflows/index.ts similarity index 100% rename from examples/hello/src/workflows/index.ts rename to examples/openai/src/workflows/index.ts diff --git a/examples/hello/tsconfig.json b/examples/openai/tsconfig.json similarity index 100% rename from examples/hello/tsconfig.json rename to examples/openai/tsconfig.json From 936ddbb83cc05f7c6f38aefc985a8f8ba5ba8b2d Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 19:39:59 -0700 Subject: [PATCH 110/122] change .gitgnore to not ignore .env.example Former-commit-id: 0cd8d47971902094be7ec0c847e53657fb1545d7 Former-commit-id: e20b43e873a487c53f6ae09056a82da960284537 --- .gitignore | 1 - examples/openai/.env.example | 9 +++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 examples/openai/.env.example diff --git a/.gitignore b/.gitignore index 00d9c71..795ae92 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ node_modules dist .env -.env* .npmrc tsconfig.tsbuildinfo .DS_Store \ No newline at end of file diff --git a/examples/openai/.env.example b/examples/openai/.env.example new file mode 100644 index 0000000..adccfc3 --- /dev/null +++ b/examples/openai/.env.example @@ -0,0 +1,9 @@ +OPENAI_API_KEY= + +# Restack + +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= + +RESTACK_CLOUD_TOKEN= \ No newline at end of file From e26fde21f456ee2894ceb50de90255083d1905b3 Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 22:06:20 -0700 Subject: [PATCH 111/122] example openai pnpm commands unify Former-commit-id: a70198b0df48d80cede4f148c95efa60f83254ea Former-commit-id: c0236dd5079f2528d7b7e3e170dcdec95ee3de2b --- examples/openai/package.json | 2 +- examples/openai/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/openai/package.json b/examples/openai/package.json index 3947f26..e447d28 100644 --- a/examples/openai/package.json +++ b/examples/openai/package.json @@ -9,7 +9,7 @@ "dev": "pnpm start.watch", "build": "tsc --build", "clean": "rm -rf node_modules", - "workflow": "ts-node ./scheduleWorkflow.ts", + "schedule": "ts-node ./scheduleWorkflow.ts", "restack-up": "node restack_up.mjs" }, "nodemonConfig": { diff --git a/examples/openai/readme.md b/examples/openai/readme.md index 9f98582..98cea9a 100644 --- a/examples/openai/readme.md +++ b/examples/openai/readme.md @@ -25,7 +25,7 @@ Your code will be running in pods and syncing with Restack engine to execute wor In another shell: -pnpm workflow +pnpm schedule Will schedule to start example workflow immediately. From b3435fadf804794256d949d137ab58841043e0e6 Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 22:06:41 -0700 Subject: [PATCH 112/122] get started example, unify and add envExample Former-commit-id: 91d706e2c9f48a4fdc965790f00b5082b9d35d75 Former-commit-id: e7c28a7db07dd272e5622cf4800b4213bcd6551b --- examples/get-started/.env.example | 8 ++++++++ examples/get-started/package.json | 6 +++--- examples/get-started/pnpm-lock.yaml | 20 ++++++++++---------- 3 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 examples/get-started/.env.example diff --git a/examples/get-started/.env.example b/examples/get-started/.env.example new file mode 100644 index 0000000..3e12a19 --- /dev/null +++ b/examples/get-started/.env.example @@ -0,0 +1,8 @@ +# Restack Engine + +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= + +# Restack Cloud +RESTACK_CLOUD_TOKEN= \ No newline at end of file diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 9cec6f9..b2bf865 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -1,7 +1,7 @@ { "name": "@restackio/get-started", "version": "1.0.12", - "description": "Get started with Restack AI SDK", + "description": "Get started with the Restack AI TypeScript library", "bin": { "get-started": "bin/get-started.mjs" }, @@ -19,14 +19,14 @@ ], "license": "MIT", "dependencies": { - "@restackio/ai": "^0.0.75", - "@restackio/integrations-openai": "^0.0.24", + "@restackio/ai": "^0.0.80", "@temporalio/workflow": "^1.11.2", "nodemon": "^2.0.22", "ts-node": "^10.9.2", "wait-on": "^8.0.1" }, "scripts": { + "dev": "nodemon src/services.ts", "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", "service": "ts-node src/services.ts", "schedule": "ts-node scheduleWorkflow.ts" diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index 17eaef3..f5de745 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -12,11 +12,11 @@ importers: .: dependencies: '@restackio/ai': - specifier: ^0.0.75 - version: 0.0.75(esbuild@0.23.1) + specifier: ^0.0.80 + version: 0.0.80(esbuild@0.23.1) '@restackio/integrations-openai': - specifier: ^0.0.24 - version: 0.0.24 + specifier: ^0.0.29 + version: 0.0.29 '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.3 @@ -296,12 +296,12 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/ai@0.0.75': - resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + '@restackio/ai@0.0.80': + resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} engines: {node: '>=20'} - '@restackio/integrations-openai@0.0.24': - resolution: {integrity: sha512-CqkZaLobYV+mfTjTz0vcRctb16JA0KclHC3h1aKjJiylB5ht3LigC0tYWJaApDBSvUbMoA7v5QueWR9Q8fJslQ==} + '@restackio/integrations-openai@0.0.29': + resolution: {integrity: sha512-pZmU9aeLW/yno2jtReSYyC+20tHCEmpInkwtYG3LZpmwWgyiUmz2hjxlnZ2H1r5WQQWL9xUvV2TOrk3dCKfg0A==} '@rollup/wasm-node@4.24.0': resolution: {integrity: sha512-LL6oALR6fKG6GihtH0K0uWLAl19Q/QJst+oKJT1VWwFo4sPLA0/7JeZaSqrpFWq8OPloiKx/NDG4BWppFSX2vQ==} @@ -1587,7 +1587,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/ai@0.0.75(esbuild@0.23.1)': + '@restackio/ai@0.0.80(esbuild@0.23.1)': dependencies: '@temporalio/activity': 1.11.3 '@temporalio/client': 1.11.3 @@ -1599,7 +1599,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/integrations-openai@0.0.24': + '@restackio/integrations-openai@0.0.29': dependencies: openai: 4.68.2 transitivePeerDependencies: From d27fe7926bded81c9bbe160f04b7813bf92258dc Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 22:07:15 -0700 Subject: [PATCH 113/122] bump up psothog dependencies, unify commands and update readme Former-commit-id: 35dfe06eb48bac02877bd126415da88f8c7c5f5e Former-commit-id: 843df1b57bcbe75b347954855945d56ecb0e2bd8 --- examples/posthog/package.json | 8 +- examples/posthog/pnpm-lock.yaml | 157 ++++---------------------------- examples/posthog/readme.md | 2 +- 3 files changed, 24 insertions(+), 143 deletions(-) diff --git a/examples/posthog/package.json b/examples/posthog/package.json index c4a0cc3..f92d54f 100644 --- a/examples/posthog/package.json +++ b/examples/posthog/package.json @@ -8,16 +8,16 @@ "dev": "ts-node-dev --respawn --transpile-only src/services.ts", "build": "tsc --build", "clean": "rm -rf node_modules", - "workflow": "ts-node ./scheduleWorkflow.ts", + "schedule": "ts-node ./scheduleWorkflow.ts", "restack-up": "node restack_up.mjs" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { - "@restackio/integrations-linear": "^0.0.3", - "@restackio/integrations-openai": "^0.0.23", - "@restackio/ai": "^0.0.75", + "@restackio/integrations-linear": "^0.0.6", + "@restackio/integrations-openai": "^0.0.29", + "@restackio/ai": "^0.0.80", "@temporalio/workflow": "1.11.1", "dotenv": "^16.4.5", "typescript": "^5.6.2", diff --git a/examples/posthog/pnpm-lock.yaml b/examples/posthog/pnpm-lock.yaml index 6172c6e..89dc720 100644 --- a/examples/posthog/pnpm-lock.yaml +++ b/examples/posthog/pnpm-lock.yaml @@ -9,14 +9,14 @@ importers: .: dependencies: '@restackio/ai': - specifier: ^0.0.75 - version: 0.0.75 + specifier: ^0.0.80 + version: 0.0.80 '@restackio/integrations-linear': - specifier: ^0.0.3 - version: 0.0.3 + specifier: ^0.0.6 + version: 0.0.6 '@restackio/integrations-openai': - specifier: ^0.0.23 - version: 0.0.23(zod@3.23.8) + specifier: ^0.0.29 + version: 0.0.29(zod@3.23.8) '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -160,15 +160,15 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/ai@0.0.75': - resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + '@restackio/ai@0.0.80': + resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} engines: {node: '>=20'} - '@restackio/integrations-linear@0.0.3': - resolution: {integrity: sha512-eb+Uq71aPW6IV7+rV8fBwmgGOtutD1WKwJoOwPgPsKQ6sm5V3WH+1A60vR35/Y54h8k1ZD5X4Fmz9qslOAlaXA==} + '@restackio/integrations-linear@0.0.6': + resolution: {integrity: sha512-ZM4kqNFz4pStcl+m3VnoVlO3pW+hZOM9gUH7OSnGAROJciqgHg7FY6cmHeH9prT1194WsvgeAUzQtvwwudjPEA==} - '@restackio/integrations-openai@0.0.23': - resolution: {integrity: sha512-cTKk3mirbn25i4S/wG5b0o6gAoiPojkHptIP0q/C0aTLysm/Ps0daL4cVY/Q0hXmKfXLQ9+rxHkJOLS5zhMYrw==} + '@restackio/integrations-openai@0.0.29': + resolution: {integrity: sha512-pZmU9aeLW/yno2jtReSYyC+20tHCEmpInkwtYG3LZpmwWgyiUmz2hjxlnZ2H1r5WQQWL9xUvV2TOrk3dCKfg0A==} '@restackio/restack-sdk-cloud-ts@1.0.5': resolution: {integrity: sha512-xAVoEBwuHNZo0OZQskThIwzj3ln8m2lJRlhKl7CYhJdGeUTK4Fo0zwrg31i9Wz0JnInXgWwGYYro8gcrpb3nYg==} @@ -298,9 +298,6 @@ packages: '@types/node@22.5.5': resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} - '@types/qs@6.9.16': - resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} - '@types/strip-bom@3.0.0': resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} @@ -438,10 +435,6 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001660: resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} @@ -502,10 +495,6 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - define-lazy-prop@3.0.0: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} @@ -535,14 +524,6 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -613,10 +594,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -628,9 +605,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -646,17 +620,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -815,10 +778,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -826,8 +785,8 @@ packages: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} - openai@4.61.0: - resolution: {integrity: sha512-xkygRBRLIUumxzKGb1ug05pWmJROQsHkGuj/N6Jiw2dj0dI19JvbFpErSZKmJ/DA+0IvpcugZqCAyk8iLpyM6Q==} + openai@4.68.4: + resolution: {integrity: sha512-LRinV8iU9VQplkr25oZlyrsYGPGasIwYN8KFMAAFTHHLHjHhejtJ5BALuLFrkGzY4wfbKhOhuT+7lcHZ+F3iEA==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -867,10 +826,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -916,14 +871,6 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - simple-git@3.26.0: resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} @@ -1300,7 +1247,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/ai@0.0.75': + '@restackio/ai@0.0.80': dependencies: '@temporalio/activity': 1.11.1 '@temporalio/client': 1.11.1 @@ -1312,15 +1259,15 @@ snapshots: - uglify-js - webpack-cli - '@restackio/integrations-linear@0.0.3': + '@restackio/integrations-linear@0.0.6': dependencies: '@linear/sdk': 29.0.0 transitivePeerDependencies: - encoding - '@restackio/integrations-openai@0.0.23(zod@3.23.8)': + '@restackio/integrations-openai@0.0.29(zod@3.23.8)': dependencies: - openai: 4.61.0(zod@3.23.8) + openai: 4.68.4(zod@3.23.8) transitivePeerDependencies: - encoding - zod @@ -1476,8 +1423,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/qs@6.9.16': {} - '@types/strip-bom@3.0.0': {} '@types/strip-json-comments@0.0.30': {} @@ -1636,14 +1581,6 @@ snapshots: dependencies: run-applescript: 7.0.0 - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - caniuse-lite@1.0.30001660: {} cargo-cp-artifact@0.1.9: {} @@ -1702,12 +1639,6 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - define-lazy-prop@3.0.0: {} delayed-stream@1.0.0: {} @@ -1729,12 +1660,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - - es-errors@1.3.0: {} - es-module-lexer@1.5.4: {} escalade@3.2.0: {} @@ -1788,14 +1713,6 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -1811,10 +1728,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 - graceful-fs@4.2.11: {} graphql@15.9.0: {} @@ -1823,14 +1736,6 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.0 - - has-proto@1.0.3: {} - - has-symbols@1.0.3: {} - hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -1963,8 +1868,6 @@ snapshots: normalize-path@3.0.0: {} - object-inspect@1.13.2: {} - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -1976,17 +1879,15 @@ snapshots: is-inside-container: 1.0.0 is-wsl: 3.1.0 - openai@4.61.0(zod@3.23.8): + openai@4.68.4(zod@3.23.8): dependencies: '@types/node': 18.19.50 '@types/node-fetch': 2.6.11 - '@types/qs': 6.9.16 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 formdata-node: 4.4.1 node-fetch: 2.7.0 - qs: 6.13.0 optionalDependencies: zod: 3.23.8 transitivePeerDependencies: @@ -2025,10 +1926,6 @@ snapshots: punycode@2.3.1: {} - qs@6.13.0: - dependencies: - side-channel: 1.0.6 - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -2071,22 +1968,6 @@ snapshots: dependencies: randombytes: 2.1.0 - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - - side-channel@1.0.6: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 - simple-git@3.26.0: dependencies: '@kwsites/file-exists': 1.1.1 diff --git a/examples/posthog/readme.md b/examples/posthog/readme.md index d9708c8..9b673c6 100644 --- a/examples/posthog/readme.md +++ b/examples/posthog/readme.md @@ -21,7 +21,7 @@ pnpm dev # Schedule digest workflow with -pnpm workflow +pnpm schedule # deploy From 7054849ba14d38a0a15de468bede91cb34052624 Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 22:11:49 -0700 Subject: [PATCH 114/122] Update package.json and tsconfig.json in get-started example - Added "@types/node" as a devDependency in package.json - Added "clean" script to remove node_modules in package.json - Updated tsconfig.json to include "noImplicitAny" and "sourceMap" options Former-commit-id: 8befcff3f6de8805d9e8fb515f1f325dcf6c7e89 Former-commit-id: f42c96fe37a9f44179c7f3941664403939cc0459 --- examples/get-started/package.json | 4 +- examples/get-started/pnpm-lock.yaml | 145 +++------------------------- examples/get-started/tsconfig.json | 39 ++++---- 3 files changed, 36 insertions(+), 152 deletions(-) diff --git a/examples/get-started/package.json b/examples/get-started/package.json index b2bf865..1a99bb6 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -29,10 +29,12 @@ "dev": "nodemon src/services.ts", "build-bin": "pnpm tsup --outDir bin --format esm bin/get-started.ts", "service": "ts-node src/services.ts", - "schedule": "ts-node scheduleWorkflow.ts" + "schedule": "ts-node scheduleWorkflow.ts", + "clean": "rm -rf node_modules" }, "devDependencies": { "@clack/prompts": "^0.7.0", + "@types/node": "^22.8.1", "tsup": "8.3.0", "typescript": "5.6.2" }, diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index f5de745..da96ec9 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@restackio/ai': specifier: ^0.0.80 version: 0.0.80(esbuild@0.23.1) - '@restackio/integrations-openai': - specifier: ^0.0.29 - version: 0.0.29 '@temporalio/workflow': specifier: ^1.11.2 version: 1.11.3 @@ -25,7 +22,7 @@ importers: version: 2.0.22 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.7.39)(@types/node@22.7.9)(typescript@5.6.2) + version: 10.9.2(@swc/core@1.7.39)(@types/node@22.8.1)(typescript@5.6.2) wait-on: specifier: ^8.0.1 version: 8.0.1 @@ -33,6 +30,9 @@ importers: '@clack/prompts': specifier: ^0.7.0 version: 0.7.0 + '@types/node': + specifier: ^22.8.1 + version: 22.8.1 tsup: specifier: 8.3.0 version: 8.3.0(@swc/core@1.7.39)(typescript@5.6.2) @@ -300,9 +300,6 @@ packages: resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} engines: {node: '>=20'} - '@restackio/integrations-openai@0.0.29': - resolution: {integrity: sha512-pZmU9aeLW/yno2jtReSYyC+20tHCEmpInkwtYG3LZpmwWgyiUmz2hjxlnZ2H1r5WQQWL9xUvV2TOrk3dCKfg0A==} - '@rollup/wasm-node@4.24.0': resolution: {integrity: sha512-LL6oALR6fKG6GihtH0K0uWLAl19Q/QJst+oKJT1VWwFo4sPLA0/7JeZaSqrpFWq8OPloiKx/NDG4BWppFSX2vQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -432,14 +429,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - - '@types/node@18.19.59': - resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==} - - '@types/node@22.7.9': - resolution: {integrity: sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==} + '@types/node@22.8.1': + resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -510,10 +501,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} - ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -755,17 +742,10 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - form-data@4.0.1: resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} - formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -812,9 +792,6 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -956,19 +933,6 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -993,15 +957,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - openai@4.68.2: - resolution: {integrity: sha512-Ys3Jl9vkBUFtrFj4pgrF7rMte4JNekZoMgI6dWkkpOIwNUKGkc4I8jTqv86LB+TcoqkTPzV6DS269dPR9ILWsQ==} - hasBin: true - peerDependencies: - zod: ^3.23.8 - peerDependenciesMeta: - zod: - optional: true - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -1239,9 +1194,6 @@ packages: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -1302,9 +1254,6 @@ packages: undefsafe@2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} @@ -1336,13 +1285,6 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} - web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -1360,9 +1302,6 @@ packages: webpack-cli: optional: true - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -1599,13 +1538,6 @@ snapshots: - uglify-js - webpack-cli - '@restackio/integrations-openai@0.0.29': - dependencies: - openai: 4.68.2 - transitivePeerDependencies: - - encoding - - zod - '@rollup/wasm-node@4.24.0': dependencies: '@types/estree': 1.0.6 @@ -1747,16 +1679,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node-fetch@2.6.11': - dependencies: - '@types/node': 22.7.9 - form-data: 4.0.1 - - '@types/node@18.19.59': - dependencies: - undici-types: 5.26.5 - - '@types/node@22.7.9': + '@types/node@22.8.1': dependencies: undici-types: 6.19.8 @@ -1854,10 +1777,6 @@ snapshots: acorn@8.13.0: {} - agentkeepalive@4.5.0: - dependencies: - humanize-ms: 1.2.1 - ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 @@ -2089,19 +2008,12 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - form-data-encoder@1.7.2: {} - form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - formdata-node@4.4.1: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - fs-monkey@1.0.6: {} fsevents@2.3.3: @@ -2136,10 +2048,6 @@ snapshots: human-signals@2.1.0: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - hyperdyperid@1.2.0: {} iconv-lite@0.6.3: @@ -2176,7 +2084,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.7.9 + '@types/node': 22.8.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -2255,12 +2163,6 @@ snapshots: neo-async@2.6.2: {} - node-domexception@1.0.0: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - node-releases@2.0.18: {} nodemon@2.0.22: @@ -2288,18 +2190,6 @@ snapshots: dependencies: mimic-fn: 2.1.0 - openai@4.68.2: - dependencies: - '@types/node': 18.19.59 - '@types/node-fetch': 2.6.11 - abort-controller: 3.0.0 - agentkeepalive: 4.5.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - package-json-from-dist@1.0.1: {} path-key@3.1.1: {} @@ -2337,7 +2227,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.7.9 + '@types/node': 22.8.1 long: 5.2.3 proxy-from-env@1.1.0: {} @@ -2507,8 +2397,6 @@ snapshots: touch@3.1.1: {} - tr46@0.0.3: {} - tr46@1.0.1: dependencies: punycode: 2.3.1 @@ -2521,14 +2409,14 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.7.39)(@types/node@22.7.9)(typescript@5.6.2): + ts-node@10.9.2(@swc/core@1.7.39)(@types/node@22.8.1)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.7.9 + '@types/node': 22.8.1 acorn: 8.13.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -2574,8 +2462,6 @@ snapshots: undefsafe@2.0.5: {} - undici-types@5.26.5: {} - undici-types@6.19.8: {} unionfs@4.5.4: @@ -2611,10 +2497,6 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - web-streams-polyfill@4.0.0-beta.3: {} - - webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} webpack-sources@3.2.3: {} @@ -2649,11 +2531,6 @@ snapshots: - esbuild - uglify-js - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 diff --git a/examples/get-started/tsconfig.json b/examples/get-started/tsconfig.json index b1c84c5..896a619 100644 --- a/examples/get-started/tsconfig.json +++ b/examples/get-started/tsconfig.json @@ -1,18 +1,23 @@ { - "compilerOptions": { - "module": "commonjs", - "esModuleInterop": true, - "target": "ES2022", - "noImplicitAny": true, - "moduleResolution": "node", - "sourceMap": true, - "types": ["node"], - "outDir": "dist", - "baseUrl": ".", - "paths": { - "*": ["node_modules/*"] - } - }, - "exclude": ["node_modules"] - } - + "compilerOptions": { + "module": "commonjs", + "esModuleInterop": true, + "target": "ES2022", + "noImplicitAny": true, + "moduleResolution": "node", + "sourceMap": true, + "types": [ + "node" + ], + "outDir": "dist", + "baseUrl": ".", + "paths": { + "*": [ + "node_modules/*" + ] + } + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file From 985a93fed6e76197cfdf511bca2aa7433f189223 Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 22:59:35 -0700 Subject: [PATCH 115/122] nextjs starter Former-commit-id: 99ee6be5af5bc318a98eb716f226ee684741730a Former-commit-id: 5c6b1ecdaedb323f425e613b3602f5e5ea48e296 --- examples/nextjs/.env.Example | 7 +++++ examples/nextjs/README.md | 29 +++++++++++++----- examples/nextjs/package.json | 2 +- examples/nextjs/pnpm-lock.yaml | 28 ++++++++--------- .../restack-examples-ts-nextjs-web-ui.png | Bin 0 -> 211278 bytes .../nextjs/restack-examples-ts-nextjs.png | Bin 0 -> 157186 bytes 6 files changed, 43 insertions(+), 23 deletions(-) create mode 100644 examples/nextjs/.env.Example create mode 100644 examples/nextjs/restack-examples-ts-nextjs-web-ui.png create mode 100644 examples/nextjs/restack-examples-ts-nextjs.png diff --git a/examples/nextjs/.env.Example b/examples/nextjs/.env.Example new file mode 100644 index 0000000..ef05ee5 --- /dev/null +++ b/examples/nextjs/.env.Example @@ -0,0 +1,7 @@ +# Restack + +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= + +RESTACK_CLOUD_TOKEN= \ No newline at end of file diff --git a/examples/nextjs/README.md b/examples/nextjs/README.md index e215bc4..5d331e3 100644 --- a/examples/nextjs/README.md +++ b/examples/nextjs/README.md @@ -20,17 +20,30 @@ You can start editing the page by modifying `app/page.tsx`. The page auto-update This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. -## Learn More +# Install Restack Web UI -To learn more about Next.js, take a look at the following resources: +To install the Restack Web UI, you can use Docker. +``` +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main +``` +# Schedule Restack workflow from NextJS frontend + +The example is a NextJS application with front and backend. You can schedule the workflow example from the user interface. + +![Example UI](./restack-examples-ts-nextjs.png) + +When the client successfully schedules the workflow, you can see the started workflow in the Restack Web UI. You should see the following screen: + +![Success Web UI](./restack-examples-ts-nextjs-web-ui.png) + +Now you can add a backend to the example. In other examples, you can see how to ideally structure the backend app with workflows, functions and services. + +## Deploy on Restack -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +To deploy this Next.js application on Restack, you can use the provided `restack_up.mjs` script. This script utilizes the Restack Cloud SDK to define and deploy your application stack. It sets up the necessary environment variables and configures the Next.js application for deployment. -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! +To get started, ensure you have the required Restack Cloud credentials and environment variables set up. Then, run the script to initiate the deployment process. -## Deploy on Vercel +For more detailed information on deploying your repository to Restack, refer to the [Restack Cloud deployment documentation](https://docs.restack.io/restack-cloud/deployrepo). -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/examples/nextjs/package.json b/examples/nextjs/package.json index cf15bda..8894dc2 100644 --- a/examples/nextjs/package.json +++ b/examples/nextjs/package.json @@ -10,7 +10,7 @@ "clean": "rm -rf node_modules" }, "dependencies": { - "@restackio/ai": "^0.0.75", + "@restackio/ai": "^0.0.80", "next": "14.2.13", "react": "^18", "react-dom": "^18" diff --git a/examples/nextjs/pnpm-lock.yaml b/examples/nextjs/pnpm-lock.yaml index aac6b0c..c177c99 100644 --- a/examples/nextjs/pnpm-lock.yaml +++ b/examples/nextjs/pnpm-lock.yaml @@ -9,41 +9,41 @@ importers: .: dependencies: '@restackio/ai': - specifier: ^0.0.75 - version: 0.0.75(@swc/helpers@0.5.11) + specifier: ^0.0.80 + version: 0.0.80(@swc/helpers@0.5.11) next: specifier: 14.2.13 version: 14.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: ^18.3.1 + specifier: ^18 version: 18.3.1 react-dom: - specifier: ^18.3.1 + specifier: ^18 version: 18.3.1(react@18.3.1) devDependencies: '@types/node': - specifier: ^20.16.10 + specifier: ^20 version: 20.16.10 '@types/react': - specifier: ^18.3.11 + specifier: ^18 version: 18.3.11 '@types/react-dom': - specifier: ^18.3.0 + specifier: ^18 version: 18.3.0 eslint: - specifier: ^8.57.1 + specifier: ^8 version: 8.57.1 eslint-config-next: specifier: 14.2.13 version: 14.2.13(eslint@8.57.1)(typescript@5.6.2) postcss: - specifier: ^8.4.47 + specifier: ^8 version: 8.4.47 tailwindcss: - specifier: ^3.4.13 + specifier: ^3.4.1 version: 3.4.13 typescript: - specifier: ^5.6.2 + specifier: ^5 version: 5.6.2 packages: @@ -248,8 +248,8 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/ai@0.0.75': - resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + '@restackio/ai@0.0.80': + resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} engines: {node: '>=20'} '@rtsao/scc@1.1.0': @@ -2199,7 +2199,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/ai@0.0.75(@swc/helpers@0.5.11)': + '@restackio/ai@0.0.80(@swc/helpers@0.5.11)': dependencies: '@temporalio/activity': 1.11.2 '@temporalio/client': 1.11.2 diff --git a/examples/nextjs/restack-examples-ts-nextjs-web-ui.png b/examples/nextjs/restack-examples-ts-nextjs-web-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..4adb8a969bf4a83c2e1ba49e6c78ec2c3fe2132e GIT binary patch literal 211278 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

    Zw9c7EQ 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 literal 0 HcmV?d00001 diff --git a/examples/nextjs/restack-examples-ts-nextjs.png b/examples/nextjs/restack-examples-ts-nextjs.png new file mode 100644 index 0000000000000000000000000000000000000000..e20db8ef2d7f2f046d8bb81dce26c0f3e41b5bb9 GIT binary patch literal 157186 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 literal 0 HcmV?d00001 From a860350d5183d4a661fbce38e0f9608dcfba45c5 Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 22:59:50 -0700 Subject: [PATCH 116/122] add web ui to readme Former-commit-id: 100d87182dceac129ef582d91d301dc481933701 Former-commit-id: 6fd66e97f26fa6d2729e68c77cb97ecdb3ba819b --- examples/openai/readme.md | 15 ++++++++++++++- examples/posthog/readme.md | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/examples/openai/readme.md b/examples/openai/readme.md index 98cea9a..b358663 100644 --- a/examples/openai/readme.md +++ b/examples/openai/readme.md @@ -9,6 +9,13 @@ nvm use 20 brew install pnpm +# Install Restack Web UI + +To install the Restack Web UI, you can use Docker. +``` +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main +``` + # Start pods Where all your code is defined, including workflow steps. @@ -44,6 +51,12 @@ flowchart TD P2 -->|sends status output | E ``` -# Deploy +## Deploy on Restack pnpm restack-up + +To deploy the application on Restack, you can use the provided `restack_up.mjs` script. This script utilizes the Restack Cloud SDK to define and deploy your application stack. It sets up the necessary environment variables and configures the application for deployment. + +To get started, ensure you have the required Restack Cloud credentials and environment variables set up. Then, run the script to initiate the deployment process. + +For more detailed information on deploying your repository to Restack, refer to the [Restack Cloud deployment documentation](https://docs.restack.io/restack-cloud/deployrepo). \ No newline at end of file diff --git a/examples/posthog/readme.md b/examples/posthog/readme.md index 9b673c6..286027f 100644 --- a/examples/posthog/readme.md +++ b/examples/posthog/readme.md @@ -7,6 +7,13 @@ And OpenAI O1-preview to reason and create a digest in Markdown. By default we retrieve all recodings from last 24 hours, so by scheduling the workflow to run every day we get a digest of all new recordings. +# Install Restack Web UI + +To install the Restack Web UI, you can use Docker. +``` +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main +``` + # Install dependencies pnpm i @@ -23,6 +30,12 @@ pnpm dev pnpm schedule -# deploy +## Deploy on Restack pnpm restack-up + +To deploy the application on Restack, you can use the provided `restack_up.mjs` script. This script utilizes the Restack Cloud SDK to define and deploy your application stack. It sets up the necessary environment variables and configures the application for deployment. + +To get started, ensure you have the required Restack Cloud credentials and environment variables set up. Then, run the script to initiate the deployment process. + +For more detailed information on deploying your repository to Restack, refer to the [Restack Cloud deployment documentation](https://docs.restack.io/restack-cloud/deployrepo). From 8b3e98e6f917f01ca1165a97c436c9f3e8851ff9 Mon Sep 17 00:00:00 2001 From: martinibach Date: Sat, 26 Oct 2024 23:18:21 -0700 Subject: [PATCH 117/122] bump up restack libraries for voice example Former-commit-id: e69424fcce9933d20098ad40d20333d1dd06cc1c Former-commit-id: 4ccd89a03599f6a6c81f6ce3037c7503b3c28f47 --- examples/voice/package.json | 10 +++--- examples/voice/pnpm-lock.yaml | 63 ++++++++++++++++++----------------- examples/voice/readme.md | 7 ++++ 3 files changed, 44 insertions(+), 36 deletions(-) diff --git a/examples/voice/package.json b/examples/voice/package.json index fb1f60e..b2d44a9 100644 --- a/examples/voice/package.json +++ b/examples/voice/package.json @@ -18,11 +18,11 @@ "license": "ISC", "dependencies": { "@deepgram/sdk": "^3.6.0", - "@restackio/integrations-deepgram": "^0.0.8", - "@restackio/integrations-openai": "^0.0.3", - "@restackio/integrations-twilio": "^0.0.5", - "@restackio/integrations-websocket": "^0.0.12", - "@restackio/ai": "^0.0.75", + "@restackio/integrations-deepgram": "^0.0.11", + "@restackio/integrations-openai": "^0.0.29", + "@restackio/integrations-twilio": "^0.0.8", + "@restackio/integrations-websocket": "^0.0.15", + "@restackio/ai": "^0.0.80", "@temporalio/workflow": "1.11.1", "cors": "^2.8.5", "dotenv": "^16.4.5", diff --git a/examples/voice/pnpm-lock.yaml b/examples/voice/pnpm-lock.yaml index 5e5834a..f3868b8 100644 --- a/examples/voice/pnpm-lock.yaml +++ b/examples/voice/pnpm-lock.yaml @@ -9,23 +9,23 @@ importers: .: dependencies: '@deepgram/sdk': - specifier: ^3.8.0 + specifier: ^3.6.0 version: 3.8.0(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/ai': - specifier: ^0.0.75 - version: 0.0.75 + specifier: ^0.0.80 + version: 0.0.80 '@restackio/integrations-deepgram': - specifier: ^0.0.8 - version: 0.0.8(bufferutil@4.0.8)(encoding@0.1.12) + specifier: ^0.0.11 + version: 0.0.11(bufferutil@4.0.8)(encoding@0.1.12) '@restackio/integrations-openai': - specifier: ^0.0.3 - version: 0.0.3(encoding@0.1.12)(zod@3.23.8) + specifier: ^0.0.29 + version: 0.0.29(encoding@0.1.12)(zod@3.23.8) '@restackio/integrations-twilio': - specifier: ^0.0.5 - version: 0.0.5 + specifier: ^0.0.8 + version: 0.0.8 '@restackio/integrations-websocket': - specifier: ^0.0.12 - version: 0.0.12(bufferutil@4.0.8) + specifier: ^0.0.15 + version: 0.0.15(bufferutil@4.0.8) '@temporalio/workflow': specifier: 1.11.1 version: 1.11.1 @@ -39,13 +39,13 @@ importers: specifier: ^4.21.0 version: 4.21.0 openai: - specifier: ^4.67.1 + specifier: ^4.59.0 version: 4.67.1(encoding@0.1.12)(zod@3.23.8) ts-node: specifier: ^10.9.2 version: 10.9.2(@swc/core@1.7.26)(@types/node@22.7.4)(typescript@5.6.2) twilio: - specifier: ^5.3.3 + specifier: ^5.3.0 version: 5.3.3 typescript: specifier: ^5.6.2 @@ -65,7 +65,7 @@ importers: version: 4.0.8 devDependencies: '@restackio/restack-sdk-cloud-ts': - specifier: ^1.0.16 + specifier: ^1.0.5 version: 1.0.16 '@types/cors': specifier: ^2.8.17 @@ -74,7 +74,7 @@ importers: specifier: ^4.17.21 version: 4.17.21 '@types/node': - specifier: ^22.7.4 + specifier: ^22.5.4 version: 22.7.4 '@types/uuid': specifier: ^10.0.0 @@ -83,7 +83,7 @@ importers: specifier: ^8.5.12 version: 8.5.12 nodemon: - specifier: ^3.1.7 + specifier: ^3.1.4 version: 3.1.7 ts-node-dev: specifier: ^2.0.0 @@ -193,25 +193,26 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@restackio/ai@0.0.75': - resolution: {integrity: sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==} + '@restackio/ai@0.0.80': + resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} engines: {node: '>=20'} - '@restackio/integrations-deepgram@0.0.8': - resolution: {integrity: sha512-99GHdrP0dt4UsYYAySLWQFzAOx469FzmmXXwvpbmbQ4ZELavmyR4QMxxs1IGWvL9B1kMq2kdUyvJyVt9q48H/w==} + '@restackio/integrations-deepgram@0.0.11': + resolution: {integrity: sha512-7qqmIo5EjYRB2bXRygOz/DI926+4ar3h9831T+pSRD38SWTlpvwiNThnBEIBKb4vuxB96ulDsQznQTvmzMNVFA==} - '@restackio/integrations-openai@0.0.3': - resolution: {integrity: sha512-kp/b0tbKxWM/lkbK2Vi6l6nnh3u3oJ6R+EXmFyxkKNOTlBz4e+XfXKFodz0PWXZtQuXzi8mGA/+SYqxb93Z9ZA==} + '@restackio/integrations-openai@0.0.29': + resolution: {integrity: sha512-pZmU9aeLW/yno2jtReSYyC+20tHCEmpInkwtYG3LZpmwWgyiUmz2hjxlnZ2H1r5WQQWL9xUvV2TOrk3dCKfg0A==} - '@restackio/integrations-twilio@0.0.5': - resolution: {integrity: sha512-olepmD/snHYPHJ62iRsHTrPC/zFDaWtqQICwyDZub6jkTKULtMkjospNmNZ3xT/pZ/sCx0yqW/2rGl97D88kmQ==} + '@restackio/integrations-twilio@0.0.8': + resolution: {integrity: sha512-7On5khfVd7w7q2OFQCp3XBNkw8wll/rcHGnrpXwcBII+dacnuKp4l9x8qxTCTaOkmGsXJcvq3c3x8jZHaXB7yA==} - '@restackio/integrations-websocket@0.0.12': - resolution: {integrity: sha512-6fWEjmpNGwo4qE+p2Mm/aGNjHMFvsFkddt/QA/cQMuASLRG9D1ohApfckpy/4zpyYkjNBJq/GWQnXbeJnFzskw==} + '@restackio/integrations-websocket@0.0.15': + resolution: {integrity: sha512-RjJhGn9ej45mfR1mqeZyCOZKR8N5fImQvkLfbfSlaIl1IbWN2pY0dkXV/0urEHbX12dAunQhsGvlalRDsma1Cg==} '@restackio/restack-sdk-cloud-ts@1.0.16': resolution: {integrity: sha512-oIanzD6ym6c+hZ6eMJozTaIxGmMn1hPZRwogzz4v2hdd40IpdbwuHc98bPrHjswS1rZa+vjPjLbKoSuLlZloOQ==} engines: {node: '>=18'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@swc/core-darwin-arm64@1.7.26': resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} @@ -1655,7 +1656,7 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@restackio/ai@0.0.75': + '@restackio/ai@0.0.80': dependencies: '@temporalio/activity': 1.11.2 '@temporalio/client': 1.11.2 @@ -1667,7 +1668,7 @@ snapshots: - uglify-js - webpack-cli - '@restackio/integrations-deepgram@0.0.8(bufferutil@4.0.8)(encoding@0.1.12)': + '@restackio/integrations-deepgram@0.0.11(bufferutil@4.0.8)(encoding@0.1.12)': dependencies: '@deepgram/sdk': 3.8.0(bufferutil@4.0.8)(encoding@0.1.12) transitivePeerDependencies: @@ -1675,21 +1676,21 @@ snapshots: - encoding - utf-8-validate - '@restackio/integrations-openai@0.0.3(encoding@0.1.12)(zod@3.23.8)': + '@restackio/integrations-openai@0.0.29(encoding@0.1.12)(zod@3.23.8)': dependencies: openai: 4.67.1(encoding@0.1.12)(zod@3.23.8) transitivePeerDependencies: - encoding - zod - '@restackio/integrations-twilio@0.0.5': + '@restackio/integrations-twilio@0.0.8': dependencies: twilio: 5.3.3 transitivePeerDependencies: - debug - supports-color - '@restackio/integrations-websocket@0.0.12(bufferutil@4.0.8)': + '@restackio/integrations-websocket@0.0.15(bufferutil@4.0.8)': dependencies: ws: 8.18.0(bufferutil@4.0.8) transitivePeerDependencies: diff --git a/examples/voice/readme.md b/examples/voice/readme.md index bc06401..2db2036 100644 --- a/examples/voice/readme.md +++ b/examples/voice/readme.md @@ -7,6 +7,13 @@ Add OPENAI_API_KEY and DEEPGRAM_API_KEY keys in .env pnpm dev-server pnpm dev-services +# Install Restack Web UI + +To install the Restack Web UI, you can use Docker. +``` +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main +``` + # Use frontend with browser microphone: https://github.com/restackio/voice-frontend From ebbb5d15cf877daad462061bce0cc34d58b206a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 27 Oct 2024 07:01:24 +0000 Subject: [PATCH 118/122] Bump semver and nodemon in /examples/get-started Bumps [semver](https://github.com/npm/node-semver) to 7.6.3 and updates ancestor dependency [nodemon](https://github.com/remy/nodemon). These dependencies need to be updated together. Updates `semver` from 7.0.0 to 7.6.3 - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v7.0.0...v7.6.3) Updates `nodemon` from 2.0.22 to 3.1.7 - [Release notes](https://github.com/remy/nodemon/releases) - [Commits](https://github.com/remy/nodemon/compare/v2.0.22...v3.1.7) --- updated-dependencies: - dependency-name: semver dependency-type: indirect - dependency-name: nodemon dependency-type: direct:production ... Signed-off-by: dependabot[bot] Former-commit-id: 10ec80c19093c854e23f8fad1e5526e758ff2576 Former-commit-id: 7e10dfa2883fd52631d4c518026f8b9fef6c1dee --- examples/get-started/package-lock.json | 277 ++++--------------------- examples/get-started/package.json | 2 +- examples/get-started/pnpm-lock.yaml | 65 +++--- 3 files changed, 69 insertions(+), 275 deletions(-) diff --git a/examples/get-started/package-lock.json b/examples/get-started/package-lock.json index c2efa9a..3f24f17 100644 --- a/examples/get-started/package-lock.json +++ b/examples/get-started/package-lock.json @@ -1,18 +1,17 @@ { "name": "@restackio/get-started", - "version": "1.0.8", + "version": "1.0.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@restackio/get-started", - "version": "1.0.8", + "version": "1.0.12", "license": "MIT", "dependencies": { - "@restackio/ai": "^0.0.75", - "@restackio/integrations-openai": "^0.0.24", + "@restackio/ai": "^0.0.80", "@temporalio/workflow": "^1.11.2", - "nodemon": "^2.0.22", + "nodemon": "^3.1.7", "ts-node": "^10.9.2", "wait-on": "^8.0.1" }, @@ -21,6 +20,7 @@ }, "devDependencies": { "@clack/prompts": "^0.7.0", + "@types/node": "^22.8.1", "tsup": "8.3.0", "typescript": "5.6.2" } @@ -766,9 +766,9 @@ "license": "BSD-3-Clause" }, "node_modules/@restackio/ai": { - "version": "0.0.75", - "resolved": "https://registry.npmjs.org/@restackio/ai/-/ai-0.0.75.tgz", - "integrity": "sha512-Q3IKIJHseWM+CDoZWvgPmuv15ryZkHsCY2jq6FbdnW44MMjOOcI3QUbpZJPHLGlLZ5ucnSbQxiZBvHDDnOZfVQ==", + "version": "0.0.80", + "resolved": "https://registry.npmjs.org/@restackio/ai/-/ai-0.0.80.tgz", + "integrity": "sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==", "dependencies": { "@temporalio/activity": "^1.11.1", "@temporalio/client": "^1.11.1", @@ -779,14 +779,6 @@ "node": ">=20" } }, - "node_modules/@restackio/integrations-openai": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/@restackio/integrations-openai/-/integrations-openai-0.0.24.tgz", - "integrity": "sha512-CqkZaLobYV+mfTjTz0vcRctb16JA0KclHC3h1aKjJiylB5ht3LigC0tYWJaApDBSvUbMoA7v5QueWR9Q8fJslQ==", - "dependencies": { - "openai": "^4.60.1" - } - }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", @@ -1379,21 +1371,11 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.7.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.7.tgz", - "integrity": "sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==", - "license": "MIT", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.1.tgz", + "integrity": "sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==", "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@types/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" + "undici-types": "~6.19.8" } }, "node_modules/@webassemblyjs/ast": { @@ -1599,17 +1581,6 @@ "node": ">=0.4.0" } }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2058,19 +2029,25 @@ } }, "node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "license": "MIT", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "^2.1.1" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/debug/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/delayed-stream": { "version": "1.0.0", @@ -2351,23 +2328,6 @@ "node": ">= 6" } }, - "node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" - }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" - } - }, "node_modules/fs-monkey": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", @@ -2509,19 +2469,6 @@ "node": ">=10.17.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/humanize-ms/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/hyperdyperid": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", @@ -2878,62 +2825,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "license": "MIT" }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -2941,18 +2832,17 @@ "license": "MIT" }, "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", - "license": "MIT", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", + "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==", "dependencies": { "chokidar": "^3.5.2", - "debug": "^3.2.7", + "debug": "^4", "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" @@ -2961,7 +2851,7 @@ "nodemon": "bin/nodemon.js" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" }, "funding": { "type": "opencollective", @@ -3037,44 +2927,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/openai": { - "version": "4.68.2", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.68.2.tgz", - "integrity": "sha512-Ys3Jl9vkBUFtrFj4pgrF7rMte4JNekZoMgI6dWkkpOIwNUKGkc4I8jTqv86LB+TcoqkTPzV6DS269dPR9ILWsQ==", - "dependencies": { - "@types/node": "^18.11.18", - "@types/node-fetch": "^2.6.4", - "abort-controller": "^3.0.0", - "agentkeepalive": "^4.2.1", - "form-data-encoder": "1.7.2", - "formdata-node": "^4.3.2", - "node-fetch": "^2.6.7" - }, - "bin": { - "openai": "bin/cli" - }, - "peerDependencies": { - "zod": "^3.23.8" - }, - "peerDependenciesMeta": { - "zod": { - "optional": true - } - } - }, - "node_modules/openai/node_modules/@types/node": { - "version": "18.19.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.59.tgz", - "integrity": "sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/openai/node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -3367,12 +3219,14 @@ } }, "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/serialize-javascript": { @@ -3415,24 +3269,14 @@ "license": "ISC" }, "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dependencies": { - "semver": "~7.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=10" } }, "node_modules/sisteransi": { @@ -3989,31 +3833,6 @@ } } }, - "node_modules/tsup/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/tsup/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/tsup/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", @@ -4149,14 +3968,6 @@ "node": ">=10.13.0" } }, - "node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", - "engines": { - "node": ">= 14" - } - }, "node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", diff --git a/examples/get-started/package.json b/examples/get-started/package.json index 1a99bb6..15aef0b 100644 --- a/examples/get-started/package.json +++ b/examples/get-started/package.json @@ -21,7 +21,7 @@ "dependencies": { "@restackio/ai": "^0.0.80", "@temporalio/workflow": "^1.11.2", - "nodemon": "^2.0.22", + "nodemon": "^3.1.7", "ts-node": "^10.9.2", "wait-on": "^8.0.1" }, diff --git a/examples/get-started/pnpm-lock.yaml b/examples/get-started/pnpm-lock.yaml index da96ec9..a20372e 100644 --- a/examples/get-started/pnpm-lock.yaml +++ b/examples/get-started/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: ^1.11.2 version: 1.11.3 nodemon: - specifier: ^2.0.22 - version: 2.0.22 + specifier: ^3.1.7 + version: 3.1.7 ts-node: specifier: ^10.9.2 version: 10.9.2(@swc/core@1.7.39)(@types/node@22.8.1)(typescript@5.6.2) @@ -300,8 +300,8 @@ packages: resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} engines: {node: '>=20'} - '@rollup/wasm-node@4.24.0': - resolution: {integrity: sha512-LL6oALR6fKG6GihtH0K0uWLAl19Q/QJst+oKJT1VWwFo4sPLA0/7JeZaSqrpFWq8OPloiKx/NDG4BWppFSX2vQ==} + '@rollup/wasm-node@4.24.1': + resolution: {integrity: sha512-MIm7hTWvNb1W8cuK+oGtfsoe56kjzOYq1GX4O3Ztilrr12jV045JRdVkjzgg8+q1F8rYZ8WyVTjIARm7vKszMw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -630,14 +630,6 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -936,9 +928,9 @@ packages: node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - nodemon@2.0.22: - resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} - engines: {node: '>=8.10.0'} + nodemon@3.1.7: + resolution: {integrity: sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==} + engines: {node: '>=10'} hasBin: true normalize-path@3.0.0: @@ -1047,12 +1039,9 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@7.0.0: - resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} hasBin: true serialize-javascript@6.0.2: @@ -1073,9 +1062,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-update-notifier@1.1.0: - resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} - engines: {node: '>=8.10.0'} + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -1538,7 +1527,7 @@ snapshots: - uglify-js - webpack-cli - '@rollup/wasm-node@4.24.0': + '@rollup/wasm-node@4.24.1': dependencies: '@types/estree': 1.0.6 optionalDependencies: @@ -1902,16 +1891,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - debug@3.2.7(supports-color@5.5.0): + debug@4.3.7(supports-color@5.5.0): dependencies: ms: 2.1.3 optionalDependencies: supports-color: 5.5.0 - debug@4.3.7: - dependencies: - ms: 2.1.3 - delayed-stream@1.0.0: {} diff@4.0.2: {} @@ -2165,15 +2150,15 @@ snapshots: node-releases@2.0.18: {} - nodemon@2.0.22: + nodemon@3.1.7: dependencies: chokidar: 3.6.0 - debug: 3.2.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@5.5.0) ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 - semver: 5.7.2 - simple-update-notifier: 1.1.0 + semver: 7.6.3 + simple-update-notifier: 2.0.0 supports-color: 5.5.0 touch: 3.1.1 undefsafe: 2.0.5 @@ -2262,9 +2247,7 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - semver@5.7.2: {} - - semver@7.0.0: {} + semver@7.6.3: {} serialize-javascript@6.0.2: dependencies: @@ -2280,9 +2263,9 @@ snapshots: signal-exit@4.1.0: {} - simple-update-notifier@1.1.0: + simple-update-notifier@2.0.0: dependencies: - semver: 7.0.0 + semver: 7.6.3 sisteransi@1.0.5: {} @@ -2437,14 +2420,14 @@ snapshots: cac: 6.7.14 chokidar: 3.6.0 consola: 3.2.3 - debug: 4.3.7 + debug: 4.3.7(supports-color@5.5.0) esbuild: 0.23.1 execa: 5.1.1 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1 resolve-from: 5.0.0 - rollup: '@rollup/wasm-node@4.24.0' + rollup: '@rollup/wasm-node@4.24.1' source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyglobby: 0.2.9 From 4e27598e37051e4174ababec39548f5e61fb269a Mon Sep 17 00:00:00 2001 From: Osman Hernandez Date: Tue, 29 Oct 2024 11:32:40 +0100 Subject: [PATCH 119/122] gemini example (#18) * gemini example * update readme * remove zod * fix env example Former-commit-id: de7841a9af28191406dfdeccabd8684e2c80ee93 Former-commit-id: 248c8fbc702f68371017b0c5c30feb8a5e5006ed --- examples/gemini/.env.example | 9 + examples/gemini/Dockerfile | 40 + examples/gemini/package.json | 36 + examples/gemini/pnpm-lock.yaml | 2409 ++++++++++++++++++++++ examples/gemini/readme.md | 77 + examples/gemini/restack_up.mjs | 44 + examples/gemini/scheduleWorkflow.ts | 29 + examples/gemini/src/client.ts | 13 + examples/gemini/src/functions/goodbye.ts | 11 + examples/gemini/src/functions/index.ts | 1 + examples/gemini/src/services.ts | 27 + examples/gemini/src/workflows/hello.ts | 36 + examples/gemini/src/workflows/index.ts | 1 + examples/gemini/tsconfig.json | 14 + 14 files changed, 2747 insertions(+) create mode 100644 examples/gemini/.env.example create mode 100644 examples/gemini/Dockerfile create mode 100644 examples/gemini/package.json create mode 100644 examples/gemini/pnpm-lock.yaml create mode 100644 examples/gemini/readme.md create mode 100644 examples/gemini/restack_up.mjs create mode 100644 examples/gemini/scheduleWorkflow.ts create mode 100644 examples/gemini/src/client.ts create mode 100644 examples/gemini/src/functions/goodbye.ts create mode 100644 examples/gemini/src/functions/index.ts create mode 100644 examples/gemini/src/services.ts create mode 100644 examples/gemini/src/workflows/hello.ts create mode 100644 examples/gemini/src/workflows/index.ts create mode 100644 examples/gemini/tsconfig.json diff --git a/examples/gemini/.env.example b/examples/gemini/.env.example new file mode 100644 index 0000000..cb823f5 --- /dev/null +++ b/examples/gemini/.env.example @@ -0,0 +1,9 @@ +GEMINI_API_KEY= + +# Restack + +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= + +RESTACK_CLOUD_TOKEN= diff --git a/examples/gemini/Dockerfile b/examples/gemini/Dockerfile new file mode 100644 index 0000000..2417164 --- /dev/null +++ b/examples/gemini/Dockerfile @@ -0,0 +1,40 @@ +# ------- Image ---------- + +FROM node:20-bullseye-slim AS installer + +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +COPY ./package.json ./app/package.json +COPY ./tsconfig.json ./app/tsconfig.json + + +WORKDIR /app + +RUN npm install + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS builder +WORKDIR /app +COPY --from=installer /app . +COPY ./src ./src + +RUN npm run build + +# ------- Runner ---------- + +FROM node:20-bullseye-slim AS runner + +RUN addgroup --system --gid 1001 service +RUN adduser --system --uid 1001 service +USER service + +WORKDIR /app + +COPY --from=builder /app . + +ENV NODE_OPTIONS=”--max-old-space-size=4096″ + +CMD ["node", "dist/services"] \ No newline at end of file diff --git a/examples/gemini/package.json b/examples/gemini/package.json new file mode 100644 index 0000000..78bad70 --- /dev/null +++ b/examples/gemini/package.json @@ -0,0 +1,36 @@ +{ + "name": "sdk-gemini-example-ts", + "version": "1.0.0", + "description": "Basic Gemini example", + "scripts": { + "start": "ts-node src/services.ts", + "start.watch": "nodemon src/services.ts", + "dev": "pnpm start.watch", + "build": "tsc --build", + "clean": "rm -rf node_modules", + "schedule": "ts-node ./scheduleWorkflow.ts", + "restack-up": "node restack_up.mjs" + }, + "nodemonConfig": { + "execMap": { + "ts": "ts-node" + }, + "ext": "ts", + "watch": [ + "src" + ] + }, + "dependencies": { + "@restackio/ai": "^0.0.80", + "@restackio/integrations-google-gemini": "^0.0.1", + "@temporalio/workflow": "^1.11.2", + "dotenv": "^16.4.5" + }, + "devDependencies": { + "@restackio/cloud": "^1.0.17", + "@types/node": "^20.16.9", + "nodemon": "^2.0.22", + "ts-node": "^10.9.2", + "typescript": "^5.6.3" + } +} diff --git a/examples/gemini/pnpm-lock.yaml b/examples/gemini/pnpm-lock.yaml new file mode 100644 index 0000000..16d0e20 --- /dev/null +++ b/examples/gemini/pnpm-lock.yaml @@ -0,0 +1,2409 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@restackio/ai': + specifier: ^0.0.80 + version: 0.0.80 + '@restackio/integrations-google-gemini': + specifier: ^0.0.1 + version: 0.0.1 + '@temporalio/workflow': + specifier: ^1.11.2 + version: 1.11.2 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + devDependencies: + '@restackio/cloud': + specifier: ^1.0.17 + version: 1.0.17 + '@types/node': + specifier: ^20.16.9 + version: 20.16.10 + nodemon: + specifier: ^2.0.22 + version: 2.0.22 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.3) + typescript: + specifier: ^5.6.3 + version: 5.6.3 + + integrations/openai: + dependencies: + '@restackio/ai': + specifier: ^0.0.40 + version: 0.0.40 + '@temporalio/worker': + specifier: ^1.10.3 + version: 1.11.1 + '@temporalio/workflow': + specifier: ^1.10.3 + version: 1.11.1 + openai: + specifier: ^4.56.0 + version: 4.56.0(zod@3.23.8) + ts-node: + specifier: ^10.0.0 + version: 10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5) + typescript: + specifier: ^4.0.0 + version: 4.9.5 + zod: + specifier: ^3.23.8 + version: 3.23.8 + devDependencies: + '@types/node': + specifier: ^14.0.0 + version: 14.18.63 + +packages: + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@google/generative-ai@0.21.0': + resolution: {integrity: sha512-7XhUbtnlkSEZK15kN3t+tzIMxsbKm/dSkKBFalj+20NvPKe1kBY7mR2P7vuijEn+f06z5+A8bVGKO0v39cr6Wg==} + engines: {node: '>=18.0.0'} + + '@grpc/grpc-js@1.11.2': + resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} + engines: {node: '>=12.10.0'} + + '@grpc/grpc-js@1.12.0': + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.3.0': + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@restackio/ai@0.0.40': + resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} + engines: {node: '>=20'} + + '@restackio/ai@0.0.80': + resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} + engines: {node: '>=20'} + + '@restackio/cloud@1.0.17': + resolution: {integrity: sha512-OpKav5QYbesnigQuTwmIke0pKnw4ZwdWAeJNOrEWN5r/DFPiSUoYrZJ+XggiPxTSI0gb6JX/35k9U+LF5bQAoQ==} + engines: {node: '>=18'} + + '@restackio/integrations-google-gemini@0.0.1': + resolution: {integrity: sha512-ALL3CExYAO/yC6OVWulssEZj1XV5JuN/Gsx8dzv2DPuUkM8OiKCI5+LxtlP5hhfUKrlBdYk+020vwhyXT3+jGA==} + + '@swc/core-darwin-arm64@1.7.2': + resolution: {integrity: sha512-Zb8KiGaESzOgh5HBnp6Vhs2fRpngHIT81JOfIo0oaGlzAckamnG7UAXC/yK6cQ8q2KXc78utJ/yq/NM2yVKLqw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-arm64@1.7.26': + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.2': + resolution: {integrity: sha512-qb0HY9GEexpPm46Hb3OY7E6xb4r+eniiThm+0Gcnhf19EZV2ZlsCC8Rdbhmav33x++ZqSDzZ44fxMY2vnN5VDg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.26': + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.2': + resolution: {integrity: sha512-x2+MOK3RzH3yEkaukKtpDW/udM1x9GoYtXaLNqlq6ovAzZPQ9FDFI0pm1asL4akHUw3s7YTh1aUY7QscstJAHQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm-gnueabihf@1.7.26': + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.2': + resolution: {integrity: sha512-4J3HGEDus7a9xnrJUFGyJJgvj4w+BFGiZvs08xbw4Z1ZN4uHJQiJiDsQEAWWciKUxrOndP3SocUq/GhEGiDm0g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.26': + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.2': + resolution: {integrity: sha512-4FhQmYbj8SCmir4pHRLSn8IIFmRKHTL3eZFtOpm26RLME7rXL7Yt33DpzIeTRoHFIesI5NEfaR38WU5mY7P1pA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.26': + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.2': + resolution: {integrity: sha512-Loz10Hy6z5mBIAOe6OInOVsYu+PVxyknCB3thtr7QH+uqEz6dcXhU2ERrO2Lf4dsTsFs/Wb80rv8zTSwB8dpsw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.26': + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.2': + resolution: {integrity: sha512-8p8qNWaLcTa+qHX4NSv1KNm8BQ6zPoLXuOBo9DtOEqc+K60IISGKPCAS7TJlCcv0q20JnmxZ/cEWW5Qo4TR4XQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.26': + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.2': + resolution: {integrity: sha512-eNWAYOalBlFrhv/IVSQ1dxu7qIGuhxlUJZTYa8jsgLnKt93vAFd2cjLtKZ85k1OibBnq9PkKQyo4NKVr4hBavw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-arm64-msvc@1.7.26': + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.2': + resolution: {integrity: sha512-BbpaCPCnbQHCzpQ9yDH3qp1Y5Ijd0NSMNk4qqESN2WWx0ojV2uBTjPou5NC2MZxk8fM3iJpJ05enf+IeaXuh6A==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.26': + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.2': + resolution: {integrity: sha512-21mf4Jg9Arx0lUnmRQtYd8IQB4WkY4LHJrvcz3EmKbwCTCXI5rQ6Ifnjk7EmG3Tizv0giHqQBQLu5NXWBz45Mg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.26': + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.2': + resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/core@1.7.26': + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + + '@temporalio/activity@1.11.1': + resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} + + '@temporalio/activity@1.11.2': + resolution: {integrity: sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==} + + '@temporalio/client@1.11.1': + resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} + + '@temporalio/client@1.11.2': + resolution: {integrity: sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==} + + '@temporalio/common@1.11.1': + resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} + + '@temporalio/common@1.11.2': + resolution: {integrity: sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==} + + '@temporalio/core-bridge@1.11.1': + resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} + + '@temporalio/core-bridge@1.11.2': + resolution: {integrity: sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==} + + '@temporalio/proto@1.11.1': + resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} + + '@temporalio/proto@1.11.2': + resolution: {integrity: sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==} + + '@temporalio/worker@1.11.1': + resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} + engines: {node: '>= 16.0.0'} + + '@temporalio/worker@1.11.2': + resolution: {integrity: sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==} + engines: {node: '>= 16.0.0'} + + '@temporalio/workflow@1.11.1': + resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} + + '@temporalio/workflow@1.11.2': + resolution: {integrity: sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + + '@types/node@18.19.42': + resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} + + '@types/node@20.16.10': + resolution: {integrity: sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + caniuse-lite@1.0.30001660: + resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + hasBin: true + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + electron-to-chromium@1.5.20: + resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} + + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + engines: {node: '>=10.0.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + memfs@4.11.1: + resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} + engines: {node: '>= 4.0.0'} + + memfs@4.12.0: + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} + engines: {node: '>= 4.0.0'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + ms@3.0.0-canary.1: + resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} + engines: {node: '>=12.13'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nodemon@2.0.22: + resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} + engines: {node: '>=8.10.0'} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + openai@4.56.0: + resolution: {integrity: sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + simple-git@3.27.0: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + + simple-update-notifier@1.1.0: + resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} + engines: {node: '>=8.10.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-loader@4.0.2: + resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.32.0: + resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} + engines: {node: '>=10'} + hasBin: true + + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} + engines: {node: '>=10'} + hasBin: true + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unionfs@4.5.4: + resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@google/generative-ai@0.21.0': {} + + '@grpc/grpc-js@1.11.2': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/grpc-js@1.12.0': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 + + '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@jsonjoy.com/util@1.5.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@restackio/ai@0.0.40': + dependencies: + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1 + '@temporalio/workflow': 1.11.1 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@restackio/ai@0.0.80': + dependencies: + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/worker': 1.11.2 + '@temporalio/workflow': 1.11.2 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@restackio/cloud@1.0.17': + dependencies: + chalk: 4.1.2 + dotenv: 16.4.5 + open: 10.1.0 + simple-git: 3.27.0 + yup: 1.4.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + + '@restackio/integrations-google-gemini@0.0.1': + dependencies: + '@google/generative-ai': 0.21.0 + + '@swc/core-darwin-arm64@1.7.2': + optional: true + + '@swc/core-darwin-arm64@1.7.26': + optional: true + + '@swc/core-darwin-x64@1.7.2': + optional: true + + '@swc/core-darwin-x64@1.7.26': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.2': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.26': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.2': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.26': + optional: true + + '@swc/core-linux-arm64-musl@1.7.2': + optional: true + + '@swc/core-linux-arm64-musl@1.7.26': + optional: true + + '@swc/core-linux-x64-gnu@1.7.2': + optional: true + + '@swc/core-linux-x64-gnu@1.7.26': + optional: true + + '@swc/core-linux-x64-musl@1.7.2': + optional: true + + '@swc/core-linux-x64-musl@1.7.26': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.2': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.26': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.2': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.26': + optional: true + + '@swc/core-win32-x64-msvc@1.7.2': + optional: true + + '@swc/core-win32-x64-msvc@1.7.26': + optional: true + + '@swc/core@1.7.2': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.2 + '@swc/core-darwin-x64': 1.7.2 + '@swc/core-linux-arm-gnueabihf': 1.7.2 + '@swc/core-linux-arm64-gnu': 1.7.2 + '@swc/core-linux-arm64-musl': 1.7.2 + '@swc/core-linux-x64-gnu': 1.7.2 + '@swc/core-linux-x64-musl': 1.7.2 + '@swc/core-win32-arm64-msvc': 1.7.2 + '@swc/core-win32-ia32-msvc': 1.7.2 + '@swc/core-win32-x64-msvc': 1.7.2 + optional: true + + '@swc/core@1.7.26': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.12': + dependencies: + '@swc/counter': 0.1.3 + + '@temporalio/activity@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + abort-controller: 3.0.0 + + '@temporalio/activity@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + abort-controller: 3.0.0 + + '@temporalio/client@1.11.1': + dependencies: + '@grpc/grpc-js': 1.11.2 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/client@1.11.2': + dependencies: + '@grpc/grpc-js': 1.12.0 + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/common@1.11.1': + dependencies: + '@temporalio/proto': 1.11.1 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/common@1.11.2': + dependencies: + '@temporalio/proto': 1.11.2 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/core-bridge@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/proto@1.11.1': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/proto@1.11.2': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/worker@1.11.1': + dependencies: + '@swc/core': 1.7.26 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/common': 1.11.1 + '@temporalio/core-bridge': 1.11.1 + '@temporalio/proto': 1.11.1 + '@temporalio/workflow': 1.11.1 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.11.1 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.26)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) + unionfs: 4.5.4 + webpack: 5.94.0(@swc/core@1.7.26) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/worker@1.11.2': + dependencies: + '@swc/core': 1.7.26 + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/common': 1.11.2 + '@temporalio/core-bridge': 1.11.2 + '@temporalio/proto': 1.11.2 + '@temporalio/workflow': 1.11.2 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.12.0 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + unionfs: 4.5.4 + webpack: 5.95.0(@swc/core@1.7.26) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/workflow@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + + '@temporalio/workflow@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/estree@1.0.5': {} + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 20.16.10 + form-data: 4.0.0 + + '@types/node@14.18.63': {} + + '@types/node@18.19.42': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.16.10': + dependencies: + undici-types: 6.19.8 + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + arg@5.0.2: {} + + asynckit@0.4.0: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001660 + electron-to-chromium: 1.5.20 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + + buffer-from@1.1.2: {} + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + caniuse-lite@1.0.30001660: {} + + caniuse-lite@1.0.30001667: {} + + cargo-cp-artifact@0.1.9: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chrome-trace-event@1.0.4: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + concat-map@0.0.1: {} + + create-require@1.1.1: {} + + debug@3.2.7(supports-color@5.5.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + define-lazy-prop@3.0.0: {} + + delayed-stream@1.0.0: {} + + diff@4.0.2: {} + + dotenv@16.4.5: {} + + electron-to-chromium@1.5.20: {} + + electron-to-chromium@1.5.32: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-module-lexer@1.5.4: {} + + escalade@3.2.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + event-target-shim@5.0.1: {} + + events@3.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + form-data-encoder@1.7.2: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + fs-monkey@1.0.6: {} + + fsevents@2.3.3: + optional: true + + get-caller-file@2.0.5: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + graceful-fs@4.2.11: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + heap-js@2.5.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + hyperdyperid@1.2.0: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore-by-default@1.0.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-number@7.0.0: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isexe@3.1.1: {} + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.16.10 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + loader-runner@4.3.0: {} + + lodash.camelcase@4.3.0: {} + + long@5.2.3: {} + + make-error@1.3.6: {} + + memfs@4.11.1: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + memfs@4.12.0: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + merge-stream@2.0.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + ms@2.1.3: {} + + ms@3.0.0-canary.1: {} + + neo-async@2.6.2: {} + + node-domexception@1.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-releases@2.0.18: {} + + nodemon@2.0.22: + dependencies: + chokidar: 3.6.0 + debug: 3.2.7(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 5.7.2 + simple-update-notifier: 1.1.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + + normalize-path@3.0.0: {} + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + openai@4.56.0(zod@3.23.8): + dependencies: + '@types/node': 18.19.42 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + optionalDependencies: + zod: 3.23.8 + transitivePeerDependencies: + - encoding + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + property-expr@2.0.6: {} + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.4.0 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.16.10 + long: 5.2.3 + + pstree.remy@1.1.8: {} + + punycode@2.3.1: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + require-directory@2.1.1: {} + + run-applescript@7.0.0: {} + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + semver@5.7.2: {} + + semver@7.0.0: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + simple-git@3.27.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + simple-update-notifier@1.1.0: + dependencies: + semver: 7.0.0 + + source-map-js@1.2.1: {} + + source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.26)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.94.0(@swc/core@1.7.26) + + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.95.0(@swc/core@1.7.26) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): + dependencies: + '@swc/core': 1.7.26 + '@swc/counter': 0.1.3 + webpack: 5.94.0(@swc/core@1.7.26) + + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + '@swc/core': 1.7.26 + '@swc/counter': 0.1.3 + webpack: 5.95.0(@swc/core@1.7.26) + + tapable@2.2.1: {} + + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.32.0 + webpack: 5.94.0(@swc/core@1.7.26) + optionalDependencies: + '@swc/core': 1.7.26 + + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.34.1 + webpack: 5.95.0(@swc/core@1.7.26) + optionalDependencies: + '@swc/core': 1.7.26 + + terser@5.32.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + terser@5.34.1: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + thingies@1.21.0(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + tiny-case@1.0.3: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toposort@2.0.2: {} + + touch@3.1.1: {} + + tr46@0.0.3: {} + + tree-dump@1.0.2(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + ts-node@10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 14.18.63 + acorn: 8.12.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.2 + + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.16.10 + acorn: 8.12.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.26 + + tslib@2.7.0: {} + + type-fest@2.19.0: {} + + typescript@4.9.5: {} + + typescript@5.6.3: {} + + undefsafe@2.0.5: {} + + undici-types@5.26.5: {} + + undici-types@6.19.8: {} + + unionfs@4.5.4: + dependencies: + fs-monkey: 1.0.6 + + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + + webpack-sources@3.2.3: {} + + webpack@5.94.0(@swc/core@1.7.26): + dependencies: + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.3 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webpack@5.95.0(@swc/core@1.7.26): + dependencies: + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.24.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + y18n@5.0.8: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yn@3.1.1: {} + + yup@1.4.0: + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + + zod@3.23.8: {} diff --git a/examples/gemini/readme.md b/examples/gemini/readme.md new file mode 100644 index 0000000..12a9a01 --- /dev/null +++ b/examples/gemini/readme.md @@ -0,0 +1,77 @@ +# Overview + +The gemini example showcases how you can call gemini restack ai integration from your workflows. In this example the AI will reply with a greeting message to the name provided, e.g "John" + +# Requirements + +- Node 20 or higher + +```bash +brew install nvm +nvm use 20 +``` + +- pnpm + +```bash +brew install pnpm +``` + +# Install Restack Web UI + +To install the Restack Web UI, you can use Docker. + +```bash +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main +``` + +# Start pods + +Where all your code is defined, including workflow steps. + +add GEMINI_API_KEY in .env + +```bash +pnpm i +pnpm build +pnpm dev +``` + +Your code will be running in pods and syncing with Restack engine to execute workflows or functions. + +# Schedule a workflow + +In another shell: + +```bash +pnpm schedule +``` + +Will schedule to start example workflow immediately. The code for this is on `scheduleWorkflow.ts`. In here you can see how the helloWorkflow is scheduled to be exectuted. + +# Architecture + +```mermaid +flowchart TD + C[fa:fa-bolt scheduleWorkflow client] -->|registers workflow with schedule| E{Restack Engine} + E --> |queries results| C + E -->|pulls queue with input| P1[fa:fa-ship restack pod] + E -->|orchestrates with rate limit| P2[fa:fa-ship gemini pod] + P1 -->|runs| W[fa:fa-th-list example workflow] + P1 -->|runs| Go[fa:fa-code goodbye function] + P2 -->|runs| Gr[fa:fa-code greet function] + P1 -->|sends status + output | E + P2 -->|sends status output | E +``` + +## Deploy on Restack + +```bash +pnpm restack-up +``` + +To deploy the application on Restack, you can use the provided `restack_up.mjs` script. This script utilizes the Restack Cloud SDK to define and deploy your application stack. It sets up the necessary environment variables and configures the application for deployment. + +To get started, ensure you have the required Restack Cloud credentials and environment variables set up. Then, run the script to initiate the deployment process. + +For more detailed information on deploying your repository to Restack, refer to the [Restack Cloud deployment documentation](https://docs.restack.io/restack-cloud/deployrepo). diff --git a/examples/gemini/restack_up.mjs b/examples/gemini/restack_up.mjs new file mode 100644 index 0000000..8e198ec --- /dev/null +++ b/examples/gemini/restack_up.mjs @@ -0,0 +1,44 @@ +import { RestackCloud } from "@restackio/cloud"; +import "dotenv/config"; + +const main = async () => { + const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); + + const restackEngineEnvs = [ + { + name: "RESTACK_ENGINE_ID", + value: process.env.RESTACK_ENGINE_ID, + }, + { + name: "RESTACK_ENGINE_ADDRESS", + value: process.env.RESTACK_ENGINE_ADDRESS, + }, + { + name: "RESTACK_ENGINE_API_KEY", + value: process.env.RESTACK_ENGINE_API_KEY, + }, + ]; + + const servicesApp = { + name: "services", + dockerFilePath: "examples/gemini/Dockerfile", + dockerBuildContext: "examples/gemini", + environmentVariables: [ + { + name: "GEMINI_API_KEY", + value: process.env.GEMINI_API_KEY, + }, + ...restackEngineEnvs, + ], + }; + + await restackCloudClient.stack({ + name: "gemini development environment", + previewEnabled: false, + applications: [servicesApp], + }); + + await restackCloudClient.up(); +}; + +main(); diff --git a/examples/gemini/scheduleWorkflow.ts b/examples/gemini/scheduleWorkflow.ts new file mode 100644 index 0000000..4d78696 --- /dev/null +++ b/examples/gemini/scheduleWorkflow.ts @@ -0,0 +1,29 @@ +import { client } from "./src/client"; + +export type InputSchedule = { + name: string; +}; + +async function scheduleWorkflow(input: InputSchedule) { + try { + const workflowId = `${Date.now()}-helloWorkflow`; + const runId = await client.scheduleWorkflow({ + workflowName: "helloWorkflow", + workflowId, + input, + }); + + const result = await client.getWorkflowResult({ workflowId, runId }); + + console.log("Workflow result:", result); + + process.exit(0); // Exit the process successfully + } catch (error) { + console.error("Error scheduling workflow:", error); + process.exit(1); // Exit the process with an error code + } +} + +scheduleWorkflow({ + name: "John", +}); diff --git a/examples/gemini/src/client.ts b/examples/gemini/src/client.ts new file mode 100644 index 0000000..b990acd --- /dev/null +++ b/examples/gemini/src/client.ts @@ -0,0 +1,13 @@ +import Restack from "@restackio/ai"; + +import "dotenv/config"; + +export const connectionOptions = { + engineId: process.env.RESTACK_ENGINE_ID!, + address: process.env.RESTACK_ENGINE_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, +}; + +export const client = new Restack( + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined +); diff --git a/examples/gemini/src/functions/goodbye.ts b/examples/gemini/src/functions/goodbye.ts new file mode 100644 index 0000000..acf1d86 --- /dev/null +++ b/examples/gemini/src/functions/goodbye.ts @@ -0,0 +1,11 @@ +interface Input { + name: string; +} + +interface Output { + message: string; +} + +export async function goodbye(input: Input): Promise { + return { message: `Goodbye, ${input.name}!` }; +} diff --git a/examples/gemini/src/functions/index.ts b/examples/gemini/src/functions/index.ts new file mode 100644 index 0000000..06411ee --- /dev/null +++ b/examples/gemini/src/functions/index.ts @@ -0,0 +1 @@ +export * from "./goodbye"; diff --git a/examples/gemini/src/services.ts b/examples/gemini/src/services.ts new file mode 100644 index 0000000..1c20d24 --- /dev/null +++ b/examples/gemini/src/services.ts @@ -0,0 +1,27 @@ +import { goodbye } from "./functions"; +import { geminiService } from "@restackio/integrations-google-gemini"; + +import { client } from "./client"; + +async function services() { + const workflowsPath = require.resolve("./workflows"); + try { + await Promise.all([ + // Start service with current workflows and functions + client.startService({ + workflowsPath, + functions: { goodbye }, + }), + // Start the gemini service + geminiService({ client }), + ]); + + console.log("Services running successfully."); + } catch (e) { + console.error("Failed to run services", e); + } +} + +services().catch((err) => { + console.error("Error running services:", err); +}); diff --git a/examples/gemini/src/workflows/hello.ts b/examples/gemini/src/workflows/hello.ts new file mode 100644 index 0000000..dc64db9 --- /dev/null +++ b/examples/gemini/src/workflows/hello.ts @@ -0,0 +1,36 @@ +import { log, step } from "@restackio/ai/workflow"; +import { geminiTaskQueue } from "@restackio/integrations-google-gemini/taskQueue"; +import * as geminiFunctions from "@restackio/integrations-google-gemini/functions"; +import * as functions from "../functions/index.js"; + +interface Input { + name: string; +} + +export async function helloWorkflow({ name }: Input) { + const userContent = `Greet this person: ${name}. In 4 words or less.`; + + // Step 1 create greeting message with google gemini + + const geminiOutput = await step({ + taskQueue: geminiTaskQueue, + }).geminiGenerateContent({ + userContent, + }); + + const greetMessage = geminiOutput.result.choices[0].message.content ?? ""; + + log.info("greeted", { greetMessage }); + + // Step 2 create goodbye message with simple function + + const { message: goodbyeMessage } = await step({}).goodbye({ + name, + }); + + log.info("goodbye", { goodbyeMessage }); + + return { + messages: [greetMessage, goodbyeMessage], + }; +} diff --git a/examples/gemini/src/workflows/index.ts b/examples/gemini/src/workflows/index.ts new file mode 100644 index 0000000..a132395 --- /dev/null +++ b/examples/gemini/src/workflows/index.ts @@ -0,0 +1 @@ +export * from "./hello"; diff --git a/examples/gemini/tsconfig.json b/examples/gemini/tsconfig.json new file mode 100644 index 0000000..f4d02b9 --- /dev/null +++ b/examples/gemini/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "Node16", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "resolveJsonModule": true + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules"] +} \ No newline at end of file From 58a2f328e77827d8f5455c4a0937ef54d2fe624d Mon Sep 17 00:00:00 2001 From: Osman Hernandez Date: Tue, 29 Oct 2024 15:10:13 +0100 Subject: [PATCH 120/122] composio example (#19) * composio example * create calendar event example Former-commit-id: 7d1ed56960e4f16d1218ccf38b0639bea1121a5b Former-commit-id: 3bf76058bbf0d3ed9d11a1d0de9b1ecfb819f6a7 --- examples/composio/.env.example | 9 + examples/composio/Dockerfile | 40 + examples/composio/package.json | 36 + examples/composio/pnpm-lock.yaml | 4564 +++++++++++++++++ examples/composio/readme.md | 62 + examples/composio/restack_up.mjs | 44 + examples/composio/scheduleWorkflow.ts | 33 + examples/composio/src/client.ts | 13 + examples/composio/src/services.ts | 25 + .../src/workflows/createCalendarEvent.ts | 20 + examples/composio/src/workflows/index.ts | 1 + examples/composio/tsconfig.json | 14 + examples/gemini/readme.md | 15 - 13 files changed, 4861 insertions(+), 15 deletions(-) create mode 100644 examples/composio/.env.example create mode 100644 examples/composio/Dockerfile create mode 100644 examples/composio/package.json create mode 100644 examples/composio/pnpm-lock.yaml create mode 100644 examples/composio/readme.md create mode 100644 examples/composio/restack_up.mjs create mode 100644 examples/composio/scheduleWorkflow.ts create mode 100644 examples/composio/src/client.ts create mode 100644 examples/composio/src/services.ts create mode 100644 examples/composio/src/workflows/createCalendarEvent.ts create mode 100644 examples/composio/src/workflows/index.ts create mode 100644 examples/composio/tsconfig.json diff --git a/examples/composio/.env.example b/examples/composio/.env.example new file mode 100644 index 0000000..a7b0c09 --- /dev/null +++ b/examples/composio/.env.example @@ -0,0 +1,9 @@ +COMPOSIO_API_KEY= +OPENAI_API_KEY= +# Restack + +RESTACK_ENGINE_ID= +RESTACK_ENGINE_ADDRESS= +RESTACK_ENGINE_API_KEY= + +RESTACK_CLOUD_TOKEN= diff --git a/examples/composio/Dockerfile b/examples/composio/Dockerfile new file mode 100644 index 0000000..2417164 --- /dev/null +++ b/examples/composio/Dockerfile @@ -0,0 +1,40 @@ +# ------- Image ---------- + +FROM node:20-bullseye-slim AS installer + +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +COPY ./package.json ./app/package.json +COPY ./tsconfig.json ./app/tsconfig.json + + +WORKDIR /app + +RUN npm install + +# ------- Builder ---------- + +FROM node:20-bullseye-slim AS builder +WORKDIR /app +COPY --from=installer /app . +COPY ./src ./src + +RUN npm run build + +# ------- Runner ---------- + +FROM node:20-bullseye-slim AS runner + +RUN addgroup --system --gid 1001 service +RUN adduser --system --uid 1001 service +USER service + +WORKDIR /app + +COPY --from=builder /app . + +ENV NODE_OPTIONS=”--max-old-space-size=4096″ + +CMD ["node", "dist/services"] \ No newline at end of file diff --git a/examples/composio/package.json b/examples/composio/package.json new file mode 100644 index 0000000..7b47159 --- /dev/null +++ b/examples/composio/package.json @@ -0,0 +1,36 @@ +{ + "name": "sdk-gemini-example-ts", + "version": "1.0.0", + "description": "Basic Gemini example", + "scripts": { + "start": "ts-node src/services.ts", + "start.watch": "nodemon src/services.ts", + "dev": "pnpm start.watch", + "build": "tsc --build", + "clean": "rm -rf node_modules", + "schedule": "ts-node ./scheduleWorkflow.ts", + "restack-up": "node restack_up.mjs" + }, + "nodemonConfig": { + "execMap": { + "ts": "ts-node" + }, + "ext": "ts", + "watch": [ + "src" + ] + }, + "dependencies": { + "@restackio/ai": "^0.0.80", + "@restackio/integrations-composio": "^0.0.3", + "@temporalio/workflow": "^1.11.2", + "dotenv": "^16.4.5" + }, + "devDependencies": { + "@restackio/cloud": "^1.0.17", + "@types/node": "^20.16.9", + "nodemon": "^2.0.22", + "ts-node": "^10.9.2", + "typescript": "^5.6.3" + } +} diff --git a/examples/composio/pnpm-lock.yaml b/examples/composio/pnpm-lock.yaml new file mode 100644 index 0000000..95be04a --- /dev/null +++ b/examples/composio/pnpm-lock.yaml @@ -0,0 +1,4564 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@restackio/ai': + specifier: ^0.0.80 + version: 0.0.80 + '@restackio/integrations-composio': + specifier: ^0.0.3 + version: 0.0.3(@swc/core@1.7.26)(@types/node@20.16.10)(bufferutil@4.0.8)(react@18.3.1)(sswr@2.1.0(svelte@5.1.4))(svelte@5.1.4)(typescript@5.6.3)(utf-8-validate@6.0.4)(vue@3.5.12(typescript@5.6.3))(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(zod@3.23.8) + '@temporalio/workflow': + specifier: ^1.11.2 + version: 1.11.2 + dotenv: + specifier: ^16.4.5 + version: 16.4.5 + devDependencies: + '@restackio/cloud': + specifier: ^1.0.17 + version: 1.0.17 + '@types/node': + specifier: ^20.16.9 + version: 20.16.10 + nodemon: + specifier: ^2.0.22 + version: 2.0.22 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.3) + typescript: + specifier: ^5.6.3 + version: 5.6.3 + + integrations/openai: + dependencies: + '@restackio/ai': + specifier: ^0.0.40 + version: 0.0.40 + '@temporalio/worker': + specifier: ^1.10.3 + version: 1.11.1 + '@temporalio/workflow': + specifier: ^1.10.3 + version: 1.11.1 + openai: + specifier: ^4.56.0 + version: 4.56.0(zod@3.23.8) + ts-node: + specifier: ^10.0.0 + version: 10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5) + typescript: + specifier: ^4.0.0 + version: 4.9.5 + zod: + specifier: ^3.23.8 + version: 3.23.8 + devDependencies: + '@types/node': + specifier: ^14.0.0 + version: 14.18.63 + +packages: + + '@ai-sdk/openai@0.0.36': + resolution: {integrity: sha512-6IcvR35UMuuQEQPkVjzUtqDAuz6vy+PMCEL0PAS2ufHXdPPm81OTKVetqjgOPjebsikhVP0soK1pKPEe2cztAQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + + '@ai-sdk/provider-utils@1.0.2': + resolution: {integrity: sha512-57f6O4OFVNEpI8Z8o+K40tIB3YQiTw+VCql/qrAO9Utq7Ti1o6+X9tvm177DlZJL7ft0Rwzvgy48S9YhrEKgmA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@ai-sdk/provider-utils@1.0.22': + resolution: {integrity: sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@ai-sdk/provider@0.0.12': + resolution: {integrity: sha512-oOwPQD8i2Ynpn22cur4sk26FW3mSy6t6/X/K1Ay2yGBKYiSpRyLfObhOrZEGsXDx+3euKy4nEZ193R36NM+tpQ==} + engines: {node: '>=18'} + + '@ai-sdk/provider@0.0.26': + resolution: {integrity: sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==} + engines: {node: '>=18'} + + '@ai-sdk/react@0.0.68': + resolution: {integrity: sha512-dD7cm2UsPWkuWg+qKRXjF+sNLVcUzWUnV25FxvEliJP7I2ajOpq8c+/xyGlm+YodyvAB0fX+oSODOeIWi7lCKg==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.0.0 + peerDependenciesMeta: + react: + optional: true + zod: + optional: true + + '@ai-sdk/solid@0.0.53': + resolution: {integrity: sha512-0yXkwTE75QKdmz40CBtAFy3sQdUnn/TNMTkTE2xfqC9YN7Ixql472TtC+3h6s4dPjRJm5bNnGJAWHwjT2PBmTw==} + engines: {node: '>=18'} + peerDependencies: + solid-js: ^1.7.7 + peerDependenciesMeta: + solid-js: + optional: true + + '@ai-sdk/svelte@0.0.56': + resolution: {integrity: sha512-EmBHGxVkmC6Ugc2O3tH6+F0udYKUhdlqokKAdO3zZihpNCj4qC5msyzqbhRqX0415tD1eJib5SX2Sva47CHmLA==} + engines: {node: '>=18'} + peerDependencies: + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + '@ai-sdk/ui-utils@0.0.49': + resolution: {integrity: sha512-urg0KYrfJmfEBSva9d132YRxAVmdU12ISGVlOV7yJkL86NPaU15qcRRWpOJqmMl4SJYkyZGyL1Rw9/GtLVurKw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@ai-sdk/vue@0.0.58': + resolution: {integrity: sha512-8cuIekJV+jYz68Z+EDp8Df1WNiBEO1NOUGNCy+5gqIi+j382YjuhZfzC78zbzg0PndfF5JzcXhWPqmcc0loUQA==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.4 + peerDependenciesMeta: + vue: + optional: true + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.1': + resolution: {integrity: sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@balena/dockerignore@1.0.2': + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@dabh/diagnostics@2.0.3': + resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + + '@e2b/code-interpreter@0.0.8': + resolution: {integrity: sha512-cKDFY9js9l3MfL71x0IDvaz0mAhvHIurVFnimtFRXNzuV0TxhuFqsauKabet0TMOrcDF3H3trC7pct6mNgRYTA==} + engines: {node: '>=18'} + + '@e2b/sdk@0.16.2': + resolution: {integrity: sha512-byj1NWAPcR1UjvdbLK45of/vyfp9qj4L5EhQo4eSF2rKVhlGXIRXfA/+HEnWF8eRS6084b+rkFy7ITvuCcQCUQ==} + engines: {node: '>=18'} + deprecated: 'The package @e2b/sdk has been renamed to e2b. Please uninstall the old one and install the new by running following command: npm uninstall @e2b/sdk && npm install e2b' + + '@faker-js/faker@8.4.1': + resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + + '@grpc/grpc-js@1.11.2': + resolution: {integrity: sha512-DWp92gDD7/Qkj7r8kus6/HCINeo3yPZWZ3paKgDgsbKbSpoxKg1yvN8xe2Q8uE3zOsPe3bX8FQX2+XValq2yTw==} + engines: {node: '>=12.10.0'} + + '@grpc/grpc-js@1.12.0': + resolution: {integrity: sha512-eWdP97A6xKtZXVP/ze9y8zYRB2t6ugQAuLXFuZXAsyqmyltaAjl4yPkmIfc0wuTFJMOUF1AdvIFQCL7fMtaX6g==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.13': + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + + '@hey-api/client-axios@0.2.9': + resolution: {integrity: sha512-K4T0KdBKl4LKbAVtfL1E9y9l2Q79NskptPBQcV1+RayjADCJctOtwdjwJitkpxj31UfQ79TSKHH96mMs9HrSsQ==} + peerDependencies: + axios: '>= 1.0.0 < 2' + + '@hono/node-server@1.13.3': + resolution: {integrity: sha512-tEo3hcyQ6chvSnJ3tKzfX4z2sd7Q+ZkBwwBdW1Ya8Mz29dukxC2xcWiB/lAMwGJrYMW8QTgknIsLu1AsnMBe7A==} + engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 + + '@inquirer/checkbox@2.5.0': + resolution: {integrity: sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==} + engines: {node: '>=18'} + + '@inquirer/confirm@3.2.0': + resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} + engines: {node: '>=18'} + + '@inquirer/core@9.2.1': + resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} + engines: {node: '>=18'} + + '@inquirer/editor@2.2.0': + resolution: {integrity: sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==} + engines: {node: '>=18'} + + '@inquirer/expand@2.3.0': + resolution: {integrity: sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.7': + resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} + engines: {node: '>=18'} + + '@inquirer/input@2.3.0': + resolution: {integrity: sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==} + engines: {node: '>=18'} + + '@inquirer/number@1.1.0': + resolution: {integrity: sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==} + engines: {node: '>=18'} + + '@inquirer/password@2.2.0': + resolution: {integrity: sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==} + engines: {node: '>=18'} + + '@inquirer/prompts@5.5.0': + resolution: {integrity: sha512-BHDeL0catgHdcHbSFFUddNzvx/imzJMft+tWDPwTm3hfu8/tApk1HrooNngB2Mb4qY+KaRWF+iZqoVUPeslEog==} + engines: {node: '>=18'} + + '@inquirer/rawlist@2.3.0': + resolution: {integrity: sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==} + engines: {node: '>=18'} + + '@inquirer/search@1.1.0': + resolution: {integrity: sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==} + engines: {node: '>=18'} + + '@inquirer/select@2.5.0': + resolution: {integrity: sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==} + engines: {node: '>=18'} + + '@inquirer/type@1.5.5': + resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} + engines: {node: '>=18'} + + '@inquirer/type@2.0.0': + resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} + engines: {node: '>=18'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.3.0': + resolution: {integrity: sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + + '@langchain/core@0.2.36': + resolution: {integrity: sha512-qHLvScqERDeH7y2cLuJaSAlMwg3f/3Oc9nayRSXRU2UuaK/SOhI42cxiPLj1FnuHJSmN0rBQFkrLx02gI4mcVg==} + engines: {node: '>=18'} + + '@langchain/openai@0.2.11': + resolution: {integrity: sha512-Pu8+WfJojCgSf0bAsXb4AjqvcDyAWyoEB1AoCRNACgEnBWZuitz3hLwCo9I+6hAbeg3QJ37g82yKcmvKAg1feg==} + engines: {node: '>=18'} + + '@langchain/textsplitters@0.0.3': + resolution: {integrity: sha512-cXWgKE3sdWLSqAa8ykbCcUsUF1Kyr5J3HOWYGuobhPEycXW4WI++d5DhzdpL238mzoEXTi90VqfSCra37l5YqA==} + engines: {node: '>=18'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + + '@restackio/ai@0.0.40': + resolution: {integrity: sha512-IlfnMo8c6qHBRag2K6OnUwP6OflQYuzDk1XlocpvnbwPwDnni8Zgzz1f4xRJvcfxpJETKIHCscWXSGMjVLNfvg==} + engines: {node: '>=20'} + + '@restackio/ai@0.0.80': + resolution: {integrity: sha512-igmdZOTPm70lB7QWTrp7hg1M/btsTIlWUqvZbPD9bbECCrVjsyOxlvqmZuL7fxkKfa2OR0H4P9TO5VLyEwCztQ==} + engines: {node: '>=20'} + + '@restackio/cloud@1.0.17': + resolution: {integrity: sha512-OpKav5QYbesnigQuTwmIke0pKnw4ZwdWAeJNOrEWN5r/DFPiSUoYrZJ+XggiPxTSI0gb6JX/35k9U+LF5bQAoQ==} + engines: {node: '>=18'} + + '@restackio/integrations-composio@0.0.3': + resolution: {integrity: sha512-T1yOA2dJQHyHZrruCNvztD+SVfOvgtEWoHVtfk/JdkKPmIb5/WtQZP34Ty/Q0PosilNx5jR8QzSe/L9QbzS5BQ==} + + '@restackio/integrations-openai@0.0.30': + resolution: {integrity: sha512-TcrogL0foxRbm9G0TkdwG8RsvBA5UNQGzBPo6eKxlb4DVEAC8CKVe9gkLLQ5wBFKRFo/hFbzXiZG7jZGlQ9hGQ==} + + '@swc/core-darwin-arm64@1.7.2': + resolution: {integrity: sha512-Zb8KiGaESzOgh5HBnp6Vhs2fRpngHIT81JOfIo0oaGlzAckamnG7UAXC/yK6cQ8q2KXc78utJ/yq/NM2yVKLqw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-arm64@1.7.26': + resolution: {integrity: sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.2': + resolution: {integrity: sha512-qb0HY9GEexpPm46Hb3OY7E6xb4r+eniiThm+0Gcnhf19EZV2ZlsCC8Rdbhmav33x++ZqSDzZ44fxMY2vnN5VDg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.26': + resolution: {integrity: sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.2': + resolution: {integrity: sha512-x2+MOK3RzH3yEkaukKtpDW/udM1x9GoYtXaLNqlq6ovAzZPQ9FDFI0pm1asL4akHUw3s7YTh1aUY7QscstJAHQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm-gnueabihf@1.7.26': + resolution: {integrity: sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.2': + resolution: {integrity: sha512-4J3HGEDus7a9xnrJUFGyJJgvj4w+BFGiZvs08xbw4Z1ZN4uHJQiJiDsQEAWWciKUxrOndP3SocUq/GhEGiDm0g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.26': + resolution: {integrity: sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.2': + resolution: {integrity: sha512-4FhQmYbj8SCmir4pHRLSn8IIFmRKHTL3eZFtOpm26RLME7rXL7Yt33DpzIeTRoHFIesI5NEfaR38WU5mY7P1pA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.26': + resolution: {integrity: sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.2': + resolution: {integrity: sha512-Loz10Hy6z5mBIAOe6OInOVsYu+PVxyknCB3thtr7QH+uqEz6dcXhU2ERrO2Lf4dsTsFs/Wb80rv8zTSwB8dpsw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.26': + resolution: {integrity: sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.2': + resolution: {integrity: sha512-8p8qNWaLcTa+qHX4NSv1KNm8BQ6zPoLXuOBo9DtOEqc+K60IISGKPCAS7TJlCcv0q20JnmxZ/cEWW5Qo4TR4XQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.26': + resolution: {integrity: sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.2': + resolution: {integrity: sha512-eNWAYOalBlFrhv/IVSQ1dxu7qIGuhxlUJZTYa8jsgLnKt93vAFd2cjLtKZ85k1OibBnq9PkKQyo4NKVr4hBavw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-arm64-msvc@1.7.26': + resolution: {integrity: sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.2': + resolution: {integrity: sha512-BbpaCPCnbQHCzpQ9yDH3qp1Y5Ijd0NSMNk4qqESN2WWx0ojV2uBTjPou5NC2MZxk8fM3iJpJ05enf+IeaXuh6A==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.26': + resolution: {integrity: sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.2': + resolution: {integrity: sha512-21mf4Jg9Arx0lUnmRQtYd8IQB4WkY4LHJrvcz3EmKbwCTCXI5rQ6Ifnjk7EmG3Tizv0giHqQBQLu5NXWBz45Mg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.26': + resolution: {integrity: sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.2': + resolution: {integrity: sha512-mjIlT0e6ygKR8LZ1TjtNrDVMhnB8qpyYAdwexhuVHY255yDdDQCpuPGi20odwnE82QhFBSIWs4HcENDVO/yiMw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/core@1.7.26': + resolution: {integrity: sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + + '@temporalio/activity@1.11.1': + resolution: {integrity: sha512-3nfkYBvWzHeAd/0a7M4GdfrUcDs6dA6L5bvGRJQYxNZ0h1X7Shd/FXQ5Yvfqz2LAa4NKlgZ4qcjfnUiulJkVyA==} + + '@temporalio/activity@1.11.2': + resolution: {integrity: sha512-Fqpgw5mxIP4VJO7+tRD82Tv2DXwTi7pFz1hBlqeZGyY0nWqA0SH7PGLvwUlhpNk01Vgo7vqZj9hGidITAHKFkw==} + + '@temporalio/client@1.11.1': + resolution: {integrity: sha512-1cEh6y7gB1bV/dZbSLL8TsEWM9/glj4j46V8sOS1B3ykoK2+5KaBvkUBKeS/SVH8puqo1zaWbaYEWD8kajg6/g==} + + '@temporalio/client@1.11.2': + resolution: {integrity: sha512-jgN0rwdRyZp42rm6rbk23y6+bfoIC3tyiaPMZl3BZNS2C6x9vF+7cL7jz22CluEAHqA7sJXqCEzagh4hwkKVjA==} + + '@temporalio/common@1.11.1': + resolution: {integrity: sha512-8fQwmYHMakSbqMX26FNfiLwBwVwsMNbGmVfGaFOqy72QZuUiXxgmImXQhK6ir1ieeH8bLyY5laAosB4W6VPBAA==} + + '@temporalio/common@1.11.2': + resolution: {integrity: sha512-2bUDFGhxWG7uLROkA0aP5oy6NPSmL+mPttObecMAXQqOs7Hb4s1o9uBQ98nojy25zauzvx5btIO/H+5UxUXfOQ==} + + '@temporalio/core-bridge@1.11.1': + resolution: {integrity: sha512-zgBHPdzQqOHyetVR12k4L1vrGlrwFFsMZ1iNaSJoaf8M4C5whYlzv13nUvXThZkaN06/xQCop6L02XkmhxkzYA==} + + '@temporalio/core-bridge@1.11.2': + resolution: {integrity: sha512-8oWdqmCoSDxH4W0GqfcrD2ffOqMU4gYEzMZ29TBTFekqxko8JAXKtS2pcXvFo9k5Y/Q81i/3sB867VaXWacjxw==} + + '@temporalio/proto@1.11.1': + resolution: {integrity: sha512-qTNSsU88IOJbv6lhWyW0qAHAYg4euEW/NNPgAp5ohfPkqaw+/j51QABO9E6m/KQwMZ6x43z2JjQRS37aC6Psiw==} + + '@temporalio/proto@1.11.2': + resolution: {integrity: sha512-h7Iw5hmUf8dGaozpk3WyRuOB5ZzBaFensfocK2eGui15ocNvtAb/aLFsxVJ6xOtryOsHTkgRam5BBZi0NOj+cA==} + + '@temporalio/worker@1.11.1': + resolution: {integrity: sha512-PiYbPLUH0UIakVtcZzJ4064Z3bOYrk+pOL8w8YxBlE85IQKQG6tVm9yrqd/XpC9lk0JOJhdw6KLcm64kDRrryw==} + engines: {node: '>= 16.0.0'} + + '@temporalio/worker@1.11.2': + resolution: {integrity: sha512-XCFQAgvY9pMOkrgqR8bkHEEsUH2kr2yKmkKRPMVyVYblKCb2TH/MaodoYsCAgyoc3++m6UskSREbK+Fd1DvvIw==} + engines: {node: '>= 16.0.0'} + + '@temporalio/workflow@1.11.1': + resolution: {integrity: sha512-aTfoHPc6O/7UioOSe+PHmpzLZveG2qn0VI/snlclPFs8VO8r5hcbXb5jYeuzCi26mm7Z+Dxmf2hCK77tJlPeKg==} + + '@temporalio/workflow@1.11.2': + resolution: {integrity: sha512-2E9hNKkeboOcdOddC/hd/bXL5kCfw2BgxskuPX8ipr6o8nQ7DaVFQapn+jEuw0pn7A5mLpPuNqF94vnZ4E37gQ==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/diff-match-patch@1.0.36': + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mute-stream@0.0.4': + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + + '@types/node@18.19.42': + resolution: {integrity: sha512-d2ZFc/3lnK2YCYhos8iaNIYu9Vfhr92nHiyJHRltXWjXUBjEE+A4I58Tdbnw4VhggSW+2j5y5gTrLs4biNnubg==} + + '@types/node@20.16.10': + resolution: {integrity: sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==} + + '@types/node@22.8.2': + resolution: {integrity: sha512-NzaRNFV+FZkvK/KLCsNdTvID0SThyrs5SHB6tsD/lajr22FGC73N2QeDPM2wHtVde8mgcXuSsHQkH5cX1pbPLw==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@types/wrap-ansi@3.0.0': + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + + '@vue/compiler-core@3.5.12': + resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} + + '@vue/compiler-dom@3.5.12': + resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} + + '@vue/compiler-sfc@3.5.12': + resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} + + '@vue/compiler-ssr@3.5.12': + resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} + + '@vue/reactivity@3.5.12': + resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} + + '@vue/runtime-core@3.5.12': + resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} + + '@vue/runtime-dom@3.5.12': + resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} + + '@vue/server-renderer@3.5.12': + resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} + peerDependencies: + vue: 3.5.12 + + '@vue/shared@3.5.12': + resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + + acorn-walk@8.3.3: + resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + engines: {node: '>=0.4.0'} + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ai@3.4.26: + resolution: {integrity: sha512-w7cxQcWGEd6Xc71VHsxkUqd/hf6gYrGh3dH4fO5/atWSy+6wYsSHQKXGAymbcYjuIXBBTB/FJ2tQ1b5wjgFI/Q==} + engines: {node: '>=18'} + peerDependencies: + openai: ^4.42.0 + react: ^18 || ^19 || ^19.0.0-rc + sswr: ^2.1.0 + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + zod: ^3.0.0 + peerDependenciesMeta: + openai: + optional: true + react: + optional: true + sswr: + optional: true + svelte: + optional: true + zod: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + + buildcheck@0.0.6: + resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} + engines: {node: '>=10.0.0'} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001660: + resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + + cargo-cp-artifact@0.1.9: + resolution: {integrity: sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==} + hasBin: true + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + cli-progress@3.12.0: + resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} + engines: {node: '>=4'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + + colorspace@1.1.4: + resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + composio-core@0.2.7: + resolution: {integrity: sha512-DxRd5+Ie/mIIpddnvwAkOrm47WH4FsNRZbdh4Rt/iHjIdBG1QM06PjthitsCkMy8SaZKX5cFv+Ssz9hKFCwPOA==} + hasBin: true + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cpu-features@0.0.10: + resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} + engines: {node: '>=10.0.0'} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + docker-modem@5.0.3: + resolution: {integrity: sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg==} + engines: {node: '>= 8.0'} + + dockerode@4.0.2: + resolution: {integrity: sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w==} + engines: {node: '>= 8.0'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + e2b@0.16.2: + resolution: {integrity: sha512-xKmVK4ipgVQPJ/uyyrfH9LnaawERRWt8U2UZhdhGfzdL/QU/OpBjuhoIbFCv1Uy6qXV4nIiJ6Nw4MBC4HmXf1g==} + engines: {node: '>=18'} + + electron-to-chromium@1.5.20: + resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} + + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + enumify@2.0.0: + resolution: {integrity: sha512-hpyRdixXrBdr1sZOWH/WKBleMtHWVbM+DyVa0OqKQnKEw6x0TuUNYjcWKlp5/+tdiOsbgYiaZ/pYUeMake4k8A==} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esm-env@1.0.0: + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + + esrap@1.2.2: + resolution: {integrity: sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + eventsource-parser@1.1.2: + resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} + engines: {node: '>=14.18'} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-monkey@1.0.6: + resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + heap-js@2.5.0: + resolution: {integrity: sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==} + engines: {node: '>=10.0.0'} + + hono@4.6.8: + resolution: {integrity: sha512-f+2Ec9JAzabT61pglDiLJcF/DjiSefZkjCn9bzm1cYLGkD5ExJ3Jnv93ax9h0bn7UPLHF81KktoyjdQfWI2n1Q==} + engines: {node: '>=16.9.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-by-default@1.0.1: + resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + inquirer@10.2.2: + resolution: {integrity: sha512-tyao/4Vo36XnUItZ7DnUXX4f1jVao2mSrleV/5IPtW/XAEA26hRVsbc68nuTEKWcr5vMP/1mVoT2O7u8H4v1Vg==} + engines: {node: '>=18'} + + install@0.13.0: + resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} + engines: {node: '>= 0.10'} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + js-tiktoken@1.0.15: + resolution: {integrity: sha512-65ruOWWXDEZHHbAo7EjOcNxOGasQKbL4Fq3jEr2xsCqSsoOo6VVSqzWQb6PRIqypFSDcma4jO90YP0w5X8qVXQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + langchain@0.2.20: + resolution: {integrity: sha512-tbels6Rr524iMM3VOQ4aTGnEOOjAA1BQuBR8u/8gJ2yT48lMtIQRAN32Y4KVjKK+hEWxHHlmLBrtgLpTphFjNA==} + engines: {node: '>=18'} + peerDependencies: + '@aws-sdk/client-s3': '*' + '@aws-sdk/client-sagemaker-runtime': '*' + '@aws-sdk/client-sfn': '*' + '@aws-sdk/credential-provider-node': '*' + '@azure/storage-blob': '*' + '@browserbasehq/sdk': '*' + '@gomomento/sdk': '*' + '@gomomento/sdk-core': '*' + '@gomomento/sdk-web': ^1.51.1 + '@langchain/anthropic': '*' + '@langchain/aws': '*' + '@langchain/cohere': '*' + '@langchain/google-genai': '*' + '@langchain/google-vertexai': '*' + '@langchain/groq': '*' + '@langchain/mistralai': '*' + '@langchain/ollama': '*' + '@mendable/firecrawl-js': '*' + '@notionhq/client': '*' + '@pinecone-database/pinecone': '*' + '@supabase/supabase-js': '*' + '@vercel/kv': '*' + '@xata.io/client': '*' + apify-client: '*' + assemblyai: '*' + axios: '*' + cheerio: '*' + chromadb: '*' + convex: '*' + couchbase: '*' + d3-dsv: '*' + epub2: '*' + faiss-node: '*' + fast-xml-parser: '*' + handlebars: ^4.7.8 + html-to-text: '*' + ignore: '*' + ioredis: '*' + jsdom: '*' + mammoth: '*' + mongodb: '*' + node-llama-cpp: '*' + notion-to-md: '*' + officeparser: '*' + pdf-parse: '*' + peggy: ^3.0.2 + playwright: '*' + puppeteer: '*' + pyodide: '>=0.24.1 <0.27.0' + redis: '*' + sonix-speech-recognition: '*' + srt-parser-2: '*' + typeorm: '*' + weaviate-ts-client: '*' + web-auth-library: '*' + ws: '*' + youtube-transcript: '*' + youtubei.js: '*' + peerDependenciesMeta: + '@aws-sdk/client-s3': + optional: true + '@aws-sdk/client-sagemaker-runtime': + optional: true + '@aws-sdk/client-sfn': + optional: true + '@aws-sdk/credential-provider-node': + optional: true + '@azure/storage-blob': + optional: true + '@browserbasehq/sdk': + optional: true + '@gomomento/sdk': + optional: true + '@gomomento/sdk-core': + optional: true + '@gomomento/sdk-web': + optional: true + '@langchain/anthropic': + optional: true + '@langchain/aws': + optional: true + '@langchain/cohere': + optional: true + '@langchain/google-genai': + optional: true + '@langchain/google-vertexai': + optional: true + '@langchain/groq': + optional: true + '@langchain/mistralai': + optional: true + '@langchain/ollama': + optional: true + '@mendable/firecrawl-js': + optional: true + '@notionhq/client': + optional: true + '@pinecone-database/pinecone': + optional: true + '@supabase/supabase-js': + optional: true + '@vercel/kv': + optional: true + '@xata.io/client': + optional: true + apify-client: + optional: true + assemblyai: + optional: true + axios: + optional: true + cheerio: + optional: true + chromadb: + optional: true + convex: + optional: true + couchbase: + optional: true + d3-dsv: + optional: true + epub2: + optional: true + faiss-node: + optional: true + fast-xml-parser: + optional: true + handlebars: + optional: true + html-to-text: + optional: true + ignore: + optional: true + ioredis: + optional: true + jsdom: + optional: true + mammoth: + optional: true + mongodb: + optional: true + node-llama-cpp: + optional: true + notion-to-md: + optional: true + officeparser: + optional: true + pdf-parse: + optional: true + peggy: + optional: true + playwright: + optional: true + puppeteer: + optional: true + pyodide: + optional: true + redis: + optional: true + sonix-speech-recognition: + optional: true + srt-parser-2: + optional: true + typeorm: + optional: true + weaviate-ts-client: + optional: true + web-auth-library: + optional: true + ws: + optional: true + youtube-transcript: + optional: true + youtubei.js: + optional: true + + langsmith@0.1.68: + resolution: {integrity: sha512-otmiysWtVAqzMx3CJ4PrtUBhWRG5Co8Z4o7hSZENPjlit9/j3/vm3TSvbaxpDYakZxtMjhkcJTqrdYFipISEiQ==} + peerDependencies: + openai: '*' + peerDependenciesMeta: + openai: + optional: true + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + logform@2.6.1: + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} + engines: {node: '>= 12.0.0'} + + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + memfs@4.11.1: + resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} + engines: {node: '>= 4.0.0'} + + memfs@4.12.0: + resolution: {integrity: sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==} + engines: {node: '>= 4.0.0'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + ms@3.0.0-canary.1: + resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==} + engines: {node: '>=12.13'} + + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + nan@2.22.0: + resolution: {integrity: sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==} + + nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nodemon@2.0.22: + resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} + engines: {node: '>=8.10.0'} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + openai@4.56.0: + resolution: {integrity: sha512-zcag97+3bG890MNNa0DQD9dGmmTWL8unJdNkulZzWRXrl+QeD+YkBI4H58rJcwErxqGK6a0jVPZ4ReJjhDGcmw==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + + openai@4.68.4: + resolution: {integrity: sha512-LRinV8iU9VQplkr25oZlyrsYGPGasIwYN8KFMAAFTHHLHjHhejtJ5BALuLFrkGzY4wfbKhOhuT+7lcHZ+F3iEA==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + + openapi-typescript-fetch@1.1.3: + resolution: {integrity: sha512-smLZPck4OkKMNExcw8jMgrMOGgVGx2N/s6DbKL2ftNl77g5HfoGpZGFy79RBzU/EkaO0OZpwBnslfdBfh7ZcWg==} + engines: {node: '>= 12.0.0', npm: '>= 7.0.0'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + + path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + + proto3-json-serializer@2.0.2: + resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} + engines: {node: '>=14.0.0'} + + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pstree.remy@1.1.8: + resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pusher-js@8.4.0-rc2: + resolution: {integrity: sha512-d87GjOEEl9QgO5BWmViSqW0LOzPvybvX6WA9zLUstNdB57jVJuR27zHkRnrav2a3+zAMlHbP2Og8wug+rG8T+g==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-package-path@4.0.3: + resolution: {integrity: sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==} + engines: {node: '>= 12'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-git@3.27.0: + resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + simple-update-notifier@1.1.0: + resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} + engines: {node: '>=8.10.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-loader@4.0.2: + resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + split-ca@1.0.1: + resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} + + ssh2@1.16.0: + resolution: {integrity: sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==} + engines: {node: '>=10.16.0'} + + sswr@2.1.0: + resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + svelte@5.1.4: + resolution: {integrity: sha512-qgHDV7AyvBZa2pbf+V0tnvWrN1LKD8LdUsBkR/SSYVVN6zXexiXnOy5Pjcjft2y/2NJJVa8ORUHFVn3oiWCLVQ==} + engines: {node: '>=18'} + + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + + swr@2.2.5: + resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 + + swrev@4.0.0: + resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} + + swrv@1.0.4: + resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} + peerDependencies: + vue: '>=3.2.26 < 4' + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-fs@2.0.1: + resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.32.0: + resolution: {integrity: sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==} + engines: {node: '>=10'} + hasBin: true + + terser@5.34.1: + resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} + engines: {node: '>=10'} + hasBin: true + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + + touch@3.1.1: + resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} + hasBin: true + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + 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 + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + undefsafe@2.0.5: + resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unionfs@4.5.4: + resolution: {integrity: sha512-qI3RvJwwdFcWUdZz1dWgAyLSfGlY2fS2pstvwkZBUTnkxjcnIvzriBLtqJTKz9FtArAvJeiVCqHlxhOw8Syfyw==} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + use-sync-external-store@1.2.2: + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + utf-8-validate@6.0.4: + resolution: {integrity: sha512-xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==} + engines: {node: '>=6.14.2'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + vue@3.5.12: + resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpack@5.95.0: + resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + winston-transport@4.8.0: + resolution: {integrity: sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA==} + engines: {node: '>= 12.0.0'} + + winston@3.15.0: + resolution: {integrity: sha512-RhruH2Cj0bV0WgNL+lOfoUBI4DVfdUNjVnJGVovWZmrcKtrFTTRzgXYK2O9cymSGjrERCtaAeHwMNnUWXlwZow==} + engines: {node: '>= 12.0.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + + zod-to-json-schema@3.23.5: + resolution: {integrity: sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==} + peerDependencies: + zod: ^3.23.3 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@ai-sdk/openai@0.0.36(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 0.0.12 + '@ai-sdk/provider-utils': 1.0.2(zod@3.23.8) + zod: 3.23.8 + + '@ai-sdk/provider-utils@1.0.2(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 0.0.12 + eventsource-parser: 1.1.2 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.23.8 + + '@ai-sdk/provider-utils@1.0.22(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 0.0.26 + eventsource-parser: 1.1.2 + nanoid: 3.3.7 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.23.8 + + '@ai-sdk/provider@0.0.12': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/provider@0.0.26': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/react@0.0.68(react@18.3.1)(zod@3.23.8)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.49(zod@3.23.8) + swr: 2.2.5(react@18.3.1) + optionalDependencies: + react: 18.3.1 + zod: 3.23.8 + + '@ai-sdk/solid@0.0.53(zod@3.23.8)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.49(zod@3.23.8) + transitivePeerDependencies: + - zod + + '@ai-sdk/svelte@0.0.56(svelte@5.1.4)(zod@3.23.8)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.49(zod@3.23.8) + sswr: 2.1.0(svelte@5.1.4) + optionalDependencies: + svelte: 5.1.4 + transitivePeerDependencies: + - zod + + '@ai-sdk/ui-utils@0.0.49(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 0.0.26 + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + json-schema: 0.4.0 + secure-json-parse: 2.7.0 + zod-to-json-schema: 3.23.5(zod@3.23.8) + optionalDependencies: + zod: 3.23.8 + + '@ai-sdk/vue@0.0.58(vue@3.5.12(typescript@5.6.3))(zod@3.23.8)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.49(zod@3.23.8) + swrv: 1.0.4(vue@3.5.12(typescript@5.6.3)) + optionalDependencies: + vue: 3.5.12(typescript@5.6.3) + transitivePeerDependencies: + - zod + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/parser@7.26.1': + dependencies: + '@babel/types': 7.26.0 + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@balena/dockerignore@1.0.2': {} + + '@colors/colors@1.6.0': {} + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@dabh/diagnostics@2.0.3': + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 + + '@e2b/code-interpreter@0.0.8(bufferutil@4.0.8)(utf-8-validate@6.0.4)': + dependencies: + e2b: 0.16.2 + isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@e2b/sdk@0.16.2': + dependencies: + isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) + normalize-path: 3.0.0 + openapi-typescript-fetch: 1.1.3 + path-browserify: 1.0.1 + platform: 1.3.6 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 6.0.4 + + '@faker-js/faker@8.4.1': {} + + '@grpc/grpc-js@1.11.2': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/grpc-js@1.12.0': + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.13': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.4.0 + yargs: 17.7.2 + + '@hey-api/client-axios@0.2.9(axios@1.7.7)': + dependencies: + axios: 1.7.7 + + '@hono/node-server@1.13.3(hono@4.6.8)': + dependencies: + hono: 4.6.8 + + '@inquirer/checkbox@2.5.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.7 + '@inquirer/type': 1.5.5 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/confirm@3.2.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/core@9.2.1': + dependencies: + '@inquirer/figures': 1.0.7 + '@inquirer/type': 2.0.0 + '@types/mute-stream': 0.0.4 + '@types/node': 22.8.2 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + + '@inquirer/editor@2.2.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + external-editor: 3.1.0 + + '@inquirer/expand@2.3.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + yoctocolors-cjs: 2.1.2 + + '@inquirer/figures@1.0.7': {} + + '@inquirer/input@2.3.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/number@1.1.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/password@2.2.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + ansi-escapes: 4.3.2 + + '@inquirer/prompts@5.5.0': + dependencies: + '@inquirer/checkbox': 2.5.0 + '@inquirer/confirm': 3.2.0 + '@inquirer/editor': 2.2.0 + '@inquirer/expand': 2.3.0 + '@inquirer/input': 2.3.0 + '@inquirer/number': 1.1.0 + '@inquirer/password': 2.2.0 + '@inquirer/rawlist': 2.3.0 + '@inquirer/search': 1.1.0 + '@inquirer/select': 2.5.0 + + '@inquirer/rawlist@2.3.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + yoctocolors-cjs: 2.1.2 + + '@inquirer/search@1.1.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.7 + '@inquirer/type': 1.5.5 + yoctocolors-cjs: 2.1.2 + + '@inquirer/select@2.5.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.7 + '@inquirer/type': 1.5.5 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/type@1.5.5': + dependencies: + mute-stream: 1.0.0 + + '@inquirer/type@2.0.0': + dependencies: + mute-stream: 1.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@js-sdsl/ordered-map@4.4.2': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@jsonjoy.com/json-pack@1.1.0(tslib@2.7.0)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.7.0) + tslib: 2.7.0 + + '@jsonjoy.com/util@1.3.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@jsonjoy.com/util@1.5.0(tslib@2.7.0)': + dependencies: + tslib: 2.7.0 + + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + + '@langchain/core@0.2.36(openai@4.68.4(zod@3.23.8))': + dependencies: + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.15 + langsmith: 0.1.68(openai@4.68.4(zod@3.23.8)) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + transitivePeerDependencies: + - openai + + '@langchain/openai@0.2.11': + dependencies: + '@langchain/core': 0.2.36(openai@4.68.4(zod@3.23.8)) + js-tiktoken: 1.0.15 + openai: 4.68.4(zod@3.23.8) + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + transitivePeerDependencies: + - encoding + + '@langchain/textsplitters@0.0.3(openai@4.68.4(zod@3.23.8))': + dependencies: + '@langchain/core': 0.2.36(openai@4.68.4(zod@3.23.8)) + js-tiktoken: 1.0.15 + transitivePeerDependencies: + - openai + + '@opentelemetry/api@1.9.0': {} + + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + + '@restackio/ai@0.0.40': + dependencies: + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/worker': 1.11.1 + '@temporalio/workflow': 1.11.1 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@restackio/ai@0.0.80': + dependencies: + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/worker': 1.11.2 + '@temporalio/workflow': 1.11.2 + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@restackio/cloud@1.0.17': + dependencies: + chalk: 4.1.2 + dotenv: 16.4.5 + open: 10.1.0 + simple-git: 3.27.0 + yup: 1.4.0 + zod: 3.23.8 + transitivePeerDependencies: + - supports-color + + '@restackio/integrations-composio@0.0.3(@swc/core@1.7.26)(@types/node@20.16.10)(bufferutil@4.0.8)(react@18.3.1)(sswr@2.1.0(svelte@5.1.4))(svelte@5.1.4)(typescript@5.6.3)(utf-8-validate@6.0.4)(vue@3.5.12(typescript@5.6.3))(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4))(zod@3.23.8)': + dependencies: + '@restackio/integrations-openai': 0.0.30(zod@3.23.8) + composio-core: 0.2.7(@swc/core@1.7.26)(@types/node@20.16.10)(bufferutil@4.0.8)(react@18.3.1)(sswr@2.1.0(svelte@5.1.4))(svelte@5.1.4)(typescript@5.6.3)(utf-8-validate@6.0.4)(vue@3.5.12(typescript@5.6.3))(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) + install: 0.13.0 + transitivePeerDependencies: + - '@aws-sdk/client-s3' + - '@aws-sdk/client-sagemaker-runtime' + - '@aws-sdk/client-sfn' + - '@aws-sdk/credential-provider-node' + - '@azure/storage-blob' + - '@browserbasehq/sdk' + - '@gomomento/sdk' + - '@gomomento/sdk-core' + - '@gomomento/sdk-web' + - '@langchain/anthropic' + - '@langchain/aws' + - '@langchain/cohere' + - '@langchain/google-genai' + - '@langchain/google-vertexai' + - '@langchain/groq' + - '@langchain/mistralai' + - '@langchain/ollama' + - '@mendable/firecrawl-js' + - '@notionhq/client' + - '@pinecone-database/pinecone' + - '@supabase/supabase-js' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - '@vercel/kv' + - '@xata.io/client' + - apify-client + - assemblyai + - bufferutil + - cheerio + - chromadb + - convex + - couchbase + - d3-dsv + - debug + - encoding + - epub2 + - faiss-node + - fast-xml-parser + - handlebars + - html-to-text + - ignore + - ioredis + - jsdom + - mammoth + - mongodb + - node-llama-cpp + - notion-to-md + - officeparser + - pdf-parse + - peggy + - playwright + - puppeteer + - pyodide + - react + - redis + - solid-js + - sonix-speech-recognition + - srt-parser-2 + - sswr + - supports-color + - svelte + - typeorm + - typescript + - utf-8-validate + - vue + - weaviate-ts-client + - web-auth-library + - ws + - youtube-transcript + - youtubei.js + - zod + + '@restackio/integrations-openai@0.0.30(zod@3.23.8)': + dependencies: + openai: 4.68.4(zod@3.23.8) + transitivePeerDependencies: + - encoding + - zod + + '@swc/core-darwin-arm64@1.7.2': + optional: true + + '@swc/core-darwin-arm64@1.7.26': + optional: true + + '@swc/core-darwin-x64@1.7.2': + optional: true + + '@swc/core-darwin-x64@1.7.26': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.2': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.26': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.2': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.26': + optional: true + + '@swc/core-linux-arm64-musl@1.7.2': + optional: true + + '@swc/core-linux-arm64-musl@1.7.26': + optional: true + + '@swc/core-linux-x64-gnu@1.7.2': + optional: true + + '@swc/core-linux-x64-gnu@1.7.26': + optional: true + + '@swc/core-linux-x64-musl@1.7.2': + optional: true + + '@swc/core-linux-x64-musl@1.7.26': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.2': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.26': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.2': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.26': + optional: true + + '@swc/core-win32-x64-msvc@1.7.2': + optional: true + + '@swc/core-win32-x64-msvc@1.7.26': + optional: true + + '@swc/core@1.7.2': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.2 + '@swc/core-darwin-x64': 1.7.2 + '@swc/core-linux-arm-gnueabihf': 1.7.2 + '@swc/core-linux-arm64-gnu': 1.7.2 + '@swc/core-linux-arm64-musl': 1.7.2 + '@swc/core-linux-x64-gnu': 1.7.2 + '@swc/core-linux-x64-musl': 1.7.2 + '@swc/core-win32-arm64-msvc': 1.7.2 + '@swc/core-win32-ia32-msvc': 1.7.2 + '@swc/core-win32-x64-msvc': 1.7.2 + optional: true + + '@swc/core@1.7.26': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.26 + '@swc/core-darwin-x64': 1.7.26 + '@swc/core-linux-arm-gnueabihf': 1.7.26 + '@swc/core-linux-arm64-gnu': 1.7.26 + '@swc/core-linux-arm64-musl': 1.7.26 + '@swc/core-linux-x64-gnu': 1.7.26 + '@swc/core-linux-x64-musl': 1.7.26 + '@swc/core-win32-arm64-msvc': 1.7.26 + '@swc/core-win32-ia32-msvc': 1.7.26 + '@swc/core-win32-x64-msvc': 1.7.26 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.12': + dependencies: + '@swc/counter': 0.1.3 + + '@temporalio/activity@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + abort-controller: 3.0.0 + + '@temporalio/activity@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + abort-controller: 3.0.0 + + '@temporalio/client@1.11.1': + dependencies: + '@grpc/grpc-js': 1.11.2 + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/client@1.11.2': + dependencies: + '@grpc/grpc-js': 1.12.0 + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + abort-controller: 3.0.0 + long: 5.2.3 + uuid: 9.0.1 + + '@temporalio/common@1.11.1': + dependencies: + '@temporalio/proto': 1.11.1 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/common@1.11.2': + dependencies: + '@temporalio/proto': 1.11.2 + long: 5.2.3 + ms: 3.0.0-canary.1 + proto3-json-serializer: 2.0.2 + + '@temporalio/core-bridge@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/core-bridge@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + arg: 5.0.2 + cargo-cp-artifact: 0.1.9 + which: 4.0.0 + + '@temporalio/proto@1.11.1': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/proto@1.11.2': + dependencies: + long: 5.2.3 + protobufjs: 7.4.0 + + '@temporalio/worker@1.11.1': + dependencies: + '@swc/core': 1.7.26 + '@temporalio/activity': 1.11.1 + '@temporalio/client': 1.11.1 + '@temporalio/common': 1.11.1 + '@temporalio/core-bridge': 1.11.1 + '@temporalio/proto': 1.11.1 + '@temporalio/workflow': 1.11.1 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.11.1 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.94.0(@swc/core@1.7.26)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) + unionfs: 4.5.4 + webpack: 5.94.0(@swc/core@1.7.26) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/worker@1.11.2': + dependencies: + '@swc/core': 1.7.26 + '@temporalio/activity': 1.11.2 + '@temporalio/client': 1.11.2 + '@temporalio/common': 1.11.2 + '@temporalio/core-bridge': 1.11.2 + '@temporalio/proto': 1.11.2 + '@temporalio/workflow': 1.11.2 + abort-controller: 3.0.0 + heap-js: 2.5.0 + memfs: 4.12.0 + rxjs: 7.8.1 + source-map: 0.7.4 + source-map-loader: 4.0.2(webpack@5.95.0(@swc/core@1.7.26)) + supports-color: 8.1.1 + swc-loader: 0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + unionfs: 4.5.4 + webpack: 5.95.0(@swc/core@1.7.26) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@temporalio/workflow@1.11.1': + dependencies: + '@temporalio/common': 1.11.1 + '@temporalio/proto': 1.11.1 + + '@temporalio/workflow@1.11.2': + dependencies: + '@temporalio/common': 1.11.2 + '@temporalio/proto': 1.11.2 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/diff-match-patch@1.0.36': {} + + '@types/estree@1.0.5': {} + + '@types/estree@1.0.6': {} + + '@types/json-schema@7.0.15': {} + + '@types/mute-stream@0.0.4': + dependencies: + '@types/node': 20.16.10 + + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 20.16.10 + form-data: 4.0.0 + + '@types/node@14.18.63': {} + + '@types/node@18.19.42': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.16.10': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.8.2': + dependencies: + undici-types: 6.19.8 + + '@types/retry@0.12.0': {} + + '@types/triple-beam@1.3.5': {} + + '@types/uuid@10.0.0': {} + + '@types/wrap-ansi@3.0.0': {} + + '@vue/compiler-core@3.5.12': + dependencies: + '@babel/parser': 7.26.1 + '@vue/shared': 3.5.12 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.12': + dependencies: + '@vue/compiler-core': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/compiler-sfc@3.5.12': + dependencies: + '@babel/parser': 7.26.1 + '@vue/compiler-core': 3.5.12 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + estree-walker: 2.0.2 + magic-string: 0.30.12 + postcss: 8.4.47 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.12': + dependencies: + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/reactivity@3.5.12': + dependencies: + '@vue/shared': 3.5.12 + + '@vue/runtime-core@3.5.12': + dependencies: + '@vue/reactivity': 3.5.12 + '@vue/shared': 3.5.12 + + '@vue/runtime-dom@3.5.12': + dependencies: + '@vue/reactivity': 3.5.12 + '@vue/runtime-core': 3.5.12 + '@vue/shared': 3.5.12 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.6.3))': + dependencies: + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + vue: 3.5.12(typescript@5.6.3) + + '@vue/shared@3.5.12': {} + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-typescript@1.4.13(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.3: + dependencies: + acorn: 8.12.1 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 + + acorn@8.12.1: {} + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ai@3.4.26(openai@4.68.4(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.1.4))(svelte@5.1.4)(vue@3.5.12(typescript@5.6.3))(zod@3.23.8): + dependencies: + '@ai-sdk/provider': 0.0.26 + '@ai-sdk/provider-utils': 1.0.22(zod@3.23.8) + '@ai-sdk/react': 0.0.68(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.53(zod@3.23.8) + '@ai-sdk/svelte': 0.0.56(svelte@5.1.4)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.49(zod@3.23.8) + '@ai-sdk/vue': 0.0.58(vue@3.5.12(typescript@5.6.3))(zod@3.23.8) + '@opentelemetry/api': 1.9.0 + eventsource-parser: 1.1.2 + json-schema: 0.4.0 + jsondiffpatch: 0.6.0 + secure-json-parse: 2.7.0 + zod-to-json-schema: 3.23.5(zod@3.23.8) + optionalDependencies: + openai: 4.68.4(zod@3.23.8) + react: 18.3.1 + sswr: 2.1.0(svelte@5.1.4) + svelte: 5.1.4 + zod: 3.23.8 + transitivePeerDependencies: + - solid-js + - vue + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + arg@5.0.2: {} + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + + binary-extensions@2.3.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.23.3: + dependencies: + caniuse-lite: 1.0.30001660 + electron-to-chromium: 1.5.20 + node-releases: 2.0.18 + update-browserslist-db: 1.1.0(browserslist@4.23.3) + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.2 + optional: true + + buildcheck@0.0.6: + optional: true + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001660: {} + + caniuse-lite@1.0.30001667: {} + + cargo-cp-artifact@0.1.9: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + chardet@0.7.0: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chownr@1.1.4: {} + + chrome-trace-event@1.0.4: {} + + cli-progress@3.12.0: + dependencies: + string-width: 4.2.3 + + cli-width@4.1.0: {} + + client-only@0.0.1: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@3.2.1: + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + + colors@1.4.0: {} + + colorspace@1.1.4: + dependencies: + color: 3.2.1 + text-hex: 1.0.0 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@10.0.1: {} + + commander@12.1.0: {} + + commander@2.20.3: {} + + composio-core@0.2.7(@swc/core@1.7.26)(@types/node@20.16.10)(bufferutil@4.0.8)(react@18.3.1)(sswr@2.1.0(svelte@5.1.4))(svelte@5.1.4)(typescript@5.6.3)(utf-8-validate@6.0.4)(vue@3.5.12(typescript@5.6.3))(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)): + dependencies: + '@ai-sdk/openai': 0.0.36(zod@3.23.8) + '@e2b/code-interpreter': 0.0.8(bufferutil@4.0.8)(utf-8-validate@6.0.4) + '@e2b/sdk': 0.16.2 + '@faker-js/faker': 8.4.1 + '@hey-api/client-axios': 0.2.9(axios@1.7.7) + '@hono/node-server': 1.13.3(hono@4.6.8) + '@langchain/core': 0.2.36(openai@4.68.4(zod@3.23.8)) + '@langchain/openai': 0.2.11 + ai: 3.4.26(openai@4.68.4(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@5.1.4))(svelte@5.1.4)(vue@3.5.12(typescript@5.6.3))(zod@3.23.8) + axios: 1.7.7 + chalk: 4.1.2 + cli-progress: 3.12.0 + colors: 1.4.0 + commander: 12.1.0 + dockerode: 4.0.2 + e2b: 0.16.2 + enumify: 2.0.0 + hono: 4.6.8 + inquirer: 10.2.2 + langchain: 0.2.20(axios@1.7.7)(openai@4.68.4(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) + open: 8.4.2 + openai: 4.68.4(zod@3.23.8) + pusher-js: 8.4.0-rc2 + resolve-package-path: 4.0.3 + ts-node: 10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.3) + uuid: 10.0.0 + winston: 3.15.0 + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + transitivePeerDependencies: + - '@aws-sdk/client-s3' + - '@aws-sdk/client-sagemaker-runtime' + - '@aws-sdk/client-sfn' + - '@aws-sdk/credential-provider-node' + - '@azure/storage-blob' + - '@browserbasehq/sdk' + - '@gomomento/sdk' + - '@gomomento/sdk-core' + - '@gomomento/sdk-web' + - '@langchain/anthropic' + - '@langchain/aws' + - '@langchain/cohere' + - '@langchain/google-genai' + - '@langchain/google-vertexai' + - '@langchain/groq' + - '@langchain/mistralai' + - '@langchain/ollama' + - '@mendable/firecrawl-js' + - '@notionhq/client' + - '@pinecone-database/pinecone' + - '@supabase/supabase-js' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - '@vercel/kv' + - '@xata.io/client' + - apify-client + - assemblyai + - bufferutil + - cheerio + - chromadb + - convex + - couchbase + - d3-dsv + - debug + - encoding + - epub2 + - faiss-node + - fast-xml-parser + - handlebars + - html-to-text + - ignore + - ioredis + - jsdom + - mammoth + - mongodb + - node-llama-cpp + - notion-to-md + - officeparser + - pdf-parse + - peggy + - playwright + - puppeteer + - pyodide + - react + - redis + - solid-js + - sonix-speech-recognition + - srt-parser-2 + - sswr + - supports-color + - svelte + - typeorm + - typescript + - utf-8-validate + - vue + - weaviate-ts-client + - web-auth-library + - ws + - youtube-transcript + - youtubei.js + + concat-map@0.0.1: {} + + cpu-features@0.0.10: + dependencies: + buildcheck: 0.0.6 + nan: 2.22.0 + optional: true + + create-require@1.1.1: {} + + csstype@3.1.3: {} + + debug@3.2.7(supports-color@5.5.0): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 5.5.0 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decamelize@1.2.0: {} + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + define-lazy-prop@2.0.0: {} + + define-lazy-prop@3.0.0: {} + + delayed-stream@1.0.0: {} + + diff-match-patch@1.0.5: {} + + diff@4.0.2: {} + + docker-modem@5.0.3: + dependencies: + debug: 4.3.7 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.16.0 + transitivePeerDependencies: + - supports-color + + dockerode@4.0.2: + dependencies: + '@balena/dockerignore': 1.0.2 + docker-modem: 5.0.3 + tar-fs: 2.0.1 + transitivePeerDependencies: + - supports-color + + dotenv@16.4.5: {} + + e2b@0.16.2: + dependencies: + isomorphic-ws: 5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) + normalize-path: 3.0.0 + openapi-typescript-fetch: 1.1.3 + path-browserify: 1.0.1 + platform: 1.3.6 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 6.0.4 + + electron-to-chromium@1.5.20: {} + + electron-to-chromium@1.5.32: {} + + emoji-regex@8.0.0: {} + + enabled@2.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@4.5.0: {} + + enumify@2.0.0: {} + + es-module-lexer@1.5.4: {} + + escalade@3.2.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esm-env@1.0.0: {} + + esrap@1.2.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.7: {} + + events@3.3.0: {} + + eventsource-parser@1.1.2: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fecha@4.2.3: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + fn.name@1.1.0: {} + + follow-redirects@1.15.9: {} + + form-data-encoder@1.7.2: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + fs-constants@1.0.0: {} + + fs-monkey@1.0.6: {} + + fsevents@2.3.3: + optional: true + + get-caller-file@2.0.5: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + graceful-fs@4.2.11: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + heap-js@2.5.0: {} + + hono@4.6.8: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + hyperdyperid@1.2.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ieee754@1.2.1: {} + + ignore-by-default@1.0.1: {} + + inherits@2.0.4: {} + + inquirer@10.2.2: + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/prompts': 5.5.0 + '@inquirer/type': 1.5.5 + '@types/mute-stream': 0.0.4 + ansi-escapes: 4.3.2 + mute-stream: 1.0.0 + run-async: 3.0.0 + rxjs: 7.8.1 + + install@0.13.0: {} + + is-arrayish@0.3.2: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-number@7.0.0: {} + + is-reference@3.0.2: + dependencies: + '@types/estree': 1.0.6 + + is-stream@2.0.1: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isexe@3.1.1: {} + + isomorphic-ws@5.0.0(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)): + dependencies: + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.16.10 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + js-tiktoken@1.0.15: + dependencies: + base64-js: 1.5.1 + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema@0.4.0: {} + + jsondiffpatch@0.6.0: + dependencies: + '@types/diff-match-patch': 1.0.36 + chalk: 5.3.0 + diff-match-patch: 1.0.5 + + jsonpointer@5.0.1: {} + + kuler@2.0.0: {} + + langchain@0.2.20(axios@1.7.7)(openai@4.68.4(zod@3.23.8))(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)): + dependencies: + '@langchain/core': 0.2.36(openai@4.68.4(zod@3.23.8)) + '@langchain/openai': 0.2.11 + '@langchain/textsplitters': 0.0.3(openai@4.68.4(zod@3.23.8)) + binary-extensions: 2.3.0 + js-tiktoken: 1.0.15 + js-yaml: 4.1.0 + jsonpointer: 5.0.1 + langsmith: 0.1.68(openai@4.68.4(zod@3.23.8)) + openapi-types: 12.1.3 + p-retry: 4.6.2 + uuid: 10.0.0 + yaml: 2.6.0 + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + optionalDependencies: + axios: 1.7.7 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - encoding + - openai + + langsmith@0.1.68(openai@4.68.4(zod@3.23.8)): + dependencies: + '@types/uuid': 10.0.0 + commander: 10.0.1 + p-queue: 6.6.2 + p-retry: 4.6.2 + semver: 7.6.3 + uuid: 10.0.0 + optionalDependencies: + openai: 4.68.4(zod@3.23.8) + + loader-runner@4.3.0: {} + + locate-character@3.0.0: {} + + lodash.camelcase@4.3.0: {} + + logform@2.6.1: + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.5.0 + triple-beam: 1.4.1 + + long@5.2.3: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + make-error@1.3.6: {} + + memfs@4.11.1: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.3.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + memfs@4.12.0: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.7.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.7.0) + tree-dump: 1.0.2(tslib@2.7.0) + tslib: 2.7.0 + + merge-stream@2.0.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + mkdirp-classic@0.5.3: {} + + ms@2.1.3: {} + + ms@3.0.0-canary.1: {} + + mustache@4.2.0: {} + + mute-stream@1.0.0: {} + + nan@2.22.0: + optional: true + + nanoid@3.3.6: {} + + nanoid@3.3.7: {} + + neo-async@2.6.2: {} + + node-domexception@1.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.2: + optional: true + + node-releases@2.0.18: {} + + nodemon@2.0.22: + dependencies: + chokidar: 3.6.0 + debug: 3.2.7(supports-color@5.5.0) + ignore-by-default: 1.0.1 + minimatch: 3.1.2 + pstree.remy: 1.1.8 + semver: 5.7.2 + simple-update-notifier: 1.1.0 + supports-color: 5.5.0 + touch: 3.1.1 + undefsafe: 2.0.5 + + normalize-path@3.0.0: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + one-time@1.0.0: + dependencies: + fn.name: 1.1.0 + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + openai@4.56.0(zod@3.23.8): + dependencies: + '@types/node': 18.19.42 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + optionalDependencies: + zod: 3.23.8 + transitivePeerDependencies: + - encoding + + openai@4.68.4(zod@3.23.8): + dependencies: + '@types/node': 18.19.42 + '@types/node-fetch': 2.6.11 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + optionalDependencies: + zod: 3.23.8 + transitivePeerDependencies: + - encoding + + openapi-types@12.1.3: {} + + openapi-typescript-fetch@1.1.3: {} + + os-tmpdir@1.0.2: {} + + p-finally@1.0.0: {} + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + path-browserify@1.0.1: {} + + path-root-regex@0.1.2: {} + + path-root@0.1.1: + dependencies: + path-root-regex: 0.1.2 + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + platform@1.3.6: {} + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + process@0.11.10: {} + + property-expr@2.0.6: {} + + proto3-json-serializer@2.0.2: + dependencies: + protobufjs: 7.4.0 + + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.16.10 + long: 5.2.3 + + proxy-from-env@1.1.0: {} + + pstree.remy@1.1.8: {} + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + pusher-js@8.4.0-rc2: + dependencies: + tweetnacl: 1.0.3 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + require-directory@2.1.1: {} + + resolve-package-path@4.0.3: + dependencies: + path-root: 0.1.1 + + retry@0.13.1: {} + + run-applescript@7.0.0: {} + + run-async@3.0.0: {} + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + safe-buffer@5.2.1: {} + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: {} + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + secure-json-parse@2.7.0: {} + + semver@5.7.2: {} + + semver@7.0.0: {} + + semver@7.6.3: {} + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + signal-exit@4.1.0: {} + + simple-git@3.27.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + simple-update-notifier@1.1.0: + dependencies: + semver: 7.0.0 + + source-map-js@1.2.1: {} + + source-map-loader@4.0.2(webpack@5.94.0(@swc/core@1.7.26)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.94.0(@swc/core@1.7.26) + + source-map-loader@4.0.2(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.95.0(@swc/core@1.7.26) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + split-ca@1.0.1: {} + + ssh2@1.16.0: + dependencies: + asn1: 0.2.6 + bcrypt-pbkdf: 1.0.2 + optionalDependencies: + cpu-features: 0.0.10 + nan: 2.22.0 + + sswr@2.1.0(svelte@5.1.4): + dependencies: + svelte: 5.1.4 + swrev: 4.0.0 + + stack-trace@0.0.10: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + svelte@5.1.4: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.12.1 + acorn-typescript: 1.4.13(acorn@8.12.1) + aria-query: 5.3.2 + axobject-query: 4.1.0 + esm-env: 1.0.0 + esrap: 1.2.2 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.12 + zimmerframe: 1.1.2 + + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): + dependencies: + '@swc/core': 1.7.26 + '@swc/counter': 0.1.3 + webpack: 5.94.0(@swc/core@1.7.26) + + swc-loader@0.2.6(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + '@swc/core': 1.7.26 + '@swc/counter': 0.1.3 + webpack: 5.95.0(@swc/core@1.7.26) + + swr@2.2.5(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + use-sync-external-store: 1.2.2(react@18.3.1) + + swrev@4.0.0: {} + + swrv@1.0.4(vue@3.5.12(typescript@5.6.3)): + dependencies: + vue: 3.5.12(typescript@5.6.3) + + tapable@2.2.1: {} + + tar-fs@2.0.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.32.0 + webpack: 5.94.0(@swc/core@1.7.26) + optionalDependencies: + '@swc/core': 1.7.26 + + terser-webpack-plugin@5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.34.1 + webpack: 5.95.0(@swc/core@1.7.26) + optionalDependencies: + '@swc/core': 1.7.26 + + terser@5.32.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + terser@5.34.1: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + text-hex@1.0.0: {} + + thingies@1.21.0(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + tiny-case@1.0.3: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toposort@2.0.2: {} + + touch@3.1.1: {} + + tr46@0.0.3: {} + + tree-dump@1.0.2(tslib@2.7.0): + dependencies: + tslib: 2.7.0 + + triple-beam@1.4.1: {} + + ts-node@10.9.2(@swc/core@1.7.2)(@types/node@14.18.63)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 14.18.63 + acorn: 8.12.1 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.2 + + ts-node@10.9.2(@swc/core@1.7.26)(@types/node@20.16.10)(typescript@5.6.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.16.10 + acorn: 8.12.1 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.26 + + tslib@2.7.0: {} + + tweetnacl@0.14.5: {} + + tweetnacl@1.0.3: {} + + type-fest@0.21.3: {} + + type-fest@2.19.0: {} + + typescript@4.9.5: {} + + typescript@5.6.3: {} + + undefsafe@2.0.5: {} + + undici-types@5.26.5: {} + + undici-types@6.19.8: {} + + unionfs@4.5.4: + dependencies: + fs-monkey: 1.0.6 + + update-browserslist-db@1.1.0(browserslist@4.23.3): + dependencies: + browserslist: 4.23.3 + escalade: 3.2.0 + picocolors: 1.1.0 + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-sync-external-store@1.2.2(react@18.3.1): + dependencies: + react: 18.3.1 + + utf-8-validate@6.0.4: + dependencies: + node-gyp-build: 4.8.2 + optional: true + + util-deprecate@1.0.2: {} + + uuid@10.0.0: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + vue@3.5.12(typescript@5.6.3): + dependencies: + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-sfc': 3.5.12 + '@vue/runtime-dom': 3.5.12 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) + '@vue/shared': 3.5.12 + optionalDependencies: + typescript: 5.6.3 + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + + webpack-sources@3.2.3: {} + + webpack@5.94.0(@swc/core@1.7.26): + dependencies: + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.3 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.94.0(@swc/core@1.7.26)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webpack@5.95.0(@swc/core@1.7.26): + dependencies: + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.24.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(webpack@5.95.0(@swc/core@1.7.26)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + winston-transport@4.8.0: + dependencies: + logform: 2.6.1 + readable-stream: 4.5.2 + triple-beam: 1.4.1 + + winston@3.15.0: + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.3 + async: 3.2.6 + is-stream: 2.0.1 + logform: 2.6.1 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.5.0 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.8.0 + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 6.0.4 + + y18n@5.0.8: {} + + yaml@2.6.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yn@3.1.1: {} + + yoctocolors-cjs@2.1.2: {} + + yup@1.4.0: + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + + zimmerframe@1.1.2: {} + + zod-to-json-schema@3.23.5(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod@3.23.8: {} diff --git a/examples/composio/readme.md b/examples/composio/readme.md new file mode 100644 index 0000000..93c1f28 --- /dev/null +++ b/examples/composio/readme.md @@ -0,0 +1,62 @@ +# Overview + +The gemini example showcases how you can use the Restack AI Composio integration. A workflow has been created that will create an even on the google calendar of the provided entity. + +# Requirements + +- Node 20 or higher + +```bash +brew install nvm +nvm use 20 +``` + +- pnpm + +```bash +brew install pnpm +``` + +# Install Restack Web UI + +To install the Restack Web UI, you can use Docker. + +```bash +docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main +``` + +# Start pods + +Where all your code is defined, including workflow steps. + +add `COMPOSIO_API_KEY` and `OPENAI_API_KEY` in .env + +```bash +pnpm i +pnpm build +pnpm dev +``` + +Your code will be running in pods and syncing with Restack engine to execute workflows or functions. + +# Schedule a workflow + +In another shell: + +```bash +pnpm schedule +``` + +Will schedule to start example workflow immediately. The code for this is on `scheduleWorkflow.ts`. In here you can see how the createCalendarEventWorkflow is scheduled to be exectuted. + +## Deploy on Restack + +```bash +pnpm restack-up +``` + +To deploy the application on Restack, you can use the provided `restack_up.mjs` script. This script utilizes the Restack Cloud SDK to define and deploy your application stack. It sets up the necessary environment variables and configures the application for deployment. + +To get started, ensure you have the required Restack Cloud credentials and environment variables set up. Then, run the script to initiate the deployment process. + +For more detailed information on deploying your repository to Restack, refer to the [Restack Cloud deployment documentation](https://docs.restack.io/restack-cloud/deployrepo). diff --git a/examples/composio/restack_up.mjs b/examples/composio/restack_up.mjs new file mode 100644 index 0000000..97cb560 --- /dev/null +++ b/examples/composio/restack_up.mjs @@ -0,0 +1,44 @@ +import { RestackCloud } from "@restackio/cloud"; +import "dotenv/config"; + +const main = async () => { + const restackCloudClient = new RestackCloud(process.env.RESTACK_CLOUD_TOKEN); + + const restackEngineEnvs = [ + { + name: "RESTACK_ENGINE_ID", + value: process.env.RESTACK_ENGINE_ID, + }, + { + name: "RESTACK_ENGINE_ADDRESS", + value: process.env.RESTACK_ENGINE_ADDRESS, + }, + { + name: "RESTACK_ENGINE_API_KEY", + value: process.env.RESTACK_ENGINE_API_KEY, + }, + ]; + + const servicesApp = { + name: "services", + dockerFilePath: "examples/composio/Dockerfile", + dockerBuildContext: "examples/composio", + environmentVariables: [ + { + name: "COMPOSIO_API_KEY", + value: process.env.COMPOSIO_API_KEY, + }, + ...restackEngineEnvs, + ], + }; + + await restackCloudClient.stack({ + name: "composio development environment", + previewEnabled: false, + applications: [servicesApp], + }); + + await restackCloudClient.up(); +}; + +main(); diff --git a/examples/composio/scheduleWorkflow.ts b/examples/composio/scheduleWorkflow.ts new file mode 100644 index 0000000..ebab568 --- /dev/null +++ b/examples/composio/scheduleWorkflow.ts @@ -0,0 +1,33 @@ +import { client } from "./src/client"; + +export type InputSchedule = { + entityId: string; + calendarInstruction: string; +}; + +const today = new Date().toDateString(); + +async function scheduleWorkflow(input: InputSchedule) { + try { + const workflowId = `${Date.now()}-createCalendarEvent`; + const runId = await client.scheduleWorkflow({ + workflowName: "createCalendarEventWorkflow", + workflowId, + input, + }); + + const result = await client.getWorkflowResult({ workflowId, runId }); + + console.log("Workflow result:", result); + + process.exit(0); // Exit the process successfully + } catch (error) { + console.error("Error scheduling workflow:", error); + process.exit(1); // Exit the process with an error code + } +} + +scheduleWorkflow({ + entityId: "jessicai", + calendarInstruction: `Create a 1 hour meeting event at 5:30PM tomorrow. Today's date is ${today}`, +}); diff --git a/examples/composio/src/client.ts b/examples/composio/src/client.ts new file mode 100644 index 0000000..b990acd --- /dev/null +++ b/examples/composio/src/client.ts @@ -0,0 +1,13 @@ +import Restack from "@restackio/ai"; + +import "dotenv/config"; + +export const connectionOptions = { + engineId: process.env.RESTACK_ENGINE_ID!, + address: process.env.RESTACK_ENGINE_ADDRESS!, + apiKey: process.env.RESTACK_ENGINE_API_KEY!, +}; + +export const client = new Restack( + process.env.RESTACK_ENGINE_API_KEY ? connectionOptions : undefined +); diff --git a/examples/composio/src/services.ts b/examples/composio/src/services.ts new file mode 100644 index 0000000..7ec69f9 --- /dev/null +++ b/examples/composio/src/services.ts @@ -0,0 +1,25 @@ +import { composioService } from "@restackio/integrations-composio"; + +import { client } from "./client"; + +async function services() { + const workflowsPath = require.resolve("./workflows"); + try { + await Promise.all([ + // Start service with current workflows and functions + client.startService({ + workflowsPath, + }), + // Start the composio service + composioService({ client }), + ]); + + console.log("Services running successfully."); + } catch (e) { + console.error("Failed to run services", e); + } +} + +services().catch((err) => { + console.error("Error running services:", err); +}); diff --git a/examples/composio/src/workflows/createCalendarEvent.ts b/examples/composio/src/workflows/createCalendarEvent.ts new file mode 100644 index 0000000..9d93a0f --- /dev/null +++ b/examples/composio/src/workflows/createCalendarEvent.ts @@ -0,0 +1,20 @@ +import { step } from "@restackio/ai/workflow"; +import * as composioFunctions from "@restackio/integrations-composio/functions"; +import { composioTaskQueue } from "@restackio/integrations-composio/taskQueue"; + +export async function createCalendarEventWorkflow({ + entityId, + calendarInstruction, +}: { + entityId: string; + calendarInstruction: string; +}) { + await step({ + taskQueue: composioTaskQueue, + }).createCalendarEvent({ + entityId, + calendarInstruction, + }); + + return true; +} diff --git a/examples/composio/src/workflows/index.ts b/examples/composio/src/workflows/index.ts new file mode 100644 index 0000000..9d35a4e --- /dev/null +++ b/examples/composio/src/workflows/index.ts @@ -0,0 +1 @@ +export * from "./createCalendarEvent"; diff --git a/examples/composio/tsconfig.json b/examples/composio/tsconfig.json new file mode 100644 index 0000000..f4d02b9 --- /dev/null +++ b/examples/composio/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "Node16", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "outDir": "./dist", + "rootDir": "./src", + "resolveJsonModule": true + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/examples/gemini/readme.md b/examples/gemini/readme.md index 12a9a01..fc27f74 100644 --- a/examples/gemini/readme.md +++ b/examples/gemini/readme.md @@ -49,21 +49,6 @@ pnpm schedule Will schedule to start example workflow immediately. The code for this is on `scheduleWorkflow.ts`. In here you can see how the helloWorkflow is scheduled to be exectuted. -# Architecture - -```mermaid -flowchart TD - C[fa:fa-bolt scheduleWorkflow client] -->|registers workflow with schedule| E{Restack Engine} - E --> |queries results| C - E -->|pulls queue with input| P1[fa:fa-ship restack pod] - E -->|orchestrates with rate limit| P2[fa:fa-ship gemini pod] - P1 -->|runs| W[fa:fa-th-list example workflow] - P1 -->|runs| Go[fa:fa-code goodbye function] - P2 -->|runs| Gr[fa:fa-code greet function] - P1 -->|sends status + output | E - P2 -->|sends status output | E -``` - ## Deploy on Restack ```bash From 0378f64580a10d77bdb8ad939c03d0d20232f65a Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Tue, 29 Oct 2024 16:50:44 +0100 Subject: [PATCH 121/122] Add CA package Former-commit-id: c12f2b780c1e67a3b6ee78f7ff36e28be968cd6b Former-commit-id: 9e3c39908c65f9c38976cbac681a857fba0eac2f --- examples/composio/Dockerfile | 4 ++++ examples/gemini/Dockerfile | 4 ++++ examples/openai/Dockerfile | 4 ++++ examples/posthog/Dockerfile | 4 ++++ examples/voice/Dockerfile.services | 4 ++++ 5 files changed, 20 insertions(+) diff --git a/examples/composio/Dockerfile b/examples/composio/Dockerfile index 2417164..da467da 100644 --- a/examples/composio/Dockerfile +++ b/examples/composio/Dockerfile @@ -27,6 +27,10 @@ RUN npm run build FROM node:20-bullseye-slim AS runner +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + RUN addgroup --system --gid 1001 service RUN adduser --system --uid 1001 service USER service diff --git a/examples/gemini/Dockerfile b/examples/gemini/Dockerfile index 2417164..da467da 100644 --- a/examples/gemini/Dockerfile +++ b/examples/gemini/Dockerfile @@ -27,6 +27,10 @@ RUN npm run build FROM node:20-bullseye-slim AS runner +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + RUN addgroup --system --gid 1001 service RUN adduser --system --uid 1001 service USER service diff --git a/examples/openai/Dockerfile b/examples/openai/Dockerfile index 2417164..da467da 100644 --- a/examples/openai/Dockerfile +++ b/examples/openai/Dockerfile @@ -27,6 +27,10 @@ RUN npm run build FROM node:20-bullseye-slim AS runner +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + RUN addgroup --system --gid 1001 service RUN adduser --system --uid 1001 service USER service diff --git a/examples/posthog/Dockerfile b/examples/posthog/Dockerfile index 2417164..da467da 100644 --- a/examples/posthog/Dockerfile +++ b/examples/posthog/Dockerfile @@ -27,6 +27,10 @@ RUN npm run build FROM node:20-bullseye-slim AS runner +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + RUN addgroup --system --gid 1001 service RUN adduser --system --uid 1001 service USER service diff --git a/examples/voice/Dockerfile.services b/examples/voice/Dockerfile.services index 2417164..da467da 100644 --- a/examples/voice/Dockerfile.services +++ b/examples/voice/Dockerfile.services @@ -27,6 +27,10 @@ RUN npm run build FROM node:20-bullseye-slim AS runner +RUN apt-get update \ + && apt-get install -y ca-certificates \ + && rm -rf /var/lib/apt/lists/* + RUN addgroup --system --gid 1001 service RUN adduser --system --uid 1001 service USER service From 2d0e9a4913a8ec1c9ee02dc66c60502f53633c96 Mon Sep 17 00:00:00 2001 From: Oles Maiboroda Date: Wed, 30 Oct 2024 17:04:22 +0100 Subject: [PATCH 122/122] Readme's: change pods to services Former-commit-id: e11bc6eae44de6aec06e03d98fe7dc86360591bc Former-commit-id: 0545733c1a7f364275c5510e9c18dc1f9b9320d4 --- examples/composio/readme.md | 4 ++-- examples/gemini/readme.md | 4 ++-- examples/openai/readme.md | 7 ++++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/examples/composio/readme.md b/examples/composio/readme.md index 93c1f28..02b7044 100644 --- a/examples/composio/readme.md +++ b/examples/composio/readme.md @@ -25,7 +25,7 @@ To install the Restack Web UI, you can use Docker. docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main ``` -# Start pods +# Start services Where all your code is defined, including workflow steps. @@ -37,7 +37,7 @@ pnpm build pnpm dev ``` -Your code will be running in pods and syncing with Restack engine to execute workflows or functions. +Your code will be running and syncing with Restack engine to execute workflows or functions. # Schedule a workflow diff --git a/examples/gemini/readme.md b/examples/gemini/readme.md index fc27f74..cd9c62f 100644 --- a/examples/gemini/readme.md +++ b/examples/gemini/readme.md @@ -25,7 +25,7 @@ To install the Restack Web UI, you can use Docker. docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main ``` -# Start pods +# Start services Where all your code is defined, including workflow steps. @@ -37,7 +37,7 @@ pnpm build pnpm dev ``` -Your code will be running in pods and syncing with Restack engine to execute workflows or functions. +Your code will be running and syncing with Restack engine to execute workflows or functions. # Schedule a workflow diff --git a/examples/openai/readme.md b/examples/openai/readme.md index b358663..94dadf3 100644 --- a/examples/openai/readme.md +++ b/examples/openai/readme.md @@ -16,17 +16,18 @@ To install the Restack Web UI, you can use Docker. docker run -d --pull always --name studio -p 5233:5233 -p 6233:6233 -p 7233:7233 ghcr.io/restackio/restack:main ``` -# Start pods +# Start services Where all your code is defined, including workflow steps. add OPENAI_API_KEY in .env +```bash pnpm i pnpm dev - -Your code will be running in pods and syncing with Restack engine to execute workflows or functions. +``` +Your code will be running and syncing with Restack engine to execute workflows or functions. # Schedule a workflow