diff --git a/.github/workflows/build-cloud-nx.yml b/.github/workflows/ci.yml similarity index 100% rename from .github/workflows/build-cloud-nx.yml rename to .github/workflows/ci.yml diff --git a/.github/workflows/continuous-delivery.yml b/.github/workflows/continuous-delivery.yml index e4a41604ace..44eeee2ba59 100644 --- a/.github/workflows/continuous-delivery.yml +++ b/.github/workflows/continuous-delivery.yml @@ -13,6 +13,7 @@ on: type: choice options: - deploy-staging # Re-deploy to staging (e.g., after infra change) + - deploy-staging-skip-freeze # Deploy to staging, ignoring the freeze window - promote-to-production # Hotfix: promote staging to prod immediately - weekly-release # Trigger official release manually @@ -39,8 +40,9 @@ jobs: build-image: needs: [check-freeze] if: | - (github.event_name == 'push' && needs.check-freeze.outputs.frozen == 'false') || - (github.event_name == 'workflow_dispatch' && github.event.inputs.action == 'deploy-staging') + always() && + ((github.event_name == 'push' && needs.check-freeze.outputs.frozen == 'false') || + (github.event_name == 'workflow_dispatch' && (github.event.inputs.action == 'deploy-staging' || github.event.inputs.action == 'deploy-staging-skip-freeze'))) runs-on: depot-ubuntu-24.04 concurrency: group: deploy-staging diff --git a/.github/workflows/reusable-finalize-translations-pr.yml b/.github/workflows/reusable-finalize-translations-pr.yml index 1b8428398f4..c1398f21157 100644 --- a/.github/workflows/reusable-finalize-translations-pr.yml +++ b/.github/workflows/reusable-finalize-translations-pr.yml @@ -112,4 +112,10 @@ jobs: merge_method: 'squash' }); + await github.rest.git.deleteRef({ + owner: context.repo.owner, + repo: context.repo.repo, + ref: `heads/${branchName}` + }); + diff --git a/bun.lock b/bun.lock index 095b99685b4..a16a860db2f 100644 --- a/bun.lock +++ b/bun.lock @@ -42,8 +42,7 @@ "@hookform/resolvers": "3.9.0", "@hyperdx/node-opentelemetry": "0.8.2", "@keyv/sqlite": "^3.0.0", - "@modelcontextprotocol/sdk": "1.26.0", - "@nx/devkit": "22.0.1", + "@modelcontextprotocol/sdk": "1.27.1", "@octokit/rest": "21.1.1", "@openrouter/ai-sdk-provider": "2.1.1", "@openrouter/sdk": "0.2.9", @@ -218,7 +217,6 @@ "node-cron": "3.0.3", "node-vault": "0.10.9", "nodemailer": "7.0.11", - "nx-cloud": "19.1.0", "object-sizeof": "2.6.3", "p-limit": "2.3.0", "pako": "2.1.0", @@ -286,7 +284,7 @@ "vaul": "1.1.2", "write-file-atomic": "5.0.1", "yaml": "2.4.1", - "zod": "4.1.13", + "zod": "4.3.6", "zone.js": "0.14.4", "zustand": "4.5.4", }, @@ -381,7 +379,7 @@ }, "packages/pieces/common": { "name": "@activepieces/pieces-common", - "version": "0.11.7", + "version": "0.12.0", "dependencies": { "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", @@ -390,7 +388,7 @@ "form-data": "4.0.4", "mime-types": "2.1.35", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/mime-types": "2.1.1", @@ -493,7 +491,7 @@ "ajv": "8.12.0", "mime-types": "2.1.35", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/mime-types": "2.1.1", @@ -570,7 +568,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/alai": { @@ -923,7 +921,7 @@ "@azure/openai": "1.0.0-beta.11", "tiktoken": "1.0.11", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/backblaze": { @@ -1027,7 +1025,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/bexio": { @@ -1153,7 +1151,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/bookedin": { @@ -1419,7 +1417,7 @@ "@activepieces/shared": "workspace:*", "form-data": "4.0.4", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/chatbase": { @@ -1516,7 +1514,7 @@ "ajv": "8.12.0", "mime-types": "2.1.35", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/mime-types": "2.1.1", @@ -1530,7 +1528,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/clearoutphone": { @@ -1583,7 +1581,7 @@ "dayjs": "1.11.9", "qs": "6.14.2", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/qs": "6.14.0", @@ -1627,7 +1625,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/cloudinary": { @@ -1695,7 +1693,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/comfyicu": { @@ -1742,7 +1740,7 @@ "@activepieces/shared": "workspace:*", "contentful-management": "11.48.1", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/contextual-ai": { @@ -1764,7 +1762,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/convertkit": { @@ -1870,7 +1868,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/cyberark": { @@ -1912,7 +1910,7 @@ "@activepieces/shared": "workspace:*", "@datadog/datadog-api-client": "^1.43.0", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/datafuel": { @@ -1968,7 +1966,7 @@ "@activepieces/shared": "workspace:*", "openai": "4.67.1", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/denser-ai": { @@ -2072,7 +2070,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/doctly": { @@ -2221,7 +2219,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/elevenlabs": { @@ -2314,7 +2312,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/fathom": { @@ -2485,7 +2483,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/formbricks": { @@ -2841,7 +2839,7 @@ "nanoid": "3.3.8", "tslib": "2.6.2", "wav": "^1.0.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/mime-types": "2.1.1", @@ -2857,7 +2855,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/google-search": { @@ -2897,7 +2895,7 @@ "lodash": "4.17.23", "nanoid": "3.3.8", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/google-slides": { @@ -2941,7 +2939,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/gotify": { @@ -3024,7 +3022,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/groq": { @@ -3066,7 +3064,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/hashi-corp-vault": { @@ -3097,7 +3095,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/hedy": { @@ -3119,7 +3117,7 @@ "@activepieces/shared": "workspace:*", "axios": "1.13.5", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/heygen": { @@ -3151,7 +3149,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/http-oauth2": { @@ -3287,7 +3285,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/insta-charts": { @@ -3363,7 +3361,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/jina-ai": { @@ -3389,7 +3387,7 @@ "dayjs": "1.11.9", "form-data": "4.0.4", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/jogg-ai": { @@ -3400,7 +3398,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/jotform": { @@ -3472,7 +3470,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/kissflow": { @@ -3498,7 +3496,7 @@ "@activepieces/shared": "workspace:*", "axios": "1.13.5", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/knack": { @@ -3539,7 +3537,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/lead-connector": { @@ -3551,7 +3549,7 @@ "@activepieces/shared": "workspace:*", "jsonwebtoken": "9.0.1", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/jsonwebtoken": "9.0.10", @@ -3928,7 +3926,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/matrix": { @@ -4330,7 +4328,7 @@ "@activepieces/shared": "workspace:*", "mongodb": "6.15.0", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/moonclerk": { @@ -4559,7 +4557,7 @@ "tslib": "2.6.2", "url": "^0.11.3", "xmlrpc": "^1.3.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/xmlrpc": "^1.3.10", @@ -4648,7 +4646,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/openai": { @@ -4663,7 +4661,7 @@ "openai": "4.67.1", "tiktoken": "1.0.11", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/mime-types": "2.1.1", @@ -4734,6 +4732,16 @@ "tslib": "^2.3.0", }, }, + "packages/pieces/community/outseta": { + "name": "@activepieces/piece-outseta", + "version": "0.0.1", + "dependencies": { + "@activepieces/pieces-common": "workspace:*", + "@activepieces/pieces-framework": "workspace:*", + "@activepieces/shared": "workspace:*", + "tslib": "2.6.2", + }, + }, "packages/pieces/community/pandadoc": { "name": "@activepieces/piece-pandadoc", "version": "0.1.4", @@ -4808,7 +4816,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/pdf": { @@ -4879,7 +4887,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/personal-ai": { @@ -5412,7 +5420,7 @@ "@activepieces/shared": "workspace:*", "@runware/sdk-js": "1.1.44", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/runway": { @@ -5424,7 +5432,7 @@ "@activepieces/shared": "workspace:*", "@runwayml/sdk": "2.9.0", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/saastic": { @@ -5435,7 +5443,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/saleor": { @@ -5581,7 +5589,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/serp-api": { @@ -5656,7 +5664,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/short-io": { @@ -5762,7 +5770,7 @@ "@slack/web-api": "7.9.0", "slackify-markdown": "4.4.0", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/slidespeak": { @@ -5939,7 +5947,7 @@ "@activepieces/shared": "workspace:*", "form-data": "4.0.4", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/stripe": { @@ -6063,7 +6071,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/taskade": { @@ -6250,7 +6258,7 @@ "@activepieces/shared": "workspace:*", "form-data": "4.0.4", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/trello": { @@ -6316,7 +6324,7 @@ "mime-types": "2.1.35", "tslib": "2.6.2", "twitter-api-v2": "1.15.1", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/mime-types": "2.1.1", @@ -6361,7 +6369,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/validatedmails": { @@ -6475,7 +6483,7 @@ "@activepieces/shared": "workspace:*", "form-data": "4.0.4", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/voipstudio": { @@ -6497,7 +6505,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/vtex": { @@ -6565,7 +6573,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/webscraping-ai": { @@ -6647,7 +6655,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/woodpecker": { @@ -6831,7 +6839,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/zoho-books": { @@ -6853,7 +6861,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "^2.3.0", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/community/zoho-crm": { @@ -6963,7 +6971,7 @@ "buffer": "6.0.3", "openpgp": "^6.2.0", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "vitest": "3.0.8", @@ -7020,7 +7028,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "vitest": "3.0.8", @@ -7035,7 +7043,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, }, "packages/pieces/core/file-helper": { @@ -7129,7 +7137,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "vitest": "3.0.8", @@ -7172,7 +7180,7 @@ "ssh2": "1.16.0", "ssh2-sftp-client": "9.1.0", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/ssh2": "1.15.5", @@ -7204,7 +7212,7 @@ "@activepieces/shared": "workspace:*", "deep-equal": "2.2.2", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/deep-equal": "1.0.4", @@ -7229,7 +7237,7 @@ "@activepieces/shared": "workspace:*", "qs": "6.14.2", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/qs": "6.14.0", @@ -7257,7 +7265,7 @@ "string-strip-html": "8.5.0", "tslib": "2.6.2", "turndown": "7.2.0", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/showdown": "2.0.6", @@ -7293,13 +7301,13 @@ }, "packages/pieces/framework": { "name": "@activepieces/pieces-framework", - "version": "0.25.6", + "version": "0.26.0", "dependencies": { "@activepieces/shared": "workspace:*", - "@sinclair/typebox": "0.34.11", "ai": "^6.0.0", "semver": "7.6.0", "tslib": "2.6.2", + "zod": "4.3.6", }, "devDependencies": { "@types/semver": "7.5.6", @@ -7339,8 +7347,7 @@ "@fastify/otel": "0.9.3", "@fastify/rate-limit": "10.3.0", "@fastify/swagger": "9.5.1", - "@fastify/type-provider-typebox": "5.1.0", - "@modelcontextprotocol/sdk": "1.26.0", + "@modelcontextprotocol/sdk": "1.27.1", "@openrouter/ai-sdk-provider": "2.1.1", "@openrouter/sdk": "0.2.9", "@opentelemetry/api": "1.9.0", @@ -7357,7 +7364,6 @@ "@opentelemetry/semantic-conventions": "1.37.0", "@segment/analytics-next": "1.72.0", "@segment/analytics-node": "2.2.0", - "@sinclair/typebox": "0.34.11", "@socket.io/redis-adapter": "8.3.0", "ai": "^6.0.0", "ai-gateway-provider": "3.1.1", @@ -7376,6 +7382,7 @@ "fastify-plugin": "5.0.1", "fastify-raw-body": "5.0.0", "fastify-socket": "5.1.2", + "fastify-type-provider-zod": "4.0.2", "fastify-xml-body-parser": "2.2.0", "firebase-scrypt": "2.2.0", "fuse.js": "7.0.0", @@ -7406,7 +7413,7 @@ "typeorm": "0.3.26", "typeorm-pglite": "0.3.2", "worker": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@activepieces/piece-facebook-leads": "workspace:*", @@ -7439,7 +7446,6 @@ "@activepieces/shared": "workspace:*", "@hyperdx/node-opentelemetry": "0.8.2", "@sentry/node": "7.120.0", - "@sinclair/typebox": "0.34.11", "async-mutex": "0.4.0", "axios": "1.13.5", "axios-retry": "4.4.1", @@ -7456,6 +7462,7 @@ "tree-kill": "1.2.2", "tslib": "2.6.2", "typeorm": "0.3.26", + "zod": "4.3.6", }, "devDependencies": { "@types/node": "24.11.0", @@ -7483,7 +7490,7 @@ "socket.io-client": "4.8.1", "string-replace-async": "3.0.2", "tslib": "2.6.2", - "zod": "4.1.13", + "zod": "4.3.6", }, "devDependencies": { "@types/mime-types": "2.1.1", @@ -7546,14 +7553,14 @@ }, "packages/shared": { "name": "@activepieces/shared", - "version": "0.41.1", + "version": "0.42.0", "dependencies": { - "@sinclair/typebox": "0.34.11", "deepmerge-ts": "7.1.0", "nanoid": "3.3.8", "semver": "7.6.0", "socket.io-client": "4.8.1", "tslib": "2.6.2", + "zod": "4.3.6", }, "devDependencies": { "@types/node": "24.11.0", @@ -7585,7 +7592,6 @@ "@hookform/resolvers": "5.2.2", "@radix-ui/react-use-controllable-state": "1.2.2", "@segment/analytics-next": "1.72.0", - "@sinclair/typebox": "0.34.11", "@tanstack/query-db-collection": "1.0.12", "@tanstack/react-db": "0.1.60", "@tanstack/react-query": "5.51.1", @@ -8516,6 +8522,8 @@ "@activepieces/piece-orimon": ["@activepieces/piece-orimon@workspace:packages/pieces/community/orimon"], + "@activepieces/piece-outseta": ["@activepieces/piece-outseta@workspace:packages/pieces/community/outseta"], + "@activepieces/piece-pandadoc": ["@activepieces/piece-pandadoc@workspace:packages/pieces/community/pandadoc"], "@activepieces/piece-paperform": ["@activepieces/piece-paperform@workspace:packages/pieces/community/paperform"], @@ -8968,49 +8976,49 @@ "@adraffy/ens-normalize": ["@adraffy/ens-normalize@1.10.1", "", {}, "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw=="], - "@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.74", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.55", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-YbAUtjbo212dGVnE0lnXFmRAFG2BeZ1L4UoIcDvkT6MhRXKbcmkM5wUYFKLv4D44+q6QTepmNcSiws86+8RVDw=="], + "@ai-sdk/amazon-bedrock": ["@ai-sdk/amazon-bedrock@4.0.69", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.50", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16", "@smithy/eventstream-codec": "^4.0.1", "@smithy/util-utf8": "^4.0.0", "aws4fetch": "^1.0.20" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-XdsJnMa1DZAQJ4bRuy97JYF48fSJUZWUpjg4rrDrzKY6wUAOIKpHMHmnGF6bCpd3NcR6E2R7c/HhWyIQAHuuUg=="], - "@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.55", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-9aDtH3a1JsdRmZUJ01vRo6Kar5bbhp7v4S38C/7Te0knIYZk6H1OU3QhVrlvjTWpvi4egaSLMv4qAXyO6TUNnw=="], + "@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.50", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-BkCUgGTp/iZJuuFBF1wv7GGnrEJg7X7hqbaa+/t4HTBt9dZn3e6NFn5NhPUvo2p5SreUeHEl0As0r2uaVn3K9Q=="], - "@ai-sdk/azure": ["@ai-sdk/azure@3.0.40", "", { "dependencies": { "@ai-sdk/openai": "3.0.39", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-4BVhJR/LdGoBgQ5fw225hvv4/2Ou34W5Wi79URiTS+KDnIkF7okH5iy0oxBbwUWafa+07LYf5sTMXUS7cKW5Xg=="], + "@ai-sdk/azure": ["@ai-sdk/azure@3.0.38", "", { "dependencies": { "@ai-sdk/openai": "3.0.37", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-ihePWrlsSfCz1sB6tkaRErw9w1f26uKncoVYu3EBjFhvuY0tOIOOcMS3649R/she8wPR/cP5n69t6C8BtjZAFA=="], - "@ai-sdk/cerebras": ["@ai-sdk/cerebras@2.0.37", "", { "dependencies": { "@ai-sdk/openai-compatible": "2.0.33", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-X+4gya3p6b61CiWEwBwN0rKk1pMtrAZLurM2z3C9IFZwT9nzrfi9aQtN7X9isiZSrkRp1sa8mzVN74Pv8wSKUw=="], + "@ai-sdk/cerebras": ["@ai-sdk/cerebras@2.0.35", "", { "dependencies": { "@ai-sdk/openai-compatible": "2.0.31", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-FcC7jaHrh1bEEnOBLLdRA7ZSwk+cfDOsMLov54vnjpNFHNMw6DpAyHK2biCjueG7V/b01UwkXWQHk90oVw3MgA=="], - "@ai-sdk/cohere": ["@ai-sdk/cohere@3.0.23", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Xe50S7q08RX+kfjarOb1aK3P9X4ojhai0XOzA+sQ1ICkfFcmV2cutSI1RzoKc7CJGmFoyuTv06GpaVIhEfASyQ=="], + "@ai-sdk/cohere": ["@ai-sdk/cohere@3.0.22", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-D4TU80rLUD+9eiOd035WMSsQuDBa8/AOcU4NpETfZ7SHZdgGl1WI4EKZAuqAjCfPGgor/QiY+oC1R+ReHFzGQw=="], - "@ai-sdk/deepgram": ["@ai-sdk/deepgram@2.0.22", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-JzRuzti8Hib3o5e4kc7iM+dDW8cdlf0K2i9OdUnlWGGp7zs0x/s5RjwU3whF+cjQt9Tub2nYdTTj25Gl0qmdqA=="], + "@ai-sdk/deepgram": ["@ai-sdk/deepgram@2.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-RxtunJeHAzaNtTJsO1CKv8UQavW5k4sSnqXf2jmxHqqDIVYCZBN6K+Ly4HzJaj7N4uVPC0HvpPwt24fC05u1EQ=="], - "@ai-sdk/deepseek": ["@ai-sdk/deepseek@2.0.22", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-cawiX4oYAJnov14ky9hN30lLOsmjfJCnZNi7JjF/SUgHnEzXr0SWyY40vzF8pxzeRybt9Ukl+EewfGPMPNgrGQ=="], + "@ai-sdk/deepseek": ["@ai-sdk/deepseek@2.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-swIljtTiEBt5fTmnHftb20MnM06eBEANJzEYAUvU1m3yQH+HcduHxwVMLUtf9M7RqpTrBrAJxLtHHP5kPIVSCQ=="], - "@ai-sdk/elevenlabs": ["@ai-sdk/elevenlabs@2.0.22", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-BAOIgSu0O1jT04sbFoCK3SHCs4sFo2jsXBO4kC7uvI5GenZxWqsJy+WDm//b3JIvymCYraNyrnwSqS+F/rP9/w=="], + "@ai-sdk/elevenlabs": ["@ai-sdk/elevenlabs@2.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Hx59KyDaeQ8xfg9NndwZUs7rPOHY49Hpsz9YPExlZ+2mpZIeMsc7wpgFfPMi1rOXWPVgnTE6jH/1kEkfjV568g=="], - "@ai-sdk/fireworks": ["@ai-sdk/fireworks@2.0.38", "", { "dependencies": { "@ai-sdk/openai-compatible": "2.0.33", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-xms6HYOMv5Rx1GoszzdO0ySCPu2yXH+6DREDQnL1fBqAfvO/S0ZcsqreI5FosBuK4i5fwEsAcJWtvweq5m7liA=="], + "@ai-sdk/fireworks": ["@ai-sdk/fireworks@2.0.36", "", { "dependencies": { "@ai-sdk/openai-compatible": "2.0.31", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-hSZUcC25H+c3lcNrJWt9jCvmnzUidgysukVzawupTDxq+CDIv9Q4mPy9QzkqUaaBDZ1w9fsz2UdUq4aev95VeA=="], - "@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.64", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17", "@vercel/oidc": "3.1.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-rLW+uT0MmUEzxVTI1GC2sYrZTXd8RZ8rvbEVTqzSZvT1d8/+cT8ZNxI8dFssyrmSrvUw81jjpbfDuHST4lNLPA=="], + "@ai-sdk/gateway": ["@ai-sdk/gateway@3.0.59", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16", "@vercel/oidc": "3.1.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-MbtheWHgEFV/8HL1Z6E3hOAsmP73zZlNFg0F0nJAD0Adnjp4J/plqNK00Y896d+dWTw+r0OXzyov9/2wCFjH0Q=="], - "@ai-sdk/google": ["@ai-sdk/google@3.0.37", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-hZ7nO55+GfQEWJe2B5XRoLNeEubMTuk6OjJJUDS+XCtjKLCd973rRkc62vS86rHw5VuCGITwn3gUZRhSbuX5vw=="], + "@ai-sdk/google": ["@ai-sdk/google@3.0.34", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-1tXUr1W5YACXPgtHYWIU3raqMsayp6cMI8NUT4EEzzZSpvHzkkiNWHEr+bGxEGurSUukfo+pE1RKpLwBFOZtJg=="], "@ai-sdk/google-vertex": ["@ai-sdk/google-vertex@3.0.110", "", { "dependencies": { "@ai-sdk/anthropic": "2.0.67", "@ai-sdk/google": "2.0.56", "@ai-sdk/provider": "2.0.1", "@ai-sdk/provider-utils": "3.0.21", "google-auth-library": "^10.5.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-dmeRz+M1Fgn8wlAhplShHVNPF9SU4ir8AYcNGMzGmXvMDw0jviLVCfPiYuof+nm32h+j01qVFWFHEVIayf9e1w=="], - "@ai-sdk/groq": ["@ai-sdk/groq@3.0.27", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-IZLwdA7s70BZQMG5JUFgaXMw61UvLR9sBSf7+vhc4YjMMj0UpRK+3ERaVxQah/wrjVhoqEYRUA4JgcBIrafxRg=="], + "@ai-sdk/groq": ["@ai-sdk/groq@3.0.26", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-ePG22NBqNo1mBShwTKaNt5eKdwMCAvyTe8ZTl45ZlirUej8o/NF0+L5yGfnVJGhKRFp/aBvoPE22iWoUvb+bIQ=="], "@ai-sdk/mcp": ["@ai-sdk/mcp@1.0.11", "", { "dependencies": { "@ai-sdk/provider": "3.0.4", "@ai-sdk/provider-utils": "4.0.8", "pkce-challenge": "^5.0.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-TD+7qL7l43hx/XRlRSIzxyRQtxUZxgknJ4FJtytK9Tv/Lw/eVRQnsq4u2TumzYJNOYFsm6NAYTcto248qqMCTg=="], - "@ai-sdk/mistral": ["@ai-sdk/mistral@3.0.22", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-0D7epG78iAr8g2EWAzA6jke/+oIpqedPoTWkd/1NXQ9zOlXq+JHbde3/Smls86Px69DrJAvmbnEbkV0k7YeFtg=="], + "@ai-sdk/mistral": ["@ai-sdk/mistral@3.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-GhLRyfXghnKpt51t8ELU3cXwbCUcGOxZFUQFUZvNBt+y298PlOhaAK6pQtihfpNRGUycrdNotKwVajJm0a6uwg=="], - "@ai-sdk/openai": ["@ai-sdk/openai@3.0.39", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-EZrs4L6kMkPQhpodagpEvqLSryOIK99WgblN0IsVHr1xhajWizQOZ0XMa7c5JpSYgIjV6u8GCpGV6hS3Mk2Bug=="], + "@ai-sdk/openai": ["@ai-sdk/openai@3.0.37", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-bcYjT3/58i/C0DN3AnrjiGsAb0kYivZLWWUtgTjsBurHSht/LTEy+w3dw5XQe3FmZwX7Z/mUQCiA3wB/5Kf7ow=="], "@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.16", "", { "dependencies": { "@ai-sdk/provider": "3.0.4", "@ai-sdk/provider-utils": "4.0.8" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Vn+zlFSeo3DiBvYZv575+9WxqYqFyu0xNx3eAWwFDHkQpMwh9MC5eVTfdpT/YRW9lK0jWvJ//aG7QnX+FE16/w=="], - "@ai-sdk/perplexity": ["@ai-sdk/perplexity@3.0.21", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-t4VvhQ1a8Ab9eXyeQ5POqxhxzXsfjighcDQAPc5DefIigtq87yP6UihpMmh4kETdNCpYogpejtVQv/TtQvTZAg=="], + "@ai-sdk/perplexity": ["@ai-sdk/perplexity@3.0.20", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-KHiakMIQL6x6TsXPeJx/dvMkSvgFZI8tz4wOqDsF0rod0pTOkTQzVvoKVsNte0BiSRdNjIMKbXmRwz2wFBOolQ=="], "@ai-sdk/provider": ["@ai-sdk/provider@3.0.8", "", { "dependencies": { "json-schema": "^0.4.0" } }, "sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ=="], - "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.17", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-oyCeFINTYK0B8ZGUBiQc05G5vytPlKSmTTtm19xfJuUgoi8zkvvRcoPQci4mSnyfpPn2XSFFDfsALG8uGcapfg=="], + "@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.16", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-kBvDqNkt5EwlzF9FujmNhhtl8FYg3e8FO8P5uneKliqfRThWemzBj+wfYr7ZCymAQhTRnwSSz1/SOqhOAwmx9g=="], "@ai-sdk/replicate": ["@ai-sdk/replicate@2.0.8", "", { "dependencies": { "@ai-sdk/provider": "3.0.4", "@ai-sdk/provider-utils": "4.0.8" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-Y+nlRIK80XXvkScHT/wqWmYk7GNL+6+CK6YkTWj4jF2BX/1sVNXBGmxQ7BSeRrqOpgUuJOCPV6lbLbsUPcSMgg=="], - "@ai-sdk/xai": ["@ai-sdk/xai@3.0.64", "", { "dependencies": { "@ai-sdk/openai-compatible": "2.0.33", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-1brA0N0smiFu2IkpBqJZl1AAtwOOMUD2H662WkMHEulpHFWT28lXevnjM6tlLYyxPWvslUEgg0h8a78Kk7T1rQ=="], + "@ai-sdk/xai": ["@ai-sdk/xai@3.0.60", "", { "dependencies": { "@ai-sdk/openai-compatible": "2.0.31", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-nDOUyzeepmyyoL5+9LxmwXy3BoX9mZy7cv3BjHPN4Xc+SVFVqL7uj/9m1oLRCNmpwfA/9QBq9kuD+J31EfdhMw=="], "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], @@ -9040,17 +9048,17 @@ "@atlaskit/platform-feature-flags": ["@atlaskit/platform-feature-flags@1.1.3", "", { "dependencies": { "@atlaskit/feature-gate-js-client": "^5.5.0", "@babel/runtime": "^7.0.0" } }, "sha512-dRn6UvVmMF5+WXnv7ZlxKTV2rVQncI2TgM0KTGSqpHdD9LnogITWC/rFjzUuF/W8MBCEvpouGilukqhq6rASnw=="], - "@atlaskit/react-ufo": ["@atlaskit/react-ufo@5.4.2", "", { "dependencies": { "@atlaskit/browser-apis": "^0.0.1", "@atlaskit/feature-gate-js-client": "^5.5.0", "@atlaskit/interaction-context": "^3.1.0", "@atlaskit/platform-feature-flags": "^1.1.0", "@babel/runtime": "^7.0.0", "@opentelemetry/api": "^1.9.0", "bind-event-listener": "^3.0.0", "bowser-ultralight": "^1.0.6", "scheduler": "0.23.2", "uuid": "^3.1.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-9fb2RfgiGPs6L4GWtqrW7lYFkMa6bKoeFj5BHp1+2BZv3EtMsyumkdgw0bOOkQTzmtV3fjaFtf9XI2WG1vsOEw=="], + "@atlaskit/react-ufo": ["@atlaskit/react-ufo@5.4.0", "", { "dependencies": { "@atlaskit/browser-apis": "^0.0.1", "@atlaskit/feature-gate-js-client": "^5.5.0", "@atlaskit/interaction-context": "^3.1.0", "@atlaskit/platform-feature-flags": "^1.1.0", "@babel/runtime": "^7.0.0", "@opentelemetry/api": "^1.9.0", "bind-event-listener": "^3.0.0", "bowser-ultralight": "^1.0.6", "scheduler": "0.23.2", "uuid": "^3.1.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-CRCtqI8rvslhrECmmBv3MTk5AFMnmn5xJuYc+szQp/OC4jbRksROVOm+kLtnnXGN3H33A6fXJqXTGhpVjG7X5g=="], - "@atlaskit/tmp-editor-statsig": ["@atlaskit/tmp-editor-statsig@32.8.0", "", { "dependencies": { "@atlaskit/feature-gate-js-client": "^5.5.0", "@atlaskit/react-ufo": "^5.4.0", "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-0mAoKSKP+77kiXN3mr0sD/bk0t8px5a8/RtcTTde5OLHC0OJqtZwI9MMTpN5wbbKODLJLya97PCwEYyyr977WA=="], + "@atlaskit/tmp-editor-statsig": ["@atlaskit/tmp-editor-statsig@32.3.0", "", { "dependencies": { "@atlaskit/feature-gate-js-client": "^5.5.0", "@atlaskit/react-ufo": "^5.4.0", "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-eH032yZuoYFIjcN/y4qCqY4iG+c20bAFn7wwDjd3yXWbYsRf8Qn8jAbTjYOJazwnpg9/4Sml6jtMgxNefrRN7Q=="], "@atproto/api": ["@atproto/api@0.16.0", "", { "dependencies": { "@atproto/common-web": "^0.4.2", "@atproto/lexicon": "^0.4.12", "@atproto/syntax": "^0.4.0", "@atproto/xrpc": "^0.7.1", "await-lock": "^2.2.2", "multiformats": "^9.9.0", "tlds": "^1.234.0", "zod": "^3.23.8" } }, "sha512-PQHeae6mz/L1YirUslfci7bknfg3RrSZjXpYwzLICxIOvqGKIkOi0+qukC2Py238RhXRo8YZ9dCuole9HQBXDw=="], - "@atproto/common-web": ["@atproto/common-web@0.4.18", "", { "dependencies": { "@atproto/lex-data": "^0.0.13", "@atproto/lex-json": "^0.0.13", "@atproto/syntax": "^0.5.0", "zod": "^3.23.8" } }, "sha512-ilImzP+9N/mtse440kN60pGrEzG7wi4xsV13nGeLrS+Zocybc/ISOpKlbZM13o+twPJ+Q7veGLw9CtGg0GAFoQ=="], + "@atproto/common-web": ["@atproto/common-web@0.4.17", "", { "dependencies": { "@atproto/lex-data": "^0.0.12", "@atproto/lex-json": "^0.0.12", "@atproto/syntax": "^0.4.3", "zod": "^3.23.8" } }, "sha512-sfxD8NGxyoxhxmM9EUshEFbWcJ3+JHEOZF4Quk6HsCh1UxpHBmLabT/vEsAkDWl+C/8U0ine0+c/gHyE/OZiQQ=="], - "@atproto/lex-data": ["@atproto/lex-data@0.0.13", "", { "dependencies": { "multiformats": "^9.9.0", "tslib": "^2.8.1", "uint8arrays": "3.0.0", "unicode-segmenter": "^0.14.0" } }, "sha512-7Z7RwZ1Y/JzBF/Tcn/I4UJ/vIGfh5zn1zjv0KX+flke2JtgFkSE8uh2hOtqgBQMNqE3zdJFM+dcSWln86hR3MQ=="], + "@atproto/lex-data": ["@atproto/lex-data@0.0.12", "", { "dependencies": { "multiformats": "^9.9.0", "tslib": "^2.8.1", "uint8arrays": "3.0.0", "unicode-segmenter": "^0.14.0" } }, "sha512-aekJudcK1p6sbTqUv2bJMJBAGZaOJS0mgDclpK3U6VuBREK/au4B6ffunBFWgrDfg0Vwj2JGyEA7E51WZkJcRw=="], - "@atproto/lex-json": ["@atproto/lex-json@0.0.13", "", { "dependencies": { "@atproto/lex-data": "^0.0.13", "tslib": "^2.8.1" } }, "sha512-hwLhkKaIHulGJpt0EfXAEWdrxqM2L1tV/tvilzhMp3QxPqYgXchFnrfVmLsyFDx6P6qkH1GsX/XC2V36U0UlPQ=="], + "@atproto/lex-json": ["@atproto/lex-json@0.0.12", "", { "dependencies": { "@atproto/lex-data": "^0.0.12", "tslib": "^2.8.1" } }, "sha512-XlEpnWWZdDJ5BIgG25GyH+6iBfyrFL18BI5JSE6rUfMObbFMrQRaCuRLQfryRXNysVz3L3U+Qb9y8KcXbE8AcA=="], "@atproto/lexicon": ["@atproto/lexicon@0.4.14", "", { "dependencies": { "@atproto/common-web": "^0.4.2", "@atproto/syntax": "^0.4.0", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-jiKpmH1QER3Gvc7JVY5brwrfo+etFoe57tKPQX/SmPwjvUsFnJAow5xLIryuBaJgFAhnTZViXKs41t//pahGHQ=="], @@ -9076,9 +9084,9 @@ "@aws-crypto/util": ["@aws-crypto/util@5.2.0", "", { "dependencies": { "@aws-sdk/types": "^3.222.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.6.2" } }, "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ=="], - "@aws-sdk/client-bedrock": ["@aws-sdk/client-bedrock@3.1001.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.16", "@aws-sdk/credential-provider-node": "^3.972.15", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.16", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/token-providers": "3.1001.0", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.1", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-H1lj5ARSZMeLVAJ12/S2mqsdeAHBPAf3RM1Wi8/pD0Uz03XUJwQSqBBEg1mg559rLALamiQSwYkCyVUQyM+Xiw=="], + "@aws-sdk/client-bedrock": ["@aws-sdk/client-bedrock@3.1000.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.15", "@aws-sdk/credential-provider-node": "^3.972.14", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.15", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/token-providers": "3.1000.0", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.0", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.6", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.20", "@smithy/middleware-retry": "^4.4.37", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.12", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.36", "@smithy/util-defaults-mode-node": "^4.2.39", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-wGU8uJXrPW/hZuHdPNVe1kAFIBiKcslBcoDBN0eYBzS13um8p5jJiQJ9WsD1nSpKCmyx7qZXc6xjcbIQPyOrrA=="], - "@aws-sdk/client-bedrock-runtime": ["@aws-sdk/client-bedrock-runtime@3.1001.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.16", "@aws-sdk/credential-provider-node": "^3.972.15", "@aws-sdk/eventstream-handler-node": "^3.972.9", "@aws-sdk/middleware-eventstream": "^3.972.6", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.16", "@aws-sdk/middleware-websocket": "^3.972.11", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/token-providers": "3.1001.0", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.1", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/eventstream-serde-browser": "^4.2.10", "@smithy/eventstream-serde-config-resolver": "^4.3.10", "@smithy/eventstream-serde-node": "^4.2.10", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-stream": "^4.5.16", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-wmrVqR0QvzvDejVnwf4jOJCobzOC89MU/B3zeI6PeFygc2XOScalmlDZ6WhW5nklR1DOvRRq0SuKPG3iRebdPA=="], + "@aws-sdk/client-bedrock-runtime": ["@aws-sdk/client-bedrock-runtime@3.1000.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.15", "@aws-sdk/credential-provider-node": "^3.972.14", "@aws-sdk/eventstream-handler-node": "^3.972.9", "@aws-sdk/middleware-eventstream": "^3.972.6", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.15", "@aws-sdk/middleware-websocket": "^3.972.10", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/token-providers": "3.1000.0", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.0", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.6", "@smithy/eventstream-serde-browser": "^4.2.10", "@smithy/eventstream-serde-config-resolver": "^4.3.10", "@smithy/eventstream-serde-node": "^4.2.10", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.20", "@smithy/middleware-retry": "^4.4.37", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.12", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.36", "@smithy/util-defaults-mode-node": "^4.2.39", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-stream": "^4.5.15", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-GA96wgTFB4Z5vhysm+hErbgiEWZ9JqAl09BxARajL7Oanpf0KvdIjxuLp2rD/XqEIks9yG/5Rh9XIAoCUUTZXw=="], "@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.974.0", "", { "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.0", "@aws-sdk/credential-provider-node": "^3.972.1", "@aws-sdk/middleware-bucket-endpoint": "^3.972.1", "@aws-sdk/middleware-expect-continue": "^3.972.1", "@aws-sdk/middleware-flexible-checksums": "^3.972.1", "@aws-sdk/middleware-host-header": "^3.972.1", "@aws-sdk/middleware-location-constraint": "^3.972.1", "@aws-sdk/middleware-logger": "^3.972.1", "@aws-sdk/middleware-recursion-detection": "^3.972.1", "@aws-sdk/middleware-sdk-s3": "^3.972.1", "@aws-sdk/middleware-ssec": "^3.972.1", "@aws-sdk/middleware-user-agent": "^3.972.1", "@aws-sdk/region-config-resolver": "^3.972.1", "@aws-sdk/signature-v4-multi-region": "3.972.0", "@aws-sdk/types": "^3.973.0", "@aws-sdk/util-endpoints": "3.972.0", "@aws-sdk/util-user-agent-browser": "^3.972.1", "@aws-sdk/util-user-agent-node": "^3.972.1", "@smithy/config-resolver": "^4.4.6", "@smithy/core": "^3.21.0", "@smithy/eventstream-serde-browser": "^4.2.8", "@smithy/eventstream-serde-config-resolver": "^4.3.8", "@smithy/eventstream-serde-node": "^4.2.8", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-blob-browser": "^4.2.9", "@smithy/hash-node": "^4.2.8", "@smithy/hash-stream-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/md5-js": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", "@smithy/middleware-endpoint": "^4.4.10", "@smithy/middleware-retry": "^4.4.26", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", "@smithy/node-http-handler": "^4.4.8", "@smithy/protocol-http": "^5.3.8", "@smithy/smithy-client": "^4.10.11", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.25", "@smithy/util-defaults-mode-node": "^4.2.28", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", "@smithy/util-stream": "^4.5.10", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.8", "tslib": "^2.6.2" } }, "sha512-X+vpXNJ8cU8Iw1FtDgDHxo9z6RxlXfcTtpdGnKws4rk+tCYKSAor/DG6BRMzbh4E5xAA7DiU1Ny3BTrRRSt/Yg=="], @@ -9088,7 +9096,7 @@ "@aws-sdk/client-sns": ["@aws-sdk/client-sns@3.726.1", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/client-sso-oidc": "3.726.0", "@aws-sdk/client-sts": "3.726.1", "@aws-sdk/core": "3.723.0", "@aws-sdk/credential-provider-node": "3.726.0", "@aws-sdk/middleware-host-header": "3.723.0", "@aws-sdk/middleware-logger": "3.723.0", "@aws-sdk/middleware-recursion-detection": "3.723.0", "@aws-sdk/middleware-user-agent": "3.726.0", "@aws-sdk/region-config-resolver": "3.723.0", "@aws-sdk/types": "3.723.0", "@aws-sdk/util-endpoints": "3.726.0", "@aws-sdk/util-user-agent-browser": "3.723.0", "@aws-sdk/util-user-agent-node": "3.726.0", "@smithy/config-resolver": "^4.0.0", "@smithy/core": "^3.0.0", "@smithy/fetch-http-handler": "^5.0.0", "@smithy/hash-node": "^4.0.0", "@smithy/invalid-dependency": "^4.0.0", "@smithy/middleware-content-length": "^4.0.0", "@smithy/middleware-endpoint": "^4.0.0", "@smithy/middleware-retry": "^4.0.0", "@smithy/middleware-serde": "^4.0.0", "@smithy/middleware-stack": "^4.0.0", "@smithy/node-config-provider": "^4.0.0", "@smithy/node-http-handler": "^4.0.0", "@smithy/protocol-http": "^5.0.0", "@smithy/smithy-client": "^4.0.0", "@smithy/types": "^4.0.0", "@smithy/url-parser": "^4.0.0", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.0", "@smithy/util-defaults-mode-node": "^4.0.0", "@smithy/util-endpoints": "^3.0.0", "@smithy/util-middleware": "^4.0.0", "@smithy/util-retry": "^4.0.0", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-ljh1IfdyM2yMB48ac3MuDx1jvWqHgZ/Ni4fW70N6rnSYkgIaHDPKFd6N5cxiYGzeEhi/8jt80mX9jobFfG8L+w=="], - "@aws-sdk/client-sqs": ["@aws-sdk/client-sqs@3.1001.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.16", "@aws-sdk/credential-provider-node": "^3.972.15", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-sdk-sqs": "^3.972.12", "@aws-sdk/middleware-user-agent": "^3.972.16", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.1", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/md5-js": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-q5lUCFJwwIb2Qn8nHrTptJpIjyx8wmWpm0VRhzxvx4idUNWmp5g1QsexD3qMWYvDB++C8EO9cvtNytMnN+ukQA=="], + "@aws-sdk/client-sqs": ["@aws-sdk/client-sqs@3.1000.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.15", "@aws-sdk/credential-provider-node": "^3.972.14", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-sdk-sqs": "^3.972.11", "@aws-sdk/middleware-user-agent": "^3.972.15", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.0", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.6", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/md5-js": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.20", "@smithy/middleware-retry": "^4.4.37", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.12", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.36", "@smithy/util-defaults-mode-node": "^4.2.39", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-fGp197WE/wy05DNAKLokN21RwhH17go631U6GT/t3BwHv7DBd5oI4OLT5TLy0dc4freAd3ib3XET1OEc1TG/3Q=="], "@aws-sdk/client-sso": ["@aws-sdk/client-sso@3.864.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.864.0", "@aws-sdk/middleware-host-header": "3.862.0", "@aws-sdk/middleware-logger": "3.862.0", "@aws-sdk/middleware-recursion-detection": "3.862.0", "@aws-sdk/middleware-user-agent": "3.864.0", "@aws-sdk/region-config-resolver": "3.862.0", "@aws-sdk/types": "3.862.0", "@aws-sdk/util-endpoints": "3.862.0", "@aws-sdk/util-user-agent-browser": "3.862.0", "@aws-sdk/util-user-agent-node": "3.864.0", "@smithy/config-resolver": "^4.1.5", "@smithy/core": "^3.8.0", "@smithy/fetch-http-handler": "^5.1.1", "@smithy/hash-node": "^4.0.5", "@smithy/invalid-dependency": "^4.0.5", "@smithy/middleware-content-length": "^4.0.5", "@smithy/middleware-endpoint": "^4.1.18", "@smithy/middleware-retry": "^4.1.19", "@smithy/middleware-serde": "^4.0.9", "@smithy/middleware-stack": "^4.0.5", "@smithy/node-config-provider": "^4.1.4", "@smithy/node-http-handler": "^4.1.1", "@smithy/protocol-http": "^5.1.3", "@smithy/smithy-client": "^4.4.10", "@smithy/types": "^4.3.2", "@smithy/url-parser": "^4.0.5", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.26", "@smithy/util-defaults-mode-node": "^4.0.26", "@smithy/util-endpoints": "^3.0.7", "@smithy/util-middleware": "^4.0.5", "@smithy/util-retry": "^4.0.7", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-THiOp0OpQROEKZ6IdDCDNNh3qnNn/kFFaTSOiugDpgcE5QdsOxh1/RXq7LmHpTJum3cmnFf8jG59PHcz9Tjnlw=="], @@ -9098,27 +9106,27 @@ "@aws-sdk/client-textract": ["@aws-sdk/client-textract@3.1002.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.17", "@aws-sdk/credential-provider-node": "^3.972.16", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.17", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.2", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-PLSo5T2HVCTOTDUK7I/paGAhF292YI0pMl/Uq2AMQHw/XgppvKvYxc/4vYKNcWuVEu024hUWUR01mlKmUhVfmA=="], - "@aws-sdk/core": ["@aws-sdk/core@3.973.16", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@aws-sdk/xml-builder": "^3.972.9", "@smithy/core": "^3.23.7", "@smithy/node-config-provider": "^4.3.10", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-Nasoyb5K4jfvncTKQyA13q55xHoz9as01NVYP05B0Kzux/X5UhMn3qXsZDyWOSXkfSCAIrMBKmVVWbI0vUapdQ=="], + "@aws-sdk/core": ["@aws-sdk/core@3.973.15", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@aws-sdk/xml-builder": "^3.972.8", "@smithy/core": "^3.23.6", "@smithy/node-config-provider": "^4.3.10", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-AlC0oQ1/mdJ8vCIqu524j5RB7M8i8E24bbkZmya1CuiQxkY7SdIZAyw7NDNMGaNINQFq/8oGRMX0HeOfCVsl/A=="], "@aws-sdk/crc64-nvme": ["@aws-sdk/crc64-nvme@3.972.3", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-UExeK+EFiq5LAcbHm96CQLSia+5pvpUVSAsVApscBzayb7/6dJBJKwV4/onsk4VbWSmqxDMcfuTD+pC4RxgZHg=="], - "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.972.14", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-PvnBY9rwBuLh9MEsAng28DG+WKl+txerKgf4BU9IPAqYI7FBIo1x6q/utLf4KLyQYgSy1TLQnbQuXx5xfBGASg=="], + "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.972.13", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-6ljXKIQ22WFKyIs1jbORIkGanySBHaPPTOI4OxACP5WXgbcR0nDYfqNJfXEGwCK7IzHdNbCSFsNKKs0qCexR8Q=="], - "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.972.16", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/types": "^3.973.4", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/node-http-handler": "^4.4.13", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.16", "tslib": "^2.6.2" } }, "sha512-m/QAcvw5OahqGPjeAnKtgfWgjLxeWOYj7JSmxKK6PLyKp2S/t2TAHI6EELEzXnIz28RMgbQLukJkVAqPASVAGQ=="], + "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.972.15", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/types": "^3.973.4", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/node-http-handler": "^4.4.12", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.15", "tslib": "^2.6.2" } }, "sha512-dJuSTreu/T8f24SHDNTjd7eQ4rabr0TzPh2UTCwYexQtzG3nTDKm1e5eIdhiroTMDkPEJeY+WPkA6F9wod/20A=="], - "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.972.14", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/credential-provider-env": "^3.972.14", "@aws-sdk/credential-provider-http": "^3.972.16", "@aws-sdk/credential-provider-login": "^3.972.14", "@aws-sdk/credential-provider-process": "^3.972.14", "@aws-sdk/credential-provider-sso": "^3.972.14", "@aws-sdk/credential-provider-web-identity": "^3.972.14", "@aws-sdk/nested-clients": "^3.996.4", "@aws-sdk/types": "^3.973.4", "@smithy/credential-provider-imds": "^4.2.10", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-EGA7ufqNpZKZcD0RwM6gRDEQgwAf19wQ99R1ptdWYDJAnpcMcWiFyT0RIrgiZFLD28CwJmYjnra75hChnEveWA=="], + "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.972.13", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/credential-provider-env": "^3.972.13", "@aws-sdk/credential-provider-http": "^3.972.15", "@aws-sdk/credential-provider-login": "^3.972.13", "@aws-sdk/credential-provider-process": "^3.972.13", "@aws-sdk/credential-provider-sso": "^3.972.13", "@aws-sdk/credential-provider-web-identity": "^3.972.13", "@aws-sdk/nested-clients": "^3.996.3", "@aws-sdk/types": "^3.973.4", "@smithy/credential-provider-imds": "^4.2.10", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-JKSoGb7XeabZLBJptpqoZIFbROUIS65NuQnEHGOpuT9GuuZwag2qciKANiDLFiYk4u8nSrJC9JIOnWKVvPVjeA=="], - "@aws-sdk/credential-provider-login": ["@aws-sdk/credential-provider-login@3.972.14", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/nested-clients": "^3.996.4", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-P2kujQHAoV7irCTv6EGyReKFofkHCjIK+F0ZYf5UxeLeecrCwtrDkHoO2Vjsv/eRUumaKblD8czuk3CLlzwGDw=="], + "@aws-sdk/credential-provider-login": ["@aws-sdk/credential-provider-login@3.972.13", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/nested-clients": "^3.996.3", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-RtYcrxdnJHKY8MFQGLltCURcjuMjnaQpAxPE6+/QEdDHHItMKZgabRe/KScX737F9vJMQsmJy9EmMOkCnoC1JQ=="], - "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.972.15", "", { "dependencies": { "@aws-sdk/credential-provider-env": "^3.972.14", "@aws-sdk/credential-provider-http": "^3.972.16", "@aws-sdk/credential-provider-ini": "^3.972.14", "@aws-sdk/credential-provider-process": "^3.972.14", "@aws-sdk/credential-provider-sso": "^3.972.14", "@aws-sdk/credential-provider-web-identity": "^3.972.14", "@aws-sdk/types": "^3.973.4", "@smithy/credential-provider-imds": "^4.2.10", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-59NBJgTcQ2FC94T+SWkN5UQgViFtrLnkswSKhG5xbjPAotOXnkEF2Bf0bfUV1F3VaXzqAPZJoZ3bpg4rr8XD5Q=="], + "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.972.14", "", { "dependencies": { "@aws-sdk/credential-provider-env": "^3.972.13", "@aws-sdk/credential-provider-http": "^3.972.15", "@aws-sdk/credential-provider-ini": "^3.972.13", "@aws-sdk/credential-provider-process": "^3.972.13", "@aws-sdk/credential-provider-sso": "^3.972.13", "@aws-sdk/credential-provider-web-identity": "^3.972.13", "@aws-sdk/types": "^3.973.4", "@smithy/credential-provider-imds": "^4.2.10", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-WqoC2aliIjQM/L3oFf6j+op/enT2i9Cc4UTxxMEKrJNECkq4/PlKE5BOjSYFcq6G9mz65EFbXJh7zOU4CvjSKQ=="], - "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.972.14", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-KAF5LBkJInUPaR9dJDw8LqmbPDRTLyXyRoWVGcJQ+DcN9rxVKBRzAK+O4dTIvQtQ7xaIDZ2kY7zUmDlz6CCXdw=="], + "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.972.13", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-rsRG0LQA4VR+jnDyuqtXi2CePYSmfm5GNL9KxiW8DSe25YwJSr06W8TdUfONAC+rjsTI+aIH2rBGG5FjMeANrw=="], - "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.972.14", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/nested-clients": "^3.996.4", "@aws-sdk/token-providers": "3.1001.0", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-LQzIYrNABnZzkyuIguFa3VVOox9UxPpRW6PL+QYtRHaGl1Ux/+Zi54tAVK31VdeBKPKU3cxqeu8dbOgNqy+naw=="], + "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.972.13", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/nested-clients": "^3.996.3", "@aws-sdk/token-providers": "3.999.0", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-fr0UU1wx8kNHDhTQBXioc/YviSW8iXuAxHvnH7eQUtn8F8o/FU3uu6EUMvAQgyvn7Ne5QFnC0Cj0BFlwCk+RFw=="], - "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.972.14", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/nested-clients": "^3.996.4", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-rOwB3vXHHHnGvAOjTgQETxVAsWjgF61XlbGd/ulvYo7EpdXs8cbIHE3PGih9tTj/65ZOegSqZGFqLaKntaI9Kw=="], + "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.972.13", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/nested-clients": "^3.996.3", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-a6iFMh1pgUH0TdcouBppLJUfPM7Yd3R9S1xFodPtCRoLqCz2RQFA3qjA8x4112PVYXEd4/pHX2eihapq39w0rA=="], - "@aws-sdk/ec2-metadata-service": ["@aws-sdk/ec2-metadata-service@3.1001.0", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.16", "tslib": "^2.6.2" } }, "sha512-j1c8dJYvVfkO9fdGXDp4c4Z/GeuxhN8Hr0q7wOJZZhln5ltI4JDGzEdGI4DUvNXT2zolkb6f6OgNo0j+7c34Jg=="], + "@aws-sdk/ec2-metadata-service": ["@aws-sdk/ec2-metadata-service@3.1000.0", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.12", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.15", "tslib": "^2.6.2" } }, "sha512-i8aA8M29/OQsCuXd9jUZbB49hFFVs1DaK0xYJzQMcCZUDPq2A0TPBdmAVihI1frabmv05Z0h0v5+ZrdnnJWGIg=="], "@aws-sdk/eventstream-handler-node": ["@aws-sdk/eventstream-handler-node@3.972.9", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/eventstream-codec": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-mKPiiVssgFDWkAXdEDh8+wpr2pFSX/fBn2onXXnrfIAYbdZhYb4WilKbZ3SJMUnQi+Y48jZMam5J0RrgARluaA=="], @@ -9128,7 +9136,7 @@ "@aws-sdk/middleware-expect-continue": ["@aws-sdk/middleware-expect-continue@3.972.6", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-QMdffpU+GkSGC+bz6WdqlclqIeCsOfgX8JFZ5xvwDtX+UTj4mIXm3uXu7Ko6dBseRcJz1FA6T9OmlAAY6JgJUg=="], - "@aws-sdk/middleware-flexible-checksums": ["@aws-sdk/middleware-flexible-checksums@3.973.2", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/core": "^3.973.16", "@aws-sdk/crc64-nvme": "^3.972.3", "@aws-sdk/types": "^3.973.4", "@smithy/is-array-buffer": "^4.2.1", "@smithy/node-config-provider": "^4.3.10", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-middleware": "^4.2.10", "@smithy/util-stream": "^4.5.16", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-KM6QujWdasNjRLG+f7YEqEY5D36vR6Govm7nPIwxjILpb5rJ0pPJZpYY1nrzgtlxwJIYAznfBK5YXoLOHKHyfQ=="], + "@aws-sdk/middleware-flexible-checksums": ["@aws-sdk/middleware-flexible-checksums@3.973.1", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/core": "^3.973.15", "@aws-sdk/crc64-nvme": "^3.972.3", "@aws-sdk/types": "^3.973.4", "@smithy/is-array-buffer": "^4.2.1", "@smithy/node-config-provider": "^4.3.10", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-middleware": "^4.2.10", "@smithy/util-stream": "^4.5.15", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-QLXsxsI6VW8LuGK+/yx699wzqP/NMCGk/hSGP+qtB+Lcff+23UlbahyouLlk+nfT7Iu021SkXBhnAuVd6IZcPw=="], "@aws-sdk/middleware-host-header": ["@aws-sdk/middleware-host-header@3.972.6", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-5XHwjPH1lHB+1q4bfC7T8Z5zZrZXfaLcjSMwTd1HPSPrCmPFMbg3UQ5vgNWcVj0xoX4HWqTGkSf2byrjlnRg5w=="], @@ -9138,17 +9146,17 @@ "@aws-sdk/middleware-recursion-detection": ["@aws-sdk/middleware-recursion-detection@3.972.6", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@aws/lambda-invoke-store": "^0.2.2", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-dY4v3of5EEMvik6+UDwQ96KfUFDk8m1oZDdkSc5lwi4o7rFrjnv0A+yTV+gu230iybQZnKgDLg/rt2P3H+Vscw=="], - "@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.972.16", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-arn-parser": "^3.972.2", "@smithy/core": "^3.23.7", "@smithy/node-config-provider": "^4.3.10", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/util-config-provider": "^4.2.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-stream": "^4.5.16", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-U4K1rqyJYvT/zgTI3+rN+MToa51dFnnq1VSsVJuJWPNEKcEnuZVqf7yTpkJJMkYixVW5TTi1dgupd+nmJ0JyWw=="], + "@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.972.15", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-arn-parser": "^3.972.2", "@smithy/core": "^3.23.6", "@smithy/node-config-provider": "^4.3.10", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/util-config-provider": "^4.2.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-stream": "^4.5.15", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-WDLgssevOU5BFx1s8jA7jj6cE5HuImz28sy9jKOaVtz0AW1lYqSzotzdyiybFaBcQTs5zxXOb2pUfyMxgEKY3Q=="], - "@aws-sdk/middleware-sdk-sqs": ["@aws-sdk/middleware-sdk-sqs@3.972.12", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/util-hex-encoding": "^4.2.1", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-YYh6560Aa6O/F4j1gnSuEzX7zHYQm2OnSlXBu+wQzyfJ5Dn5Ns2boVlS40UcA+OLrxHZgOLh/gzepbFY/ixteA=="], + "@aws-sdk/middleware-sdk-sqs": ["@aws-sdk/middleware-sdk-sqs@3.972.11", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/util-hex-encoding": "^4.2.1", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-Y4dryR0y7wN3hBayLOVSRuP3FeTs8KbNEL4orW/hKpf4jsrneDpI2RifUQVhiyb3QkC83bpeKaOSa0waHiPvcg=="], "@aws-sdk/middleware-ssec": ["@aws-sdk/middleware-ssec@3.972.6", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-acvMUX9jF4I2Ew+Z/EA6gfaFaz9ehci5wxBmXCZeulLuv8m+iGf6pY9uKz8TPjg39bdAz3hxoE0eLP8Qz+IYlA=="], - "@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.972.16", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@smithy/core": "^3.23.7", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-AmVxtxn8ZkNJbuPu3KKfW9IkJgTgcEtgSwbo0NVcAb31iGvLgHXj2nbbyrUDfh2fx8otXmqL+qw1lRaTi+V3vA=="], + "@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.972.15", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@smithy/core": "^3.23.6", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-ABlFVcIMmuRAwBT+8q5abAxOr7WmaINirDJBnqGY5b5jSDo00UMlg/G4a0xoAgwm6oAECeJcwkvDlxDwKf58fQ=="], - "@aws-sdk/middleware-websocket": ["@aws-sdk/middleware-websocket@3.972.11", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-format-url": "^3.972.6", "@smithy/eventstream-codec": "^4.2.10", "@smithy/eventstream-serde-browser": "^4.2.10", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-hex-encoding": "^4.2.1", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-cWf+8iUUnitgFuUu/ryK2uVfx7f5ezdhGwsjLLEEC1Nk716Ld2Hw4LA8iipyVcQI3EarvK6ExY2dSBET/0PYng=="], + "@aws-sdk/middleware-websocket": ["@aws-sdk/middleware-websocket@3.972.10", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-format-url": "^3.972.6", "@smithy/eventstream-codec": "^4.2.10", "@smithy/eventstream-serde-browser": "^4.2.10", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-hex-encoding": "^4.2.1", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-uNqRpbL6djE+XXO4cQ+P8ra37cxNNBP+2IfkVOXu1xFdGMfW+uOTxBQuDPpP43i40PBRBXK5un79l/oYpbzYkA=="], - "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.996.4", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.16", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.16", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.1", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-NowB1HfOnWC4kwZOnTg8E8rSL0U+RSjSa++UtEV4ipoH6JOjMLnHyGilqwl+Pe1f0Al6v9yMkSJ/8Ot0f578CQ=="], + "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.996.3", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.15", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.15", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.0", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.6", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.20", "@smithy/middleware-retry": "^4.4.37", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.12", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.36", "@smithy/util-defaults-mode-node": "^4.2.39", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-AU5TY1V29xqwg/MxmA2odwysTez+ccFAhmfRJk+QZT5HNv90UTA9qKd1J9THlsQkvmH7HWTEV1lDNxkQO5PzNw=="], "@aws-sdk/region-config-resolver": ["@aws-sdk/region-config-resolver@3.972.6", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/config-resolver": "^4.4.9", "@smithy/node-config-provider": "^4.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-Aa5PusHLXAqLTX1UKDvI3pHQJtIsF7Q+3turCHqfz/1F61/zDMWfbTC8evjhrrYVAtz9Vsv3SJ/waSUeu7B6gw=="], @@ -9156,7 +9164,7 @@ "@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.972.0", "", { "dependencies": { "@aws-sdk/middleware-sdk-s3": "3.972.0", "@aws-sdk/types": "3.972.0", "@smithy/protocol-http": "^5.3.8", "@smithy/signature-v4": "^5.3.8", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" } }, "sha512-2udiRijmjpN81Pvajje4TsjbXDZNP6K9bYUanBYH8hXa/tZG5qfGCySD+TyX0sgDxCQmEDMg3LaQdfjNHBDEgQ=="], - "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.1001.0", "", { "dependencies": { "@aws-sdk/core": "^3.973.16", "@aws-sdk/nested-clients": "^3.996.4", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-09XAq/uIYgeZhohuGRrR/R+ek3+ljFNdzWCXdqb9rlIERDjSfNiLjTtpHgSK1xTPmC5G4yWoEAyMfTXiggS6wA=="], + "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.1000.0", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/nested-clients": "^3.996.3", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-eOI+8WPtWpLdlYBGs8OCK3k5uIMUHVsNG3AFO4kaRaZcKReJ/2OO6+2O2Dd/3vTzM56kRjSKe7mBOCwa4PdYqg=="], "@aws-sdk/types": ["@aws-sdk/types@3.973.4", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-RW60aH26Bsc016Y9B98hC0Plx6fK5P2v/iQYwMzrSjiDh1qRMUCP6KrXHYEHe3uFvKiOC93Z9zk4BJsUi6Tj1Q=="], @@ -9170,9 +9178,9 @@ "@aws-sdk/util-user-agent-browser": ["@aws-sdk/util-user-agent-browser@3.972.6", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/types": "^4.13.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "sha512-Fwr/llD6GOrFgQnKaI2glhohdGuBDfHfora6iG9qsBBBR8xv1SdCSwbtf5CWlUdCw5X7g76G/9Hf0Inh0EmoxA=="], - "@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.973.1", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "^3.972.16", "@aws-sdk/types": "^3.973.4", "@smithy/node-config-provider": "^4.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-kmgbDqT7aCBEVrqESM2JUjbf0zhDUQ7wnt3q1RuVS+3mglrcfVb2bwkbmf38npOyyPGtQPV5dWN3m+sSFAVAgQ=="], + "@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.973.0", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "^3.972.15", "@aws-sdk/types": "^3.973.4", "@smithy/node-config-provider": "^4.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-A9J2G4Nf236e9GpaC1JnA8wRn6u6GjnOXiTwBLA6NUJhlBTIGfrTy+K1IazmF8y+4OFdW3O5TZlhyspJMqiqjA=="], - "@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.972.9", "", { "dependencies": { "@smithy/types": "^4.13.0", "fast-xml-parser": "5.4.1", "tslib": "^2.6.2" } }, "sha512-ItnlMgSqkPrUfJs7EsvU/01zw5UeIb2tNPhD09LBLHbg+g+HDiKibSLwpkuz/ZIlz4F2IMn+5XgE4AK/pfPuog=="], + "@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.972.8", "", { "dependencies": { "@smithy/types": "^4.13.0", "fast-xml-parser": "5.3.6", "tslib": "^2.6.2" } }, "sha512-Ql8elcUdYCha83Ol7NznBsgN5GVZnv3vUd86fEc6waU6oUdY0T1O9NODkEEOS/Uaogr87avDrUC6DSeM4oXjZg=="], "@aws/lambda-invoke-store": ["@aws/lambda-invoke-store@0.2.3", "", {}, "sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw=="], @@ -9260,7 +9268,7 @@ "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], - "@base44/sdk": ["@base44/sdk@0.8.20", "", { "dependencies": { "axios": "^1.6.2", "socket.io-client": "^4.7.5", "uuid": "^13.0.0" } }, "sha512-UKL1nDmzxEacbT04WO1hNZv09L5nmhXAZqUxv40Z7C34+glH8dcYLBpy8PowlXicsl5kgiH7GgEtttdEAF+7vQ=="], + "@base44/sdk": ["@base44/sdk@0.8.19", "", { "dependencies": { "axios": "^1.6.2", "socket.io-client": "^4.7.5", "uuid": "^13.0.0" } }, "sha512-I+MNA1C6qfMVsX71dDlt+RCFxzmTatB7OuXIKJPYHkBW/AqL27lL+drjbP+orijwQhHCRunjoXjEaeK6DJoCmA=="], "@bull-board/api": ["@bull-board/api@6.10.1", "", { "dependencies": { "redis-info": "^3.1.0" }, "peerDependencies": { "@bull-board/ui": "6.10.1" } }, "sha512-VPkZa2XZI2Wk2MqK1XyiiS+tOhNan54mnm2fpv2KA0fdZ92mQqNjhKkOpsykhQv9XUEc8cCRlZqGxf67YCMJbQ=="], @@ -9530,13 +9538,13 @@ "@fastify/view": ["@fastify/view@11.1.1", "", { "dependencies": { "fastify-plugin": "^5.0.0", "toad-cache": "^3.7.0" } }, "sha512-GiHqT3R2eKJgWmy0s45eELTC447a4+lTM2o+8fSWeKwBe9VToeePuHJcKtOEXPrKGSddGO0RsNayULiS3aeHeQ=="], - "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], + "@floating-ui/core": ["@floating-ui/core@1.7.4", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg=="], - "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], + "@floating-ui/dom": ["@floating-ui/dom@1.7.5", "", { "dependencies": { "@floating-ui/core": "^1.7.4", "@floating-ui/utils": "^0.2.10" } }, "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg=="], - "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.8", "", { "dependencies": { "@floating-ui/dom": "^1.7.6" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A=="], + "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.7", "", { "dependencies": { "@floating-ui/dom": "^1.7.5" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg=="], - "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], + "@floating-ui/utils": ["@floating-ui/utils@0.2.10", "", {}, "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ=="], "@formatjs/ecma402-abstract": ["@formatjs/ecma402-abstract@2.0.0", "", { "dependencies": { "@formatjs/intl-localematcher": "0.5.4", "tslib": "^2.4.0" } }, "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g=="], @@ -9574,7 +9582,7 @@ "@hapi/topo": ["@hapi/topo@5.1.0", "", { "dependencies": { "@hapi/hoek": "^9.0.0" } }, "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg=="], - "@hono/node-server": ["@hono/node-server@1.19.10", "", { "peerDependencies": { "hono": "^4" } }, "sha512-hZ7nOssGqRgyV3FVVQdfi+U4q02uB23bpnYpdvNXkYTRRyWx84b7yf1ans+dnJ/7h41sGL3CeQTfO+ZGxuO+Iw=="], + "@hono/node-server": ["@hono/node-server@1.19.9", "", { "peerDependencies": { "hono": "^4" } }, "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw=="], "@hookform/resolvers": ["@hookform/resolvers@3.9.0", "", { "peerDependencies": { "react-hook-form": "^7.0.0" } }, "sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg=="], @@ -9638,12 +9646,6 @@ "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], - "@jest/diff-sequences": ["@jest/diff-sequences@30.0.1", "", {}, "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw=="], - - "@jest/get-type": ["@jest/get-type@30.1.0", "", {}, "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA=="], - - "@jest/schemas": ["@jest/schemas@30.0.5", "", { "dependencies": { "@sinclair/typebox": "^0.34.0" } }, "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA=="], - "@jimp/bmp": ["@jimp/bmp@0.22.12", "", { "dependencies": { "@jimp/utils": "^0.22.12", "bmp-js": "^0.1.0" }, "peerDependencies": { "@jimp/custom": ">=0.3.5" } }, "sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g=="], "@jimp/core": ["@jimp/core@0.22.12", "", { "dependencies": { "@jimp/utils": "^0.22.12", "any-base": "^1.1.0", "buffer": "^5.2.0", "exif-parser": "^0.1.12", "file-type": "^16.5.4", "isomorphic-fetch": "^3.0.0", "pixelmatch": "^4.0.2", "tinycolor2": "^1.6.0" } }, "sha512-l0RR0dOPyzMKfjUW1uebzueFEDtCOj9fN6pyTYWWOM/VS4BciXQ1VVrJs8pO3kycGYZxncRKhCoygbNr8eEZQA=="], @@ -9780,7 +9782,7 @@ "@mixmark-io/domino": ["@mixmark-io/domino@2.2.0", "", {}, "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw=="], - "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.26.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.27.1", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-sr6GbP+4edBwFndLbM60gf07z0FQ79gaExpnsjMGePXqFcSSb7t6iscpjk9DhFhwd+mTEQrzNafGP8/iGGFYaA=="], "@mongodb-js/saslprep": ["@mongodb-js/saslprep@1.4.6", "", { "dependencies": { "sparse-bitfield": "^3.0.3" } }, "sha512-y+x3H1xBZd38n10NZF/rEBlvDOOMQ6LKUTHqr8R9VkJ+mmQOYtJFxIlkkK8fZrtOiL6VixbOBWMbZGBdal3Z1g=="], @@ -9796,9 +9798,7 @@ "@msgpackr-extract/msgpackr-extract-win32-x64": ["@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3", "", { "os": "win32", "cpu": "x64" }, "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ=="], - "@mswjs/interceptors": ["@mswjs/interceptors@0.41.3", "", { "dependencies": { "@open-draft/deferred-promise": "^2.2.0", "@open-draft/logger": "^0.3.0", "@open-draft/until": "^2.0.0", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "strict-event-emitter": "^0.5.1" } }, "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA=="], - - "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.4", "", { "dependencies": { "@emnapi/core": "^1.1.0", "@emnapi/runtime": "^1.1.0", "@tybys/wasm-util": "^0.9.0" } }, "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], "@noble/curves": ["@noble/curves@1.2.0", "", { "dependencies": { "@noble/hashes": "1.3.2" } }, "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw=="], @@ -9816,31 +9816,7 @@ "@npmcli/move-file": ["@npmcli/move-file@1.1.2", "", { "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg=="], - "@nrwl/nx-cloud": ["@nrwl/nx-cloud@19.1.0", "", { "dependencies": { "nx-cloud": "19.1.0" } }, "sha512-krngXVPfX0Zf6+zJDtcI59/Pt3JfcMPMZ9C/+/x6rvz4WGgyv1s0MI4crEUM0Lx5ZpS4QI0WNDCFVQSfGEBXUg=="], - - "@nx/devkit": ["@nx/devkit@22.0.1", "", { "dependencies": { "@zkochan/js-yaml": "0.0.7", "ejs": "^3.1.7", "enquirer": "~2.3.6", "minimatch": "9.0.3", "semver": "^7.5.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" }, "peerDependencies": { "nx": ">= 21 <= 23 || ^22.0.0-0" } }, "sha512-pam3RuHI+1vwg4pKyq4zq4oFuXvqllJvuArsCWYCv6m10NYPu0cXRXaAbZfffcmW6Kvh1cRSb80OCs8ZzN4cXA=="], - - "@nx/nx-darwin-arm64": ["@nx/nx-darwin-arm64@22.5.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-cKXBq5bJanXp8uv6+wPvx/G4q4oFpOxMSPGaeFOVhbul2QHGGq+XMcSo+D8aYJCsk1YnbyAnnQ8r8RH/kTK5Mw=="], - - "@nx/nx-darwin-x64": ["@nx/nx-darwin-x64@22.5.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-mToS41o8I+8CfxYVRMTISkgT7I1cnazgwMf7U9DoLqKOwOZzj9WD3NmsWc1h69QNJPltbeRPS8y/wnhu7RHzRA=="], - - "@nx/nx-freebsd-x64": ["@nx/nx-freebsd-x64@22.5.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-CAWysdFSZVbTfdjNXojd9TgXbZiK9i0k3njROeV+jORsDWw4Eth3PDmK94Wk916b3n2hS0UjyI6RZaMy2GEqzA=="], - - "@nx/nx-linux-arm-gnueabihf": ["@nx/nx-linux-arm-gnueabihf@22.5.3", "", { "os": "linux", "cpu": "arm" }, "sha512-PRjPrijQQbdrvYwNuA3xQ3VXEQ4zfhnPjy+S2ZlQZqhFI4mlP22xfhOH1bQ7pIfzCNC2f/J9UMNYOrq/bEFjBg=="], - - "@nx/nx-linux-arm64-gnu": ["@nx/nx-linux-arm64-gnu@22.5.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-dmDBio/5z4Zch2VlRMdgBPm53d8xwq1l7xLj1dFMKjfE7ByfPukjPM7ZEYBiPckfiQfJBRh6HKDN7uEkA/y8CQ=="], - - "@nx/nx-linux-arm64-musl": ["@nx/nx-linux-arm64-musl@22.5.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-E81ET/MnnKfuLhKiovF5ueJirHOMjhC1eK0MDM2Do9wdPyusZzfGSVFQ9DOHtg7L37dAE95NNd1lCVO8gJ96vg=="], - - "@nx/nx-linux-x64-gnu": ["@nx/nx-linux-x64-gnu@22.5.3", "", { "os": "linux", "cpu": "x64" }, "sha512-AgXCsPCzC0sAu2VRclMjs7LrvPQfqS3sFiehlXWTbNHQitPZLuAmQGb2l4T8lbMOs0Xn3EIrg6BF6/ntTTp6Xg=="], - - "@nx/nx-linux-x64-musl": ["@nx/nx-linux-x64-musl@22.5.3", "", { "os": "linux", "cpu": "x64" }, "sha512-sKs4bFQRu8Btxf5rMYKPsRVNxkQ2ey8sqoCyhJj8fwJF05DayK2ErJAR/rhtBK0c1NV7kQiKJA8nWBV3jnCdsg=="], - - "@nx/nx-win32-arm64-msvc": ["@nx/nx-win32-arm64-msvc@22.5.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-KOCQLakSO5vl4D6et9qPytOAmkgq2IIuhI8A/g0xbD1LqrIlRPa+bdkZqOGpODYAk3NyKAk7hWHsqfXKHwwX6w=="], - - "@nx/nx-win32-x64-msvc": ["@nx/nx-win32-x64-msvc@22.5.3", "", { "os": "win32", "cpu": "x64" }, "sha512-a6ZB2La82RIHcz4nrt3H6RZaOa+xkC2IPzhU9hMo2gbkLdIxn8wyof8uGA0frncmIVHuLc3nFAhpBOgf4j6tMA=="], - - "@oclif/core": ["@oclif/core@4.8.3", "", { "dependencies": { "ansi-escapes": "^4.3.2", "ansis": "^3.17.0", "clean-stack": "^3.0.1", "cli-spinners": "^2.9.2", "debug": "^4.4.3", "ejs": "^3.1.10", "get-package-type": "^0.1.0", "indent-string": "^4.0.0", "is-wsl": "^2.2.0", "lilconfig": "^3.1.3", "minimatch": "^10.2.4", "semver": "^7.7.3", "string-width": "^4.2.3", "supports-color": "^8", "tinyglobby": "^0.2.14", "widest-line": "^3.1.0", "wordwrap": "^1.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-f7Rc1JBZO0wNMyDmNzP5IFOv5eM97S9pO4JUFdu2OLyk73YeBI9wog1Yyf666NOQvyptkbG1xh8inzMDQLNTyQ=="], + "@oclif/core": ["@oclif/core@4.8.2", "", { "dependencies": { "ansi-escapes": "^4.3.2", "ansis": "^3.17.0", "clean-stack": "^3.0.1", "cli-spinners": "^2.9.2", "debug": "^4.4.3", "ejs": "^3.1.10", "get-package-type": "^0.1.0", "indent-string": "^4.0.0", "is-wsl": "^2.2.0", "lilconfig": "^3.1.3", "minimatch": "^10.2.4", "semver": "^7.7.3", "string-width": "^4.2.3", "supports-color": "^8", "tinyglobby": "^0.2.14", "widest-line": "^3.1.0", "wordwrap": "^1.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-P+XAOtuWM/Fewau64c31bYUiLFJTzhth229xVbBrG1siLc7+2uezUYhP5eWn/++nZPZ/wChSqYgQNN4HPw/ZHQ=="], "@oclif/plugin-help": ["@oclif/plugin-help@6.2.37", "", { "dependencies": { "@oclif/core": "^4" } }, "sha512-5N/X/FzlJaYfpaHwDC0YHzOzKDWa41s9t+4FpCDu4f9OMReds4JeNBaaWk9rlIzdKjh2M6AC5Q18ORfECRkHGA=="], @@ -9874,12 +9850,6 @@ "@onfleet/node-onfleet": ["@onfleet/node-onfleet@1.3.3", "", { "dependencies": { "bottleneck": "^2.19.5", "node-fetch": "^2.6.7" } }, "sha512-0pcg+J9pdNEMAt/GYq96l4rmBsrsDwnTCWrjZhRCKmTlZq0QHBN/8u8smR7RPubg+DsMc5MOSPXXoLsfn03YIg=="], - "@open-draft/deferred-promise": ["@open-draft/deferred-promise@2.2.0", "", {}, "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA=="], - - "@open-draft/logger": ["@open-draft/logger@0.3.0", "", { "dependencies": { "is-node-process": "^1.2.0", "outvariant": "^1.4.0" } }, "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ=="], - - "@open-draft/until": ["@open-draft/until@2.1.0", "", {}, "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg=="], - "@openrouter/ai-sdk-provider": ["@openrouter/ai-sdk-provider@2.1.1", "", { "peerDependencies": { "ai": "^6.0.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-UypPbVnSExxmG/4Zg0usRiit3auvQVrjUXSyEhm0sZ9GQnW/d8p/bKgCk2neh1W5YyRSo7PNQvCrAEBHZnqQkQ=="], "@openrouter/sdk": ["@openrouter/sdk@0.2.9", "", { "dependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-O3tu6PwoKzwYXCCT+azFneb0F1T6YcZUqlNVEFABWLOcBzdvsCfgW+GM3QKeBL9V0E1ZBjVy9yssavNjhphO6Q=="], @@ -9892,7 +9862,7 @@ "@opentelemetry/context-async-hooks": ["@opentelemetry/context-async-hooks@2.1.0", "", { "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg=="], - "@opentelemetry/core": ["@opentelemetry/core@2.6.0", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg=="], + "@opentelemetry/core": ["@opentelemetry/core@2.5.1", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, "peerDependencies": { "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "sha512-Dwlc+3HAZqpgTYq0MUyZABjFkcrKTePwuiFVLjahGD8cx3enqihmpAmdgNFO1R4m/sIe5afjJrA25Prqy4NXlA=="], "@opentelemetry/exporter-logs-otlp-grpc": ["@opentelemetry/exporter-logs-otlp-grpc@0.206.0", "", { "dependencies": { "@grpc/grpc-js": "^1.7.1", "@opentelemetry/core": "2.1.0", "@opentelemetry/otlp-exporter-base": "0.206.0", "@opentelemetry/otlp-grpc-exporter-base": "0.206.0", "@opentelemetry/otlp-transformer": "0.206.0", "@opentelemetry/sdk-logs": "0.206.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-kJKxKBaGwqWop95d6tcluz260IWwIgOG0BH8oVm6429tg8LxY2PJb7Om8d5s+5vOFM8DkUYCnIpn9d/13/RcKQ=="], @@ -10016,7 +9986,7 @@ "@opentelemetry/resource-detector-alibaba-cloud": ["@opentelemetry/resource-detector-alibaba-cloud@0.31.11", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/resources": "^2.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, "sha512-R/asn6dAOWMfkLeEwqHCUz0cNbb9oiHVyd11iwlypeT/p9bR1lCX5juu5g/trOwxo62dbuFcDbBdKCJd3O2Edg=="], - "@opentelemetry/resource-detector-aws": ["@opentelemetry/resource-detector-aws@2.13.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/resources": "^2.0.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, "sha512-ZPCn7gZhGqUYUoD+RCHIlayoHBMaJaEjfqlgz2EPKoXJ4y7Ru7CUm+Tm3yJVMKF92cN9xUQR0j5KALyF0fg9aw=="], + "@opentelemetry/resource-detector-aws": ["@opentelemetry/resource-detector-aws@2.12.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/resources": "^2.0.0", "@opentelemetry/semantic-conventions": "^1.27.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, "sha512-VelueKblsnQEiBVqEYcvM9VEb+B8zN6nftltdO9HAD7qi/OlicP4z/UGJ9EeW2m++WabdMoj0G3QVL8YV0P9tw=="], "@opentelemetry/resource-detector-azure": ["@opentelemetry/resource-detector-azure@0.14.0", "", { "dependencies": { "@opentelemetry/core": "^2.0.0", "@opentelemetry/resources": "^2.0.0", "@opentelemetry/semantic-conventions": "^1.37.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0" } }, "sha512-IxfP+Ki3dGKL7pM+vFsW7TTgglZ0+ISCTAnIVmPf73bvCHcReVS6tbT1P4MhXIaJ+hWImUD8ZIJ7rbkcBlD8/w=="], @@ -10342,7 +10312,7 @@ "@smithy/config-resolver": ["@smithy/config-resolver@4.4.9", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.10", "@smithy/types": "^4.13.0", "@smithy/util-config-provider": "^4.2.1", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "tslib": "^2.6.2" } }, "sha512-ejQvXqlcU30h7liR9fXtj7PIAau1t/sFbJpgWPfiYDs7zd16jpH0IsSXKcba2jF6ChTXvIjACs27kNMc5xxE2Q=="], - "@smithy/core": ["@smithy/core@3.23.7", "", { "dependencies": { "@smithy/middleware-serde": "^4.2.11", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-stream": "^4.5.16", "@smithy/util-utf8": "^4.2.1", "@smithy/uuid": "^1.1.1", "tslib": "^2.6.2" } }, "sha512-/+ldRdtiO5Cb26afAZOG1FZM0x7D4AYdjpyOv2OScJw+4C7X+OLdRnNKF5UyUE0VpPgSKr3rnF/kvprRA4h2kg=="], + "@smithy/core": ["@smithy/core@3.23.6", "", { "dependencies": { "@smithy/middleware-serde": "^4.2.11", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-stream": "^4.5.15", "@smithy/util-utf8": "^4.2.1", "@smithy/uuid": "^1.1.1", "tslib": "^2.6.2" } }, "sha512-4xE+0L2NrsFKpEVFlFELkIHQddBvMbQ41LRIP74dGCXnY1zQ9DgksrBcRBDJT+iOzGy4VEJIeU3hkUK5mn06kg=="], "@smithy/credential-provider-imds": ["@smithy/credential-provider-imds@4.2.10", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.10", "@smithy/property-provider": "^4.2.10", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "tslib": "^2.6.2" } }, "sha512-3bsMLJJLTZGZqVGGeBVFfLzuRulVsGTj12BzRKODTHqUABpIr0jMN1vN3+u6r2OfyhAQ2pXaMZWX/swBK5I6PQ=="], @@ -10356,7 +10326,7 @@ "@smithy/eventstream-serde-universal": ["@smithy/eventstream-serde-universal@4.2.10", "", { "dependencies": { "@smithy/eventstream-codec": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-aArqzOEvcs2dK+xQVCgLbpJQGfZihw8SD4ymhkwNTtwKbnrzdhJsFDKuMQnam2kF69WzgJYOU5eJlCx+CA32bw=="], - "@smithy/fetch-http-handler": ["@smithy/fetch-http-handler@5.3.12", "", { "dependencies": { "@smithy/protocol-http": "^5.3.10", "@smithy/querystring-builder": "^4.2.10", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "tslib": "^2.6.2" } }, "sha512-muS5tFw+A/uo+U+yig06vk1776UFM+aAp9hFM8efI4ZcHhTcgv6NTeK4x7ltHeMPBwnhEjcf0MULTyxNkSNxDw=="], + "@smithy/fetch-http-handler": ["@smithy/fetch-http-handler@5.3.11", "", { "dependencies": { "@smithy/protocol-http": "^5.3.10", "@smithy/querystring-builder": "^4.2.10", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "tslib": "^2.6.2" } }, "sha512-wbTRjOxdFuyEg0CpumjZO0hkUl+fetJFqxNROepuLIoijQh51aMBmzFLfoQdwRjxsuuS2jizzIUTjPWgd8pd7g=="], "@smithy/hash-blob-browser": ["@smithy/hash-blob-browser@4.2.11", "", { "dependencies": { "@smithy/chunked-blob-reader": "^5.2.1", "@smithy/chunked-blob-reader-native": "^4.2.2", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-DrcAx3PM6AEbWZxsKl6CWAGnVwiz28Wp1ZhNu+Hi4uI/6C1PIZBIaPM2VoqBDAsOWbM6ZVzOEQMxFLLdmb4eBQ=="], @@ -10372,9 +10342,9 @@ "@smithy/middleware-content-length": ["@smithy/middleware-content-length@4.2.10", "", { "dependencies": { "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-TQZ9kX5c6XbjhaEBpvhSvMEZ0klBs1CFtOdPFwATZSbC9UeQfKHPLPN9Y+I6wZGMOavlYTOlHEPDrt42PMSH9w=="], - "@smithy/middleware-endpoint": ["@smithy/middleware-endpoint@4.4.21", "", { "dependencies": { "@smithy/core": "^3.23.7", "@smithy/middleware-serde": "^4.2.11", "@smithy/node-config-provider": "^4.3.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-middleware": "^4.2.10", "tslib": "^2.6.2" } }, "sha512-CoVGZaqIC0tEjz0ga3ciwCMA5fd/4lIOwO2wx0fH+cTi1zxSFZnMJbIiIF9G1d4vRSDyTupDrpS3FKBBJGkRZg=="], + "@smithy/middleware-endpoint": ["@smithy/middleware-endpoint@4.4.20", "", { "dependencies": { "@smithy/core": "^3.23.6", "@smithy/middleware-serde": "^4.2.11", "@smithy/node-config-provider": "^4.3.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-middleware": "^4.2.10", "tslib": "^2.6.2" } }, "sha512-9W6Np4ceBP3XCYAGLoMCmn8t2RRVzuD1ndWPLBbv7H9CrwM9Bprf6Up6BM9ZA/3alodg0b7Kf6ftBK9R1N04vw=="], - "@smithy/middleware-retry": ["@smithy/middleware-retry@4.4.38", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.10", "@smithy/protocol-http": "^5.3.10", "@smithy/service-error-classification": "^4.2.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/uuid": "^1.1.1", "tslib": "^2.6.2" } }, "sha512-WdHvdhjE6Fj78vxFwDKFDwlqGOGRUWrwGeuENUbTVE46Su9mnQM+dXHtbnCaQvwuSYrRsjpe8zUsFpwUp/azlA=="], + "@smithy/middleware-retry": ["@smithy/middleware-retry@4.4.37", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.10", "@smithy/protocol-http": "^5.3.10", "@smithy/service-error-classification": "^4.2.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/uuid": "^1.1.1", "tslib": "^2.6.2" } }, "sha512-/1psZZllBBSQ7+qo5+hhLz7AEPGLx3Z0+e3ramMBEuPK2PfvLK4SrncDB9VegX5mBn+oP/UTDrM6IHrFjvX1ZA=="], "@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.11", "", { "dependencies": { "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-STQdONGPwbbC7cusL60s7vOa6He6A9w2jWhoapL0mgVjmR19pr26slV+yoSP76SIssMTX/95e5nOZ6UQv6jolg=="], @@ -10382,7 +10352,7 @@ "@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.10", "", { "dependencies": { "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-UALRbJtVX34AdP2VECKVlnNgidLHA2A7YgcJzwSBg1hzmnO/bZBHl/LDQQyYifzUwp1UOODnl9JJ3KNawpUJ9w=="], - "@smithy/node-http-handler": ["@smithy/node-http-handler@4.4.13", "", { "dependencies": { "@smithy/abort-controller": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/querystring-builder": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-o8CP8w6tlUA0lk+Qfwm6Ed0jCWk3bEY6iBOJjdBaowbXKCSClk8zIHQvUL6RUZMvuNafF27cbRCMYqw6O1v4aA=="], + "@smithy/node-http-handler": ["@smithy/node-http-handler@4.4.12", "", { "dependencies": { "@smithy/abort-controller": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/querystring-builder": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-zo1+WKJkR9x7ZtMeMDAAsq2PufwiLDmkhcjpWPRRkmeIuOm6nq1qjFICSZbnjBvD09ei8KMo26BWxsu2BUU+5w=="], "@smithy/property-provider": ["@smithy/property-provider@4.2.10", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-5jm60P0CU7tom0eNrZ7YrkgBaoLFXzmqB0wVS+4uK8PPGmosSrLNf6rRd50UBvukztawZ7zyA8TxlrKpF5z9jw=="], @@ -10398,7 +10368,7 @@ "@smithy/signature-v4": ["@smithy/signature-v4@5.3.8", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.0", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", "@smithy/util-hex-encoding": "^4.2.0", "@smithy/util-middleware": "^4.2.8", "@smithy/util-uri-escape": "^4.2.0", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg=="], - "@smithy/smithy-client": ["@smithy/smithy-client@4.12.1", "", { "dependencies": { "@smithy/core": "^3.23.7", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-stack": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.16", "tslib": "^2.6.2" } }, "sha512-Xf9UFHlAihewfkmLNZ6I/Ek6kcYBKoU3cbRS9Z4q++9GWoW0YFbAHs7wMbuXm+nGuKHZ5OKheZMuDdaWPv8DJw=="], + "@smithy/smithy-client": ["@smithy/smithy-client@4.12.0", "", { "dependencies": { "@smithy/core": "^3.23.6", "@smithy/middleware-endpoint": "^4.4.20", "@smithy/middleware-stack": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.15", "tslib": "^2.6.2" } }, "sha512-R8bQ9K3lCcXyZmBnQqUZJF4ChZmtWT5NLi6x5kgWx5D+/j0KorXcA0YcFg/X5TOgnTCy1tbKc6z2g2y4amFupQ=="], "@smithy/types": ["@smithy/types@4.13.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw=="], @@ -10414,9 +10384,9 @@ "@smithy/util-config-provider": ["@smithy/util-config-provider@4.2.1", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-462id/00U8JWFw6qBuTSWfN5TxOHvDu4WliI97qOIOnuC/g+NDAknTU8eoGXEPlLkRVgWEr03jJBLV4o2FL8+A=="], - "@smithy/util-defaults-mode-browser": ["@smithy/util-defaults-mode-browser@4.3.37", "", { "dependencies": { "@smithy/property-provider": "^4.2.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-JlPZhV1kQCGNJgofRTU6E8kHrjCKsb6cps8gco8QDVaFl7biFYzHg0p1x89ytIWyVyCkY3nOpO8tJPM47Vqlww=="], + "@smithy/util-defaults-mode-browser": ["@smithy/util-defaults-mode-browser@4.3.36", "", { "dependencies": { "@smithy/property-provider": "^4.2.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-R0smq7EHQXRVMxkAxtH5akJ/FvgAmNF6bUy/GwY/N20T4GrwjT633NFm0VuRpC+8Bbv8R9A0DoJ9OiZL/M3xew=="], - "@smithy/util-defaults-mode-node": ["@smithy/util-defaults-mode-node@4.2.40", "", { "dependencies": { "@smithy/config-resolver": "^4.4.9", "@smithy/credential-provider-imds": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/property-provider": "^4.2.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-BM5cPEsyxHdYYO4Da77E94lenhaVPNUzBTyCGDkcw/n/mE8Q1cfHwr+n/w2bNPuUsPC30WaW5/hGKWOTKqw8kw=="], + "@smithy/util-defaults-mode-node": ["@smithy/util-defaults-mode-node@4.2.39", "", { "dependencies": { "@smithy/config-resolver": "^4.4.9", "@smithy/credential-provider-imds": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/property-provider": "^4.2.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-otWuoDm35btJV1L8MyHrPl462B07QCdMTktKc7/yM+Psv6KbED/ziXiHnmr7yPHUjfIwE9S8Max0LO24Mo3ZVg=="], "@smithy/util-endpoints": ["@smithy/util-endpoints@3.3.1", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xyctc4klmjmieQiF9I1wssBWleRV0RhJ2DpO8+8yzi2LO1Z+4IWOZNGZGNj4+hq9kdo+nyfrRLmQTzc16Op2Vg=="], @@ -10426,7 +10396,7 @@ "@smithy/util-retry": ["@smithy/util-retry@4.2.10", "", { "dependencies": { "@smithy/service-error-classification": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-HrBzistfpyE5uqTwiyLsFHscgnwB0kgv8vySp7q5kZ0Eltn/tjosaSGGDj/jJ9ys7pWzIP/icE2d+7vMKXLv7A=="], - "@smithy/util-stream": ["@smithy/util-stream@4.5.16", "", { "dependencies": { "@smithy/fetch-http-handler": "^5.3.12", "@smithy/node-http-handler": "^4.4.13", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-buffer-from": "^4.2.1", "@smithy/util-hex-encoding": "^4.2.1", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-c7awZV6cxY0czgDDSr+Bz0XfRtg8AwW2BWhrHhLJISrpmwv8QzA2qzTllWyMVNdy1+UJr9vCm29hzuh3l8TTFw=="], + "@smithy/util-stream": ["@smithy/util-stream@4.5.15", "", { "dependencies": { "@smithy/fetch-http-handler": "^5.3.11", "@smithy/node-http-handler": "^4.4.12", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.1", "@smithy/util-buffer-from": "^4.2.1", "@smithy/util-hex-encoding": "^4.2.1", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-OlOKnaqnkU9X+6wEkd7mN+WB7orPbCVDauXOj22Q7VtiTkvy7ZdSsOg4QiNAZMgI4OkvNf+/VLUC3VXkxuWJZw=="], "@smithy/util-uri-escape": ["@smithy/util-uri-escape@4.2.1", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-YmiUDn2eo2IOiWYYvGQkgX5ZkBSiTQu4FlDo5jNPpAxng2t6Sjb6WutnZV9l6VR4eJul1ABmCrnWBC9hKHQa6Q=="], @@ -10688,7 +10658,7 @@ "@tsconfig/node16": ["@tsconfig/node16@1.0.4", "", {}, "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA=="], - "@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], "@types/amqplib": ["@types/amqplib@0.10.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-/cSykxROY7BWwDoi4Y4/jLAuZTshZxd8Ey1QYa/VaXriMotBDoou7V/twJiOSHzU6t1Kp1AHAUXGCgqq+6DNeg=="], @@ -10886,7 +10856,7 @@ "@types/semver": ["@types/semver@7.5.6", "", {}, "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A=="], - "@types/send": ["@types/send@0.17.6", "", { "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og=="], + "@types/send": ["@types/send@1.2.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ=="], "@types/serve-static": ["@types/serve-static@1.15.10", "", { "dependencies": { "@types/http-errors": "*", "@types/node": "*", "@types/send": "<1" } }, "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw=="], @@ -10900,8 +10870,6 @@ "@types/ssh2-sftp-client": ["@types/ssh2-sftp-client@9.0.6", "", { "dependencies": { "@types/ssh2": "^1.0.0" } }, "sha512-4+KvXO/V77y9VjI2op2T8+RCGI/GXQAwR0q5Qkj/EJ5YSeyKszqZP6F8i3H3txYoBqjc7sgorqyvBP3+w1EHyg=="], - "@types/statuses": ["@types/statuses@2.0.6", "", {}, "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA=="], - "@types/symlink-or-copy": ["@types/symlink-or-copy@1.2.2", "", {}, "sha512-MQ1AnmTLOncwEf9IVU+B2e4Hchrku5N67NkgcAHW0p3sdzPe0FNMANxEm6OJUzPniEQGkeT3OROLlCwZJLWFZA=="], "@types/tedious": ["@types/tedious@4.0.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw=="], @@ -11034,13 +11002,7 @@ "@xyflow/system": ["@xyflow/system@0.0.46", "", { "dependencies": { "@types/d3-drag": "^3.0.7", "@types/d3-selection": "^3.0.10", "@types/d3-transition": "^3.0.8", "@types/d3-zoom": "^3.0.8", "d3-drag": "^3.0.0", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0" } }, "sha512-bmFXvboVdiydIFZmDCjrbBCYgB0d5pYdkcZPWbAxGmhMRUZ+kW3CksYgYxWabrw51rwpWitLEadvLrivG0mVfA=="], - "@yarnpkg/lockfile": ["@yarnpkg/lockfile@1.1.0", "", {}, "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="], - - "@yarnpkg/parsers": ["@yarnpkg/parsers@3.0.2", "", { "dependencies": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" } }, "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA=="], - - "@zip.js/zip.js": ["@zip.js/zip.js@2.8.22", "", {}, "sha512-0KlzbVR6r8irIX2o3zvUlosBDef62VDl47oUfa1U/qgEs67h4/eGBrX/6HWa1RQbt+J6sAeVmtyFKbTHNdF8qQ=="], - - "@zkochan/js-yaml": ["@zkochan/js-yaml@0.0.7", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ=="], + "@zip.js/zip.js": ["@zip.js/zip.js@2.8.21", "", {}, "sha512-fkyzXISE3IMrstDO1AgPkJCx14MYHP/suIGiAovEYEuBjq3mffsuL6aMV7ohOSjW4rXtuACuUfpA3GtITgdtYg=="], "@zone-eu/mailsplit": ["@zone-eu/mailsplit@5.4.7", "", { "dependencies": { "libbase64": "1.3.0", "libmime": "5.3.7", "libqp": "2.1.1" } }, "sha512-jApX86aDgolMz08pP20/J2zcns02NSK3zSiYouf01QQg4250L+GUAWSWicmS7eRvs+Z7wP7QfXrnkaTBGrIpwQ=="], @@ -11080,7 +11042,7 @@ "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="], - "ai": ["ai@6.0.112", "", { "dependencies": { "@ai-sdk/gateway": "3.0.64", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-IRMUdKM0kA4uLwvDZzsKgEkXMC3MCGHkBVFiLQ4OOCk2nE/g+D4XLKAbixyt4qv5iE0dPkpeuh9DzxwECKnEOg=="], + "ai": ["ai@6.0.105", "", { "dependencies": { "@ai-sdk/gateway": "3.0.59", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16", "@opentelemetry/api": "1.9.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-rp+exWtZS3J0DDvZIfetpKCIg7D3cCsvBPoFN3I67IDTs9aoBZDbpecoIkmNLT+U9RBkoEial3OGHRvme23HCw=="], "ai-gateway-provider": ["ai-gateway-provider@3.1.1", "", { "optionalDependencies": { "@ai-sdk/amazon-bedrock": "^4.0.37", "@ai-sdk/anthropic": "^3.0.29", "@ai-sdk/azure": "^3.0.21", "@ai-sdk/cerebras": "^2.0.23", "@ai-sdk/cohere": "^3.0.12", "@ai-sdk/deepgram": "^2.0.12", "@ai-sdk/deepseek": "^2.0.12", "@ai-sdk/elevenlabs": "^2.0.12", "@ai-sdk/fireworks": "^2.0.22", "@ai-sdk/google": "^3.0.16", "@ai-sdk/google-vertex": "^4.0.35", "@ai-sdk/groq": "^3.0.16", "@ai-sdk/mistral": "^3.0.13", "@ai-sdk/openai": "^3.0.21", "@ai-sdk/perplexity": "^3.0.12", "@ai-sdk/xai": "^3.0.40", "@openrouter/ai-sdk-provider": "^2.1.1" }, "peerDependencies": { "@ai-sdk/openai-compatible": "^2.0.0", "@ai-sdk/provider": "^3.0.0", "@ai-sdk/provider-utils": "^4.0.0", "ai": "^6.0.0" } }, "sha512-RTHkboNz9JocplBSKdDLSMEiN3OkfS1UeZqM93zuQ3BVDR5BmTisThoQR/3pkAVACIYL/8OEQ3kuSuDo820gVw=="], @@ -11096,8 +11058,6 @@ "amqplib": ["amqplib@0.10.7", "", { "dependencies": { "buffer-more-ints": "~1.0.0", "url-parse": "~1.5.10" } }, "sha512-7xPSYKSX2kj/bT6iHZ3MlctzxdCW1Ds9xyN0EmuRi2DZxHztwwoG1YkZrgmLyuPNjfxlRiMdWJPQscmoa3Vgdg=="], - "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], - "ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], @@ -11222,7 +11182,7 @@ "bare-fs": ["bare-fs@4.5.5", "", { "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", "bare-stream": "^2.6.4", "bare-url": "^2.2.2", "fast-fifo": "^1.3.2" }, "peerDependencies": { "bare-buffer": "*" }, "optionalPeers": ["bare-buffer"] }, "sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w=="], - "bare-os": ["bare-os@3.7.1", "", {}, "sha512-ebvMaS5BgZKmJlvuWh14dg9rbUI84QeV3WlWn6Ph6lFI8jJoh7ADtVTyD2c93euwbe+zgi0DVrl4YmqXeM9aIA=="], + "bare-os": ["bare-os@3.7.0", "", {}, "sha512-64Rcwj8qlnTZU8Ps6JJEdSmxBEUGgI7g8l+lMtsJLl4IsfTcHMTfJ188u2iGV6P6YPRZrtv72B2kjn+hp+Yv3g=="], "bare-path": ["bare-path@3.0.0", "", { "dependencies": { "bare-os": "^3.0.1" } }, "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw=="], @@ -11362,7 +11322,7 @@ "camelcase-keys": ["camelcase-keys@6.2.2", "", { "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", "quick-lru": "^4.0.1" } }, "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg=="], - "caniuse-lite": ["caniuse-lite@1.0.30001776", "", {}, "sha512-sg01JDPzZ9jGshqKSckOQthXnYwOEP50jeVFhaSFbZcOy05TiuuaffDOfcwtCisJ9kNQuLBFibYywv2Bgm9osw=="], + "caniuse-lite": ["caniuse-lite@1.0.30001775", "", {}, "sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A=="], "canonicalize": ["canonicalize@1.0.8", "", {}, "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="], @@ -11398,7 +11358,7 @@ "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], - "chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], + "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], "chrome-trace-event": ["chrome-trace-event@1.0.4", "", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], @@ -11726,7 +11686,7 @@ "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], - "devtools-protocol": ["devtools-protocol@0.0.1581282", "", {}, "sha512-nv7iKtNZQshSW2hKzYNr46nM/Cfh5SEvE2oV0/SEGgc9XupIY5ggf84Cz8eJIkBce7S3bmTAauFD6aysMpnqsQ=="], + "devtools-protocol": ["devtools-protocol@0.0.1566079", "", {}, "sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ=="], "dezalgo": ["dezalgo@1.0.4", "", { "dependencies": { "asap": "^2.0.0", "wrappy": "1" } }, "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig=="], @@ -11792,7 +11752,7 @@ "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], - "electron-to-chromium": ["electron-to-chromium@1.5.307", "", {}, "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg=="], + "electron-to-chromium": ["electron-to-chromium@1.5.302", "", {}, "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg=="], "elliptic": ["elliptic@6.5.4", "", { "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.1", "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" } }, "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ=="], @@ -11836,8 +11796,6 @@ "enhanced-resolve": ["enhanced-resolve@5.20.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ=="], - "enquirer": ["enquirer@2.3.6", "", { "dependencies": { "ansi-colors": "^4.1.1" } }, "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg=="], - "ensure-posix-path": ["ensure-posix-path@1.1.1", "", {}, "sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw=="], "entities": ["entities@2.2.0", "", {}, "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="], @@ -12042,6 +12000,8 @@ "fastify-socket": ["fastify-socket@5.1.2", "", { "dependencies": { "fastify-plugin": "^5.0.1", "tslib": "^2.8.1" }, "peerDependencies": { "fastify": ">=4", "socket.io": ">=4" } }, "sha512-eJf6Qu49rSLdEvOR2CtSh6XVLJMh+JaPqWcOqJmMKLlBYRzpToTfaTqkZaE95pa7/kRZWOibq8XJMn3NNwf3eg=="], + "fastify-type-provider-zod": ["fastify-type-provider-zod@4.0.2", "", { "dependencies": { "@fastify/error": "^4.0.0", "zod-to-json-schema": "^3.23.3" }, "peerDependencies": { "fastify": "^5.0.0", "zod": "^3.14.2" } }, "sha512-FDRzSL3ZuoZ+4YDevR1YOinmDKkxOdy3QB9dDR845sK+bQvDroPKhHAXLEAOObDxL7SMA0OZN/A4osrNBTdDTQ=="], + "fastify-xml-body-parser": ["fastify-xml-body-parser@2.2.0", "", { "dependencies": { "fast-xml-parser": "^4.1.2", "fastify-plugin": "^3.0.0" } }, "sha512-Jxltec0Iin4QX+DEQoYCyGmU5cTRtI0x22mRT/3FBQMhTEn7KNTHnnEtbyN3+6SLgW8cSirnOe1t8vqn77vR+Q=="], "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], @@ -12142,8 +12102,6 @@ "frimousse": ["frimousse@0.2.0", "", { "peerDependencies": { "react": "^18 || ^19" } }, "sha512-viSrsVQWKR4Q7xzC0lkx3Wu9i1+IHrth0QXn0nlIIJXpltwUnjkGXSTuoW7WHI5aJ4z49WR8E/pyQizFjlNtTA=="], - "front-matter": ["front-matter@4.0.2", "", { "dependencies": { "js-yaml": "^3.13.1" } }, "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg=="], - "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], "fs-extra": ["fs-extra@11.2.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw=="], @@ -12304,8 +12262,6 @@ "header-range-parser": ["header-range-parser@1.1.3", "", {}, "sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA=="], - "headers-polyfill": ["headers-polyfill@4.0.3", "", {}, "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ=="], - "heimdalljs": ["heimdalljs@0.2.6", "", { "dependencies": { "rsvp": "~3.2.1" } }, "sha512-o9bd30+5vLBvBtzCPwwGqpry2+n0Hi6H1+qwt6y+0kwRHGGF8TFIhJPmnuM0xO97zaKrDZMwO/V56fAnn8m/tA=="], "heimdalljs-logger": ["heimdalljs-logger@0.1.10", "", { "dependencies": { "debug": "^2.2.0", "heimdalljs": "^0.2.6" } }, "sha512-pO++cJbhIufVI/fmB/u2Yty3KJD0TqNPecehFae0/eps0hkZ3b4Zc/PezUMOpYuHFQbA7FxHZxa305EhmjLj4g=="], @@ -12320,7 +12276,7 @@ "homedir-polyfill": ["homedir-polyfill@1.0.3", "", { "dependencies": { "parse-passwd": "^1.0.0" } }, "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA=="], - "hono": ["hono@4.12.5", "", {}, "sha512-3qq+FUBtlTHhtYxbxheZgY8NIFnkkC/MR8u5TTsr7YZ3wixryQ3cCwn3iZbg8p8B88iDBBAYSfZDS75t8MN7Vg=="], + "hono": ["hono@4.12.3", "", {}, "sha512-SFsVSjp8sj5UumXOOFlkZOG6XS9SJDKw0TbwFeV+AJ8xlST8kxK5Z/5EYa111UY8732lK2S/xB653ceuaoGwpg=="], "hookable": ["hookable@5.5.3", "", {}, "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="], @@ -12410,7 +12366,7 @@ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "ini": ["ini@4.1.3", "", {}, "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg=="], + "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], @@ -12496,8 +12452,6 @@ "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], - "is-node-process": ["is-node-process@1.2.0", "", {}, "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw=="], - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], @@ -12568,8 +12522,6 @@ "javascript-natural-sort": ["javascript-natural-sort@0.7.1", "", {}, "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw=="], - "jest-diff": ["jest-diff@30.2.0", "", { "dependencies": { "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", "pretty-format": "30.2.0" } }, "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A=="], - "jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], "jimp": ["jimp@0.22.12", "", { "dependencies": { "@jimp/custom": "^0.22.12", "@jimp/plugins": "^0.22.12", "@jimp/types": "^0.22.12", "regenerator-runtime": "^0.13.3" } }, "sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg=="], @@ -12644,8 +12596,6 @@ "jsonc-eslint-parser": ["jsonc-eslint-parser@2.4.1", "", { "dependencies": { "acorn": "^8.5.0", "eslint-visitor-keys": "^3.0.0", "espree": "^9.0.0", "semver": "^7.3.5" } }, "sha512-uuPNLJkKN8NXAlZlQ6kmUF9qO+T6Kyd7oV4+/7yy8Jz6+MZNyhPq8EdLpdfnPVzUC8qSf1b4j1azKaGnFsjmsw=="], - "jsonc-parser": ["jsonc-parser@3.2.0", "", {}, "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w=="], - "jsoneditor": ["jsoneditor@10.0.3", "", { "dependencies": { "ace-builds": "^1.33.1", "ajv": "^6.12.6", "javascript-natural-sort": "^0.7.1", "jmespath": "^0.16.0", "json-source-map": "^0.6.1", "jsonrepair": "^3.7.0", "mobius1-selectr": "^2.4.13", "picomodal": "^3.0.0", "vanilla-picker": "^2.12.3" } }, "sha512-dCEtrms+zsIQjDZC5Yo6FBWNvNlXSR2nZ5aprEjawAD689CI8/qqv/Ytj0wPqcz6H1p1ebFfM/wkf8L1wrWk5w=="], "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], @@ -12736,7 +12686,7 @@ "limiter": ["limiter@1.1.5", "", {}, "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="], - "lines-and-columns": ["lines-and-columns@2.0.3", "", {}, "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w=="], + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], @@ -13030,7 +12980,7 @@ "minipass-sized": ["minipass-sized@1.0.3", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g=="], - "minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], + "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], "mitt": ["mitt@3.0.1", "", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="], @@ -13058,7 +13008,7 @@ "motion": ["motion@12.16.0", "", { "dependencies": { "framer-motion": "^12.16.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-P3HA83fnPMEGBLfKdD5vDdjH1Aa3wM3jT3+HX3fCVpy/4/lJiqvABajLgZenBu+rzkFzmeaPkvT7ouf9Tq5tVQ=="], - "motion-dom": ["motion-dom@12.35.0", "", { "dependencies": { "motion-utils": "^12.29.2" } }, "sha512-FFMLEnIejK/zDABn+vqGVAUN4T0+3fw+cVAY8MMT65yR+j5uMuvWdd4npACWhh94OVWQs79CrBBuwOwGRZAQiA=="], + "motion-dom": ["motion-dom@12.34.3", "", { "dependencies": { "motion-utils": "^12.29.2" } }, "sha512-sYgFe+pR9aIM7o4fhs2aXtOI+oqlUd33N9Yoxcgo1Fv7M20sRkHtCmzE/VRNIcq7uNJ+qio+Xubt1FXH3pQ+eQ=="], "motion-utils": ["motion-utils@12.29.2", "", {}, "sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A=="], @@ -13076,8 +13026,6 @@ "msgpackr-extract": ["msgpackr-extract@3.0.3", "", { "dependencies": { "node-gyp-build-optional-packages": "5.2.2" }, "optionalDependencies": { "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" }, "bin": { "download-msgpackr-prebuilds": "bin/download-prebuilds.js" } }, "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA=="], - "msw": ["msw@2.12.10", "", { "dependencies": { "@inquirer/confirm": "^5.0.0", "@mswjs/interceptors": "^0.41.2", "@open-draft/deferred-promise": "^2.2.0", "@types/statuses": "^2.0.6", "cookie": "^1.0.2", "graphql": "^16.12.0", "headers-polyfill": "^4.0.2", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "path-to-regexp": "^6.3.0", "picocolors": "^1.1.1", "rettime": "^0.10.1", "statuses": "^2.0.2", "strict-event-emitter": "^0.5.1", "tough-cookie": "^6.0.0", "type-fest": "^5.2.0", "until-async": "^3.0.2", "yargs": "^17.7.2" }, "peerDependencies": { "typescript": ">= 4.8.x" }, "optionalPeers": ["typescript"], "bin": { "msw": "cli/index.js" } }, "sha512-G3VUymSE0/iegFnuipujpwyTM2GuZAKXNeerUSrG2+Eg391wW63xFs5ixWsK9MWzr1AGoSkYGmyAzNgbR3+urw=="], - "multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], "murmurhash": ["murmurhash@2.0.1", "", {}, "sha512-5vQEh3y+DG/lMPM0mCGPDnyV8chYg/g7rl6v3Gd8WMF9S429ox3Xk8qrk174kWhG767KQMqqxLD1WnGd77hiew=="], @@ -13142,9 +13090,7 @@ "node-html-parser": ["node-html-parser@5.4.2", "", { "dependencies": { "css-select": "^4.2.1", "he": "1.2.0" } }, "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw=="], - "node-machine-id": ["node-machine-id@1.1.12", "", {}, "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="], - - "node-releases": ["node-releases@2.0.36", "", {}, "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA=="], + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], "node-rsa": ["node-rsa@1.1.1", "", { "dependencies": { "asn1": "^0.2.4" } }, "sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw=="], @@ -13178,10 +13124,6 @@ "nwsapi": ["nwsapi@2.2.23", "", {}, "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ=="], - "nx": ["nx@22.5.3", "", { "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", "axios": "^1.12.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", "dotenv": "~16.4.5", "dotenv-expand": "~11.0.6", "ejs": "^3.1.7", "enquirer": "~2.3.6", "figures": "3.2.0", "flat": "^5.0.2", "front-matter": "^4.0.2", "ignore": "^7.0.5", "jest-diff": "^30.0.2", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", "minimatch": "10.2.1", "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", "picocolors": "^1.1.0", "resolve.exports": "2.0.3", "semver": "^7.6.3", "string-width": "^4.2.3", "tar-stream": "~2.2.0", "tmp": "~0.2.1", "tree-kill": "^1.2.2", "tsconfig-paths": "^4.1.2", "tslib": "^2.3.0", "yaml": "^2.6.0", "yargs": "^17.6.2", "yargs-parser": "21.1.1" }, "optionalDependencies": { "@nx/nx-darwin-arm64": "22.5.3", "@nx/nx-darwin-x64": "22.5.3", "@nx/nx-freebsd-x64": "22.5.3", "@nx/nx-linux-arm-gnueabihf": "22.5.3", "@nx/nx-linux-arm64-gnu": "22.5.3", "@nx/nx-linux-arm64-musl": "22.5.3", "@nx/nx-linux-x64-gnu": "22.5.3", "@nx/nx-linux-x64-musl": "22.5.3", "@nx/nx-win32-arm64-msvc": "22.5.3", "@nx/nx-win32-x64-msvc": "22.5.3" }, "peerDependencies": { "@swc-node/register": "^1.11.1", "@swc/core": "^1.15.8" }, "optionalPeers": ["@swc-node/register", "@swc/core"], "bin": { "nx": "bin/nx.js", "nx-cloud": "bin/nx-cloud.js" } }, "sha512-IaEPqdgaFBIr0Bfmnt6WAcX3t660sOuDXQ71lpoS8GgpD8cqX1LIW2ZyzEAdOvCP1iD6HCZehpofcVvaaL1GNQ=="], - - "nx-cloud": ["nx-cloud@19.1.0", "", { "dependencies": { "@nrwl/nx-cloud": "19.1.0", "axios": "^1.6.0", "chalk": "^4.1.0", "dotenv": "~10.0.0", "fs-extra": "^11.1.0", "ini": "4.1.3", "node-machine-id": "^1.1.12", "open": "~8.4.0", "tar": "6.2.1", "yargs-parser": ">=21.1.1" }, "bin": { "nx-cloud": "bin/nx-cloud.js" } }, "sha512-f24vd5/57/MFSXNMfkerdDiK0EvScGOKO71iOWgJNgI1xVweDRmOA/EfjnPMRd5m+pnoPs/4A7DzuwSW0jZVyw=="], - "oauth": ["oauth@0.10.2", "", {}, "sha512-JtFnB+8nxDEXgNyniwz573xxbKSOu3R8D40xQKqcjwJ2CDkYqUDI53o6IuzDJBx60Z8VKCm271+t8iFjakrl8Q=="], "oauth-sign": ["oauth-sign@0.9.0", "", {}, "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="], @@ -13242,8 +13184,6 @@ "orderedmap": ["orderedmap@2.1.1", "", {}, "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g=="], - "outvariant": ["outvariant@1.4.3", "", {}, "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA=="], - "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], "p-cancelable": ["p-cancelable@2.1.1", "", {}, "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg=="], @@ -13324,7 +13264,7 @@ "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="], + "path-to-regexp": ["path-to-regexp@8.3.0", "", {}, "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA=="], "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], @@ -13406,7 +13346,7 @@ "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], - "postcss": ["postcss@8.5.8", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg=="], + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], @@ -13432,8 +13372,6 @@ "prettier-linter-helpers": ["prettier-linter-helpers@1.0.1", "", { "dependencies": { "fast-diff": "^1.1.2" } }, "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg=="], - "pretty-format": ["pretty-format@30.2.0", "", { "dependencies": { "@jest/schemas": "30.0.5", "ansi-styles": "^5.2.0", "react-is": "^18.3.1" } }, "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA=="], - "pretty-ms": ["pretty-ms@9.3.0", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ=="], "priority-queue-typescript": ["priority-queue-typescript@1.0.1", "", {}, "sha512-Apycf6CgjdPRNfpZ8qgQeHVRe4B6R51QAd94k6fE13tGUpW1RLv8+ZeJipl2f0j/No3nt2Gk7dF2f+i1Au/I2w=="], @@ -13522,7 +13460,7 @@ "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="], - "puppeteer-core": ["puppeteer-core@24.38.0", "", { "dependencies": { "@puppeteer/browsers": "2.13.0", "chromium-bidi": "14.0.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1581282", "typed-query-selector": "^2.12.1", "webdriver-bidi-protocol": "0.4.1", "ws": "^8.19.0" } }, "sha512-zB3S/tksIhgi2gZRndUe07AudBz5SXOB7hqG0kEa9/YXWrGwlVlYm3tZtwKgfRftBzbmLQl5iwHkQQl04n/mWw=="], + "puppeteer-core": ["puppeteer-core@24.37.5", "", { "dependencies": { "@puppeteer/browsers": "2.13.0", "chromium-bidi": "14.0.0", "debug": "^4.4.3", "devtools-protocol": "0.0.1566079", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.4.1", "ws": "^8.19.0" } }, "sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ=="], "pure-color": ["pure-color@1.3.0", "", {}, "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA=="], @@ -13550,6 +13488,8 @@ "randexp": ["randexp@0.4.6", "", { "dependencies": { "discontinuous-range": "1.0.0", "ret": "~0.1.10" } }, "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ=="], + "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], + "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], "raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], @@ -13718,8 +13658,6 @@ "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], - "resolve.exports": ["resolve.exports@2.0.3", "", {}, "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A=="], - "responselike": ["responselike@2.0.1", "", { "dependencies": { "lowercase-keys": "^2.0.0" } }, "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw=="], "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], @@ -13730,8 +13668,6 @@ "retry-request": ["retry-request@7.0.2", "", { "dependencies": { "@types/request": "^2.48.8", "extend": "^3.0.2", "teeny-request": "^9.0.0" } }, "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w=="], - "rettime": ["rettime@0.10.1", "", {}, "sha512-uyDrIlUEH37cinabq0AX4QbgV4HbFZ/gqoiunWQ1UqBtRvTTytwhNYjE++pO/MjPTZL5KQCf2bEoJ/BJNVQ5Kw=="], - "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], "rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="], @@ -13806,6 +13742,8 @@ "send": ["send@1.2.1", "", { "dependencies": { "debug": "^4.4.3", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.1", "mime-types": "^3.0.2", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.2" } }, "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="], + "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], + "serve-static": ["serve-static@2.2.1", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="], "set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="], @@ -13978,8 +13916,6 @@ "streamx": ["streamx@2.23.0", "", { "dependencies": { "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" } }, "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg=="], - "strict-event-emitter": ["strict-event-emitter@0.5.1", "", {}, "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ=="], - "string-argv": ["string-argv@0.3.2", "", {}, "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q=="], "string-replace-async": ["string-replace-async@3.0.2", "", {}, "sha512-s6hDtXJ7FKyRap/amefqrOMpkEQvxUDueyvJygQeHxCK5Za90dOMgdibCCrPdfdAYAkr8imrZ1PPXW7DOf0RzQ=="], @@ -14046,8 +13982,6 @@ "symlink-or-copy": ["symlink-or-copy@1.3.1", "", {}, "sha512-0K91MEXFpBUaywiwSSkmKjnGcasG/rVBXFLJz5DrgGabpYD6N+3yZrfD6uUIfpuTu65DZLHi7N8CizHc07BPZA=="], - "tagged-tag": ["tagged-tag@1.0.0", "", {}, "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng=="], - "tailwind-merge": ["tailwind-merge@2.4.0", "", {}, "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A=="], "tailwind-scrollbar": ["tailwind-scrollbar@4.0.2", "", { "dependencies": { "prism-react-renderer": "^2.4.1" }, "peerDependencies": { "tailwindcss": "4.x" } }, "sha512-wAQiIxAPqk0MNTPptVe/xoyWi27y+NRGnTwvn4PQnbvB9kp8QUBiGl/wsfoVBHnQxTmhXJSNt9NHTmcz9EivFA=="], @@ -14056,11 +13990,11 @@ "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - "tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], + "tar": ["tar@7.5.9", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg=="], "tar-fs": ["tar-fs@2.1.4", "", { "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" } }, "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ=="], - "tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], + "tar-stream": ["tar-stream@3.1.8", "", { "dependencies": { "b4a": "^1.6.4", "bare-fs": "^4.5.5", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ=="], "teeny-request": ["teeny-request@9.0.0", "", { "dependencies": { "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "node-fetch": "^2.6.9", "stream-events": "^1.0.5", "uuid": "^9.0.0" } }, "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g=="], @@ -14068,7 +14002,7 @@ "terser": ["terser@5.46.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg=="], - "terser-webpack-plugin": ["terser-webpack-plugin@5.3.17", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-YR7PtUp6GMU91BgSJmlaX/rS2lGDbAF7D+Wtq7hRO+MiljNmodYvqslzCFiYVAgW+Qoaaia/QUIP4lGXufjdZw=="], + "terser-webpack-plugin": ["terser-webpack-plugin@5.3.16", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q=="], "tests-e2e": ["tests-e2e@workspace:packages/tests-e2e"], @@ -14120,10 +14054,6 @@ "tlds": ["tlds@1.261.0", "", { "bin": { "tlds": "bin.js" } }, "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA=="], - "tldts": ["tldts@7.0.24", "", { "dependencies": { "tldts-core": "^7.0.24" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-1r6vQTTt1rUiJkI5vX7KG8PR342Ru/5Oh13kEQP2SMbRSZpOey9SrBe27IDxkoWulx8ShWu4K6C0BkctP8Z1bQ=="], - - "tldts-core": ["tldts-core@7.0.24", "", {}, "sha512-pj7yygNMoMRqG7ML2SDQ0xNIOfN3IBDUcPVM2Sg6hP96oFNN2nqnzHreT3z9xLq85IWJyNTvD38O002DdOrPMw=="], - "tmp": ["tmp@0.2.5", "", {}, "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow=="], "to-buffer": ["to-buffer@1.2.2", "", { "dependencies": { "isarray": "^2.0.5", "safe-buffer": "^5.2.1", "typed-array-buffer": "^1.0.3" } }, "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw=="], @@ -14284,8 +14214,6 @@ "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - "until-async": ["until-async@3.0.2", "", {}, "sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw=="], - "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], @@ -14508,7 +14436,7 @@ "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], - "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], "yaml": ["yaml@2.4.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg=="], @@ -14528,7 +14456,7 @@ "zip-stream": ["zip-stream@6.0.1", "", { "dependencies": { "archiver-utils": "^5.0.0", "compress-commons": "^6.0.2", "readable-stream": "^4.0.0" } }, "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA=="], - "zod": ["zod@4.1.13", "", {}, "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig=="], + "zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], "zod-to-json-schema": ["zod-to-json-schema@3.25.1", "", { "peerDependencies": { "zod": "^3.25 || ^4" } }, "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA=="], @@ -14538,6 +14466,12 @@ "zwitch": ["zwitch@1.0.5", "", {}, "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="], + "@activepieces/piece-ai/@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.26.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg=="], + + "@activepieces/piece-ai/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-airtop/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@activepieces/piece-amazon-secrets-manager/@aws-sdk/client-secrets-manager": ["@aws-sdk/client-secrets-manager@3.989.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.9", "@aws-sdk/credential-provider-node": "^3.972.8", "@aws-sdk/middleware-host-header": "^3.972.3", "@aws-sdk/middleware-logger": "^3.972.3", "@aws-sdk/middleware-recursion-detection": "^3.972.3", "@aws-sdk/middleware-user-agent": "^3.972.9", "@aws-sdk/region-config-resolver": "^3.972.3", "@aws-sdk/types": "^3.973.1", "@aws-sdk/util-endpoints": "3.989.0", "@aws-sdk/util-user-agent-browser": "^3.972.3", "@aws-sdk/util-user-agent-node": "^3.972.7", "@smithy/config-resolver": "^4.4.6", "@smithy/core": "^3.23.0", "@smithy/fetch-http-handler": "^5.3.9", "@smithy/hash-node": "^4.2.8", "@smithy/invalid-dependency": "^4.2.8", "@smithy/middleware-content-length": "^4.2.8", "@smithy/middleware-endpoint": "^4.4.14", "@smithy/middleware-retry": "^4.4.31", "@smithy/middleware-serde": "^4.2.9", "@smithy/middleware-stack": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", "@smithy/node-http-handler": "^4.4.10", "@smithy/protocol-http": "^5.3.8", "@smithy/smithy-client": "^4.11.3", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.30", "@smithy/util-defaults-mode-node": "^4.2.33", "@smithy/util-endpoints": "^3.2.8", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-GFZgQTnkjojn6Vif0DwDy0Gdi74hZLXUw+WtRNFWMrmXbKFsb+W/qVUJTQLlZn8jPZHoxwZg4v3vFovRUDOavw=="], "@activepieces/piece-amazon-textract/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -14546,27 +14480,71 @@ "@activepieces/piece-assemblyai/typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "@activepieces/piece-chat-data/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-cloudconvert/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-cometapi/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-customgpt/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-datadog/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-docsbot/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@activepieces/piece-drupal/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@activepieces/piece-foreplay-co/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@activepieces/piece-google-vertexai/@google/genai": ["@google/genai@1.43.0", "", { "dependencies": { "google-auth-library": "^10.3.0", "p-retry": "^4.6.2", "protobufjs": "^7.5.4", "ws": "^8.18.0" }, "peerDependencies": { "@modelcontextprotocol/sdk": "^1.25.2" }, "optionalPeers": ["@modelcontextprotocol/sdk"] }, "sha512-hklCsJNdMlDM1IwcCVcGQFBg2izY0+t5BIGbRsxi2UnKi6AGKL7pqJqmBDNRbw0bYCs4y3NA7TB+fkKfP/Nrdw=="], "@activepieces/piece-google-vertexai/google-auth-library": ["google-auth-library@10.6.1", "", { "dependencies": { "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "gaxios": "7.1.3", "gcp-metadata": "8.1.2", "google-logging-utils": "1.1.3", "jws": "^4.0.0" } }, "sha512-5awwuLrzNol+pFDmKJd0dKtZ0fPLAtoA5p7YO4ODsDu6ONJUVqbYwvv8y2ZBO5MBNp9TJXigB19710kYpBPdtA=="], + "@activepieces/piece-googlechat/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-grok-xai/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-help-scout/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-housecall-pro/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-insighto-ai/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-jogg-ai/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-kudosity/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-paywhirl/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@activepieces/piece-prompthub/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "@activepieces/piece-rabbitmq/@types/amqplib": ["@types/amqplib@0.10.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-IVj3avf9AQd2nXCx0PGk/OYq7VmHiyNxWFSb5HhU9ATh+i+gHWvVcljFTcTWQ/dyHJCTrzCixde+r/asL2ErDA=="], + "@activepieces/piece-roe-ai/@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.26.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg=="], + + "@activepieces/piece-runware/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@activepieces/piece-service-now/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "@activepieces/piece-vadoo-ai/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-vlm-run/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-vouchery-io/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-zoho-bookings/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@activepieces/piece-zoho-campaigns/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@actual-app/api/node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="], "@actual-app/api/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], "@actual-app/crdt/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], - "@ai-sdk/cerebras/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.33", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-HwptqeUS4vtDyjSSjmKCQExjoQMwPVq0C4pHH18i7c+3CQ0QN81HLvz3BdpULo0n/UtdQwTNISRqx3G5miPZhw=="], + "@ai-sdk/cerebras/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.31", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-e78xiImcTe2aCMQoFbVJluQmUV4XgahOmmehAuRPlcwzRv2KtkvuLCXPC9Xcy2u83e8SimVva9k9G8SvZcnaBA=="], - "@ai-sdk/fireworks/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.33", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-HwptqeUS4vtDyjSSjmKCQExjoQMwPVq0C4pHH18i7c+3CQ0QN81HLvz3BdpULo0n/UtdQwTNISRqx3G5miPZhw=="], + "@ai-sdk/fireworks/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.31", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-e78xiImcTe2aCMQoFbVJluQmUV4XgahOmmehAuRPlcwzRv2KtkvuLCXPC9Xcy2u83e8SimVva9k9G8SvZcnaBA=="], "@ai-sdk/google-vertex/@ai-sdk/anthropic": ["@ai-sdk/anthropic@2.0.67", "", { "dependencies": { "@ai-sdk/provider": "2.0.1", "@ai-sdk/provider-utils": "3.0.21" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-hGtsfU1Dh1r9oBfctZy9+Wb8nSPiD8hBYIVYLGbFSPRrfliyBysJFaenHOGYR0Rd2R8O9ow2dxi05Qk5awerBw=="], @@ -14592,7 +14570,7 @@ "@ai-sdk/replicate/@ai-sdk/provider-utils": ["@ai-sdk/provider-utils@4.0.8", "", { "dependencies": { "@ai-sdk/provider": "3.0.4", "@standard-schema/spec": "^1.1.0", "eventsource-parser": "^3.0.6" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-ns9gN7MmpI8vTRandzgz+KK/zNMLzhrriiKECMt4euLtQFSBgNfydtagPOX4j4pS1/3KvHF6RivhT3gNQgBZsg=="], - "@ai-sdk/xai/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.33", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-HwptqeUS4vtDyjSSjmKCQExjoQMwPVq0C4pHH18i7c+3CQ0QN81HLvz3BdpULo0n/UtdQwTNISRqx3G5miPZhw=="], + "@ai-sdk/xai/@ai-sdk/openai-compatible": ["@ai-sdk/openai-compatible@2.0.31", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-e78xiImcTe2aCMQoFbVJluQmUV4XgahOmmehAuRPlcwzRv2KtkvuLCXPC9Xcy2u83e8SimVva9k9G8SvZcnaBA=="], "@anthropic-ai/sdk/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], @@ -14622,24 +14600,22 @@ "@atlaskit/interaction-context/@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="], - "@atlaskit/platform-feature-flags/@atlaskit/feature-gate-js-client": ["@atlaskit/feature-gate-js-client@5.5.9", "", { "dependencies": { "@atlaskit/atlassian-context": "^0.6.0", "@babel/runtime": "^7.0.0", "@statsig/client-core": "^3.27.0", "@statsig/js-client": "^3.27.0", "eventemitter3": "^4.0.0" } }, "sha512-VNUVeWeNt3MY1eiMqjeKwx64I+gUrzHPN9nJHkIs2uAGxuvGr4+329zJlzUefUtwJW9yIQYcqhJKfm6ZvmXuYQ=="], + "@atlaskit/platform-feature-flags/@atlaskit/feature-gate-js-client": ["@atlaskit/feature-gate-js-client@5.5.8", "", { "dependencies": { "@atlaskit/atlassian-context": "^0.6.0", "@babel/runtime": "^7.0.0", "@statsig/client-core": "^3.27.0", "@statsig/js-client": "^3.27.0", "eventemitter3": "^4.0.0" } }, "sha512-EpYMt1yWc/dnSc/B8t1EhKSiDI5T9wTSioxMeDTb1SDmTDga3F8dX/K3DneI1PUCmzt4g7ejMSmJ5swtuRxsRA=="], "@atlaskit/platform-feature-flags/@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="], - "@atlaskit/react-ufo/@atlaskit/feature-gate-js-client": ["@atlaskit/feature-gate-js-client@5.5.9", "", { "dependencies": { "@atlaskit/atlassian-context": "^0.6.0", "@babel/runtime": "^7.0.0", "@statsig/client-core": "^3.27.0", "@statsig/js-client": "^3.27.0", "eventemitter3": "^4.0.0" } }, "sha512-VNUVeWeNt3MY1eiMqjeKwx64I+gUrzHPN9nJHkIs2uAGxuvGr4+329zJlzUefUtwJW9yIQYcqhJKfm6ZvmXuYQ=="], + "@atlaskit/react-ufo/@atlaskit/feature-gate-js-client": ["@atlaskit/feature-gate-js-client@5.5.8", "", { "dependencies": { "@atlaskit/atlassian-context": "^0.6.0", "@babel/runtime": "^7.0.0", "@statsig/client-core": "^3.27.0", "@statsig/js-client": "^3.27.0", "eventemitter3": "^4.0.0" } }, "sha512-EpYMt1yWc/dnSc/B8t1EhKSiDI5T9wTSioxMeDTb1SDmTDga3F8dX/K3DneI1PUCmzt4g7ejMSmJ5swtuRxsRA=="], "@atlaskit/react-ufo/@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="], "@atlaskit/react-ufo/uuid": ["uuid@3.4.0", "", { "bin": { "uuid": "./bin/uuid" } }, "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="], - "@atlaskit/tmp-editor-statsig/@atlaskit/feature-gate-js-client": ["@atlaskit/feature-gate-js-client@5.5.9", "", { "dependencies": { "@atlaskit/atlassian-context": "^0.6.0", "@babel/runtime": "^7.0.0", "@statsig/client-core": "^3.27.0", "@statsig/js-client": "^3.27.0", "eventemitter3": "^4.0.0" } }, "sha512-VNUVeWeNt3MY1eiMqjeKwx64I+gUrzHPN9nJHkIs2uAGxuvGr4+329zJlzUefUtwJW9yIQYcqhJKfm6ZvmXuYQ=="], + "@atlaskit/tmp-editor-statsig/@atlaskit/feature-gate-js-client": ["@atlaskit/feature-gate-js-client@5.5.8", "", { "dependencies": { "@atlaskit/atlassian-context": "^0.6.0", "@babel/runtime": "^7.0.0", "@statsig/client-core": "^3.27.0", "@statsig/js-client": "^3.27.0", "eventemitter3": "^4.0.0" } }, "sha512-EpYMt1yWc/dnSc/B8t1EhKSiDI5T9wTSioxMeDTb1SDmTDga3F8dX/K3DneI1PUCmzt4g7ejMSmJ5swtuRxsRA=="], "@atlaskit/tmp-editor-statsig/@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="], "@atproto/api/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], - "@atproto/common-web/@atproto/syntax": ["@atproto/syntax@0.5.0", "", { "dependencies": { "tslib": "^2.8.1" } }, "sha512-UA2DSpGdOQzUQ4gi5SH+NEJz/YR3a3Fg3y2oh+xETDSiTRmA4VhHRCojhXAVsBxUT6EnItw190C/KN+DWW90kw=="], - "@atproto/common-web/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "@atproto/lex-data/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -14650,7 +14626,7 @@ "@atproto/syntax/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@atproto/xrpc/@atproto/lexicon": ["@atproto/lexicon@0.6.2", "", { "dependencies": { "@atproto/common-web": "^0.4.18", "@atproto/syntax": "^0.5.0", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-p3Ly6hinVZW0ETuAXZMeUGwuMm3g8HvQMQ41yyEE6AL0hAkfeKFaZKos6BdBrr6CjkpbrDZqE8M+5+QOceysMw=="], + "@atproto/xrpc/@atproto/lexicon": ["@atproto/lexicon@0.6.1", "", { "dependencies": { "@atproto/common-web": "^0.4.13", "@atproto/syntax": "^0.4.3", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-/vI1kVlY50Si+5MXpvOucelnYwb0UJ6Qto5mCp+7Q5C+Jtp+SoSykAPVvjVtTnQUH2vrKOFOwpb3C375vSKzXw=="], "@atproto/xrpc/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -14834,8 +14810,24 @@ "@aws-sdk/client-textract/@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.973.2", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "^3.972.17", "@aws-sdk/types": "^3.973.4", "@smithy/node-config-provider": "^4.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-lpaIuekdkpw7VRiik0IZmd6TyvEUcuLgKZ5fKRGpCA3I4PjrD/XH15sSwW+OptxQjNU4DEzSxag70spC9SluvA=="], + "@aws-sdk/client-textract/@smithy/core": ["@smithy/core@3.23.8", "", { "dependencies": { "@smithy/middleware-serde": "^4.2.12", "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.2", "@smithy/util-body-length-browser": "^4.2.2", "@smithy/util-middleware": "^4.2.11", "@smithy/util-stream": "^4.5.17", "@smithy/util-utf8": "^4.2.2", "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" } }, "sha512-f7uPeBi7ehmLT4YF2u9j3qx6lSnurG1DLXOsTtJrIRNDF7VXio4BGHQ+SQteN/BrUVudbkuL4v7oOsRCzq4BqA=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler": ["@smithy/fetch-http-handler@5.3.13", "", { "dependencies": { "@smithy/protocol-http": "^5.3.11", "@smithy/querystring-builder": "^4.2.11", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.2", "tslib": "^2.6.2" } }, "sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint": ["@smithy/middleware-endpoint@4.4.22", "", { "dependencies": { "@smithy/core": "^3.23.8", "@smithy/middleware-serde": "^4.2.12", "@smithy/node-config-provider": "^4.3.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.11", "@smithy/util-middleware": "^4.2.11", "tslib": "^2.6.2" } }, "sha512-sc81w1o4Jy+/MAQlY3sQ8C7CmSpcvIi3TAzXblUv2hjG11BBSJi/Cw8vDx5BxMxapuH2I+Gc+45vWsgU07WZRQ=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry": ["@smithy/middleware-retry@4.4.39", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/protocol-http": "^5.3.11", "@smithy/service-error-classification": "^4.2.11", "@smithy/smithy-client": "^4.12.2", "@smithy/types": "^4.13.0", "@smithy/util-middleware": "^4.2.11", "@smithy/util-retry": "^4.2.11", "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" } }, "sha512-MCVCxaCzuZgiHtHGV2Ke44nh6t4+8/tO+rTYOzrr2+G4nMLU/qbzNCWKBX54lyEaVcGQrfOJiG2f8imtiw+nIQ=="], + + "@aws-sdk/client-textract/@smithy/node-http-handler": ["@smithy/node-http-handler@4.4.14", "", { "dependencies": { "@smithy/abort-controller": "^4.2.11", "@smithy/protocol-http": "^5.3.11", "@smithy/querystring-builder": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A=="], + "@aws-sdk/client-textract/@smithy/protocol-http": ["@smithy/protocol-http@5.3.10", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A=="], + "@aws-sdk/client-textract/@smithy/smithy-client": ["@smithy/smithy-client@4.12.2", "", { "dependencies": { "@smithy/core": "^3.23.8", "@smithy/middleware-endpoint": "^4.4.22", "@smithy/middleware-stack": "^4.2.11", "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.17", "tslib": "^2.6.2" } }, "sha512-HezY3UuG0k4T+4xhFKctLXCA5N2oN+Rtv+mmL8Gt7YmsUY2yhmcLyW75qrSzldfj75IsCW/4UhY3s20KcFnZqA=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-browser": ["@smithy/util-defaults-mode-browser@4.3.38", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/smithy-client": "^4.12.2", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-c8P1mFLNxcsdAMabB8/VUQUbWzFmgujWi4bAXSggcqLYPc8V4U5abqFqOyn+dK4YT+q8UyCVkTO8807t4t2syA=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node": ["@smithy/util-defaults-mode-node@4.2.41", "", { "dependencies": { "@smithy/config-resolver": "^4.4.10", "@smithy/credential-provider-imds": "^4.2.11", "@smithy/node-config-provider": "^4.3.11", "@smithy/property-provider": "^4.2.11", "@smithy/smithy-client": "^4.12.2", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-/UG+9MT3UZAR0fLzOtMJMfWGcjjHvgggq924x/CRy8vRbL+yFf3Z6vETlvq8vDH92+31P/1gSOFoo7303wN8WQ=="], + "@aws-sdk/client-textract/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "@aws-sdk/core/@smithy/protocol-http": ["@smithy/protocol-http@5.3.10", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A=="], @@ -14862,6 +14854,8 @@ "@aws-sdk/credential-provider-process/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@aws-sdk/credential-provider-sso/@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.999.0", "", { "dependencies": { "@aws-sdk/core": "^3.973.15", "@aws-sdk/nested-clients": "^3.996.3", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-cx0hHUlgXULfykx4rdu/ciNAJaa3AL5xz3rieCz7NKJ68MJwlj3664Y8WR5MGgxfyYJBdamnkjNSx5Kekuc0cg=="], + "@aws-sdk/credential-provider-sso/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "@aws-sdk/credential-provider-web-identity/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -14966,7 +14960,7 @@ "@aws-sdk/util-user-agent-node/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.4.1", "", { "dependencies": { "fast-xml-builder": "^1.0.0", "strnum": "^2.1.2" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A=="], + "@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.3.6", "", { "dependencies": { "strnum": "^2.1.2" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-QNI3sAvSvaOiaMl8FYU4trnEzCwiRr8XMWgAHzlrWpTSj+QaCSvOf1h82OEP1s4hiAXhnbXSyFWCf4ldZzZRVA=="], "@aws-sdk/xml-builder/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -15168,6 +15162,8 @@ "@jridgewell/source-map/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@kapso/whatsapp-cloud-api/zod": ["zod@4.1.13", "", {}, "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig=="], + "@mailchain/api/axios": ["axios@1.6.0", "", { "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg=="], "@mailchain/crypto/@noble/curves": ["@noble/curves@0.8.3", "", { "dependencies": { "@noble/hashes": "1.3.0" } }, "sha512-OqaOf4RWDaCRuBKJLDURrgVxjLmneGsiCXGuzYB5y95YithZMA6w4uk34DHSm0rKMrrYiaeZj48/81EvaAScLQ=="], @@ -15186,14 +15182,12 @@ "@modelcontextprotocol/sdk/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], + "@modelcontextprotocol/sdk/eventsource-parser": ["eventsource-parser@3.0.6", "", {}, "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg=="], + "@npmcli/fs/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], "@npmcli/move-file/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], - "@nx/devkit/minimatch": ["minimatch@9.0.3", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg=="], - - "@nx/devkit/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - "@oclif/core/minimatch": ["minimatch@10.2.4", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg=="], "@oclif/core/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], @@ -15210,6 +15204,8 @@ "@octokit/request/fast-content-type-parse": ["fast-content-type-parse@2.0.1", "", {}, "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q=="], + "@openrouter/sdk/zod": ["zod@4.1.13", "", {}, "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig=="], + "@opentelemetry/auto-instrumentations-node/@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.206.0", "", { "dependencies": { "@opentelemetry/api-logs": "0.206.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^8.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-anPU9GAn3vSH/0JFQZ4e626xRw8p8R21kxM7xammFk9BRhfDw1IpgqvFMllbb+1MSHHEX9EiUqYHJyWo/B6KGA=="], "@opentelemetry/auto-instrumentations-node/@opentelemetry/instrumentation-http": ["@opentelemetry/instrumentation-http@0.206.0", "", { "dependencies": { "@opentelemetry/core": "2.1.0", "@opentelemetry/instrumentation": "0.206.0", "@opentelemetry/semantic-conventions": "^1.29.0", "forwarded-parse": "2.1.2" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-U355U6PpRSj5NDLqI8uY2SPp4uapuGASSGFLPoQbrqphHQ6pJrHDFBTR72a+S5XvHJo1PlLS84k4IOl+tXYPsA=="], @@ -15766,8 +15762,6 @@ "@readme/openapi-parser/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], - "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.12", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.10.0" } }, "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ=="], - "@rollup/pluginutils/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "@rollup/wasm-node/@types/estree": ["@types/estree@1.0.5", "", {}, "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="], @@ -15936,6 +15930,8 @@ "@tinyhttp/accepts/mime": ["mime@4.0.4", "", { "bin": { "mime": "bin/cli.js" } }, "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ=="], + "@tinyhttp/accepts/negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], + "@tinyhttp/res/mime": ["mime@4.0.4", "", { "bin": { "mime": "bin/cli.js" } }, "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ=="], "@tinyhttp/send/mime": ["mime@4.0.4", "", { "bin": { "mime": "bin/cli.js" } }, "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ=="], @@ -16018,6 +16014,8 @@ "@types/serve-static/@types/node": ["@types/node@22.7.5", "", { "dependencies": { "undici-types": "~6.19.2" } }, "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ=="], + "@types/serve-static/@types/send": ["@types/send@0.17.6", "", { "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og=="], + "@types/ssh2/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], "@types/tedious/@types/node": ["@types/node@22.7.5", "", { "dependencies": { "undici-types": "~6.19.2" } }, "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ=="], @@ -16056,13 +16054,9 @@ "@vitest/utils/@vitest/pretty-format": ["@vitest/pretty-format@3.0.8", "", { "dependencies": { "tinyrainbow": "^2.0.0" } }, "sha512-BNqwbEyitFhzYMYHUVbIvepOyeQOSFA/NeJMIP9enMntkkxLgOcgABH6fjyXG85ipTgvero6noreavGIqfJcIg=="], - "@yarnpkg/parsers/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], - - "@yarnpkg/parsers/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "aggregate-error/clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="], - "ai-gateway-provider/@ai-sdk/google-vertex": ["@ai-sdk/google-vertex@4.0.74", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.55", "@ai-sdk/google": "3.0.37", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.17", "google-auth-library": "^10.5.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-TJGMrXX/dS8Pm0SnBqSaGvXIqVTJvjA7fAPhwmHV8NAWAwEEoF2DvmAO7il2LieZ25ku8oUp2etbLOs4joY0Pw=="], + "ai-gateway-provider/@ai-sdk/google-vertex": ["@ai-sdk/google-vertex@4.0.68", "", { "dependencies": { "@ai-sdk/anthropic": "3.0.50", "@ai-sdk/google": "3.0.34", "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.16", "google-auth-library": "^10.5.0" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-jzSgEDiq2F+6JrqVQd5XKUJIBrBlgy1ZQXx62gZk3clJTUVj2QW9nPij/i30exeN2RNb+O6b/y+DlJtpHx9nOw=="], "airtable/@types/node": ["@types/node@14.18.63", "", {}, "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="], @@ -16078,8 +16072,6 @@ "api/@types/qs": ["@types/qs@6.9.7", "", {}, "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="], - "archiver/tar-stream": ["tar-stream@3.1.8", "", { "dependencies": { "b4a": "^1.6.4", "bare-fs": "^4.5.5", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ=="], - "are-we-there-yet/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], "aria-hidden/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -16116,12 +16108,16 @@ "bullmq/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], + "cacache/chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], + "cacache/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], "cacache/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], "cacache/rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], + "cacache/tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], + "cacheable-request/get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], "camel-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -16160,12 +16156,10 @@ "clone-response/mimic-response": ["mimic-response@1.0.1", "", {}, "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="], - "cmake-js/fs-extra": ["fs-extra@11.3.4", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA=="], + "cmake-js/fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="], "cmake-js/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - "cmake-js/tar": ["tar@7.5.9", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg=="], - "cmake-js/which": ["which@6.0.1", "", { "dependencies": { "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" } }, "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg=="], "cmdk/@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw=="], @@ -16190,8 +16184,6 @@ "conf/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - "config-chain/ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], - "contentful-management/globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], "contentful-sdk-core/qs": ["qs@6.15.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ=="], @@ -16234,6 +16226,8 @@ "did-jwt/canonicalize": ["canonicalize@2.1.0", "", { "bin": { "canonicalize": "bin/canonicalize.js" } }, "sha512-F705O3xrsUtgt98j7leetNhTWPe+5S72rlL5O4jA1pKqBVQ/dT1O1D6PFxmSXvc0SUOinWS57DKx0I3CHrXJHQ=="], + "did-jwt/elliptic": ["elliptic@6.6.1", "", { "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.1", "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" } }, "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g=="], + "did-jwt/uint8arrays": ["uint8arrays@3.1.1", "", { "dependencies": { "multiformats": "^9.4.2" } }, "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg=="], "docusign-esign/csv-stringify": ["csv-stringify@1.1.2", "", { "dependencies": { "lodash.get": "~4.4.2" } }, "sha512-3NmNhhd+AkYs5YtM1GEh01VR6PKj6qch2ayfQaltx5xpcAdThjnbbI5eT8CzRVpXfGKAxnmrSYLsNl/4f3eWiw=="], @@ -16348,8 +16342,6 @@ "framer-motion/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "front-matter/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], - "fs-merger/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], @@ -16368,8 +16360,6 @@ "glob/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - "global-dirs/ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], - "google-auth-library/gaxios": ["gaxios@5.1.3", "", { "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", "is-stream": "^2.0.0", "node-fetch": "^2.6.9" } }, "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA=="], "google-auth-library/jws": ["jws@4.0.1", "", { "dependencies": { "jwa": "^2.0.1", "safe-buffer": "^5.0.1" } }, "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA=="], @@ -16524,6 +16514,8 @@ "lower-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "lru-cache/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "mailparser/iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="], "mailparser/nodemailer": ["nodemailer@7.0.9", "", {}, "sha512-9/Qm0qXIByEP8lEV2qOqcAW7bRpL8CR9jcTwk3NBnHJNmP9fIJ86g2fgmIXqHY+nj55ZEMwWqYAT2QTDpRUYiQ=="], @@ -16538,6 +16530,8 @@ "make-fetch-happen/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "make-fetch-happen/negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], + "markdown-it/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="], @@ -16582,15 +16576,15 @@ "minipass-fetch/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "minipass-fetch/minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], + "minipass-flush/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], "minipass-pipeline/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], "minipass-sized/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], - "minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], - - "motion/framer-motion": ["framer-motion@12.35.0", "", { "dependencies": { "motion-dom": "^12.35.0", "motion-utils": "^12.29.2", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-w8hghCMQ4oq10j6aZh3U2yeEQv5K69O/seDI/41PK4HtgkLrcBovUNc0ayBC3UyyU7V1mrY2yLzvYdWJX9pGZQ=="], + "motion/framer-motion": ["framer-motion@12.34.3", "", { "dependencies": { "motion-dom": "^12.34.3", "motion-utils": "^12.29.2", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-v81ecyZKYO/DfpTwHivqkxSUBzvceOpoI+wLfgCgoUIKxlFKEXdg0oR9imxwXumT4SFy8vRk9xzJ5l3/Du/55Q=="], "motion/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -16600,14 +16594,6 @@ "mqtt-packet/bl": ["bl@6.1.6", "", { "dependencies": { "@types/readable-stream": "^4.0.0", "buffer": "^6.0.3", "inherits": "^2.0.4", "readable-stream": "^4.2.0" } }, "sha512-jLsPgN/YSvPUg9UX0Kd73CXpm2Psg9FxMeCSXnk3WBO3CMT10JMwijubhGfHCnFu6TPn1ei3b975dxv7K2pWVg=="], - "msw/cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], - - "msw/graphql": ["graphql@16.13.0", "", {}, "sha512-uSisMYERbaB9bkA9M4/4dnqyktaEkf1kMHNKq/7DHyxVeWqHQ2mBmVqm5u6/FVHwF3iCNalKcg82Zfl+tffWoA=="], - - "msw/tough-cookie": ["tough-cookie@6.0.0", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w=="], - - "msw/type-fest": ["type-fest@5.4.4", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw=="], - "mysql/bignumber.js": ["bignumber.js@9.0.0", "", {}, "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A=="], "mysql/readable-stream": ["readable-stream@2.3.7", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="], @@ -16634,27 +16620,9 @@ "node-gyp/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - "normalize-package-data/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - - "nx/cli-spinners": ["cli-spinners@2.6.1", "", {}, "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g=="], - - "nx/dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], - - "nx/dotenv-expand": ["dotenv-expand@11.0.7", "", { "dependencies": { "dotenv": "^16.4.5" } }, "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA=="], - - "nx/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], - - "nx/minimatch": ["minimatch@10.2.1", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A=="], + "node-gyp/tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], - "nx/ora": ["ora@5.3.0", "", { "dependencies": { "bl": "^4.0.3", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "log-symbols": "^4.0.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g=="], - - "nx/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - - "nx/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "nx/yaml": ["yaml@2.8.2", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A=="], - - "nx-cloud/dotenv": ["dotenv@10.0.0", "", {}, "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="], + "normalize-package-data/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], "openai/@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], @@ -16672,8 +16640,6 @@ "parse-bmfont-xml/xml2js": ["xml2js@0.5.0", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA=="], - "parse-json/lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], "pascal-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -16712,10 +16678,6 @@ "postman-request/uuid": ["uuid@3.4.0", "", { "bin": { "uuid": "./bin/uuid" } }, "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="], - "pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - - "pretty-format/react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "promise-retry/retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="], "prosemirror-markdown/@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog=="], @@ -16808,8 +16770,6 @@ "raw-body/iconv-lite": ["iconv-lite@0.7.0", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ=="], - "rc/ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], - "rc/strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], "react-remove-scroll/@types/react": ["@types/react@18.3.1", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw=="], @@ -16846,8 +16806,6 @@ "redis-memory-server/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], - "redis-memory-server/tar": ["tar@7.5.9", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg=="], - "redis-memory-server/uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], "refractor/prismjs": ["prismjs@1.27.0", "", {}, "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA=="], @@ -16864,8 +16822,6 @@ "rollup/@types/estree": ["@types/estree@1.0.5", "", {}, "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="], - "router/path-to-regexp": ["path-to-regexp@8.3.0", "", {}, "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA=="], - "rss-parser/xml2js": ["xml2js@0.5.0", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA=="], "rtl-css-js/@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="], @@ -16904,9 +16860,9 @@ "slice-ansi/is-fullwidth-code-point": ["is-fullwidth-code-point@4.0.0", "", {}, "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ=="], - "snowflake-sdk/@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.1001.0", "", { "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.16", "@aws-sdk/credential-provider-node": "^3.972.15", "@aws-sdk/middleware-bucket-endpoint": "^3.972.6", "@aws-sdk/middleware-expect-continue": "^3.972.6", "@aws-sdk/middleware-flexible-checksums": "^3.973.2", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-location-constraint": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-sdk-s3": "^3.972.16", "@aws-sdk/middleware-ssec": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.16", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/signature-v4-multi-region": "^3.996.4", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.1", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/eventstream-serde-browser": "^4.2.10", "@smithy/eventstream-serde-config-resolver": "^4.3.10", "@smithy/eventstream-serde-node": "^4.2.10", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-blob-browser": "^4.2.11", "@smithy/hash-node": "^4.2.10", "@smithy/hash-stream-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/md5-js": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-stream": "^4.5.16", "@smithy/util-utf8": "^4.2.1", "@smithy/util-waiter": "^4.2.10", "tslib": "^2.6.2" } }, "sha512-uKgFjQuBjMcd0iigLQwnqIp9gOy/5TGBxa42rcb6l5byDt1mrwOe6fyWTEUEJaNHG2LKYSPUibteGvM1zfm0Rw=="], + "snowflake-sdk/@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.1000.0", "", { "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.15", "@aws-sdk/credential-provider-node": "^3.972.14", "@aws-sdk/middleware-bucket-endpoint": "^3.972.6", "@aws-sdk/middleware-expect-continue": "^3.972.6", "@aws-sdk/middleware-flexible-checksums": "^3.973.1", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-location-constraint": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-sdk-s3": "^3.972.15", "@aws-sdk/middleware-ssec": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.15", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/signature-v4-multi-region": "^3.996.3", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.0", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.6", "@smithy/eventstream-serde-browser": "^4.2.10", "@smithy/eventstream-serde-config-resolver": "^4.3.10", "@smithy/eventstream-serde-node": "^4.2.10", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/hash-blob-browser": "^4.2.11", "@smithy/hash-node": "^4.2.10", "@smithy/hash-stream-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/md5-js": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.20", "@smithy/middleware-retry": "^4.4.37", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.12", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.36", "@smithy/util-defaults-mode-node": "^4.2.39", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-stream": "^4.5.15", "@smithy/util-utf8": "^4.2.1", "@smithy/util-waiter": "^4.2.10", "tslib": "^2.6.2" } }, "sha512-7kPy33qNGq3NfwHC0412T6LDK1bp4+eiPzetX0sVd9cpTSXuQDKpoOFnB0Njj6uZjJDcLS3n2OeyarwwgkQ0Ow=="], - "snowflake-sdk/@aws-sdk/client-sts": ["@aws-sdk/client-sts@3.1001.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.16", "@aws-sdk/credential-provider-node": "^3.972.15", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.16", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.1", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-1HVxJcad+BTMVQ4lN2jw4SzyVqnIRZ7mb8YjwqMQ6p1MjuklSriVUXKtYFyxLVJnqaw61nFv9F8oHMOK69p6BQ=="], + "snowflake-sdk/@aws-sdk/client-sts": ["@aws-sdk/client-sts@3.1000.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.15", "@aws-sdk/credential-provider-node": "^3.972.14", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.15", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.0", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.6", "@smithy/fetch-http-handler": "^5.3.11", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.20", "@smithy/middleware-retry": "^4.4.37", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.12", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.0", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.36", "@smithy/util-defaults-mode-node": "^4.2.39", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-PMUloaoajk/YxLWh4OFC5H8wauISkeG5/OS/I0ZeptMVq36hKQmJgYFhOqcCWAm6u/88JX9XztmKCTX8CyFPVg=="], "snowflake-sdk/@azure/storage-blob": ["@azure/storage-blob@12.26.0", "", { "dependencies": { "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.4.0", "@azure/core-client": "^1.6.2", "@azure/core-http-compat": "^2.0.0", "@azure/core-lro": "^2.2.0", "@azure/core-paging": "^1.1.1", "@azure/core-rest-pipeline": "^1.10.1", "@azure/core-tracing": "^1.1.2", "@azure/core-util": "^1.6.1", "@azure/core-xml": "^1.4.3", "@azure/logger": "^1.0.0", "events": "^3.0.0", "tslib": "^2.2.0" } }, "sha512-SriLPKezypIsiZ+TtlFfE46uuBIap2HeaQVS78e1P7rz5OSbq0rsd52WE1mC5f7vAeLiXqv7I7oRhL3WFZEw3Q=="], @@ -16936,6 +16892,8 @@ "sqlite3/node-addon-api": ["node-addon-api@7.1.1", "", {}, "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ=="], + "sqlite3/tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], + "sshpk/tweetnacl": ["tweetnacl@0.14.5", "", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="], "ssri/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], @@ -16964,11 +16922,9 @@ "svix/uuid": ["uuid@10.0.0", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ=="], - "tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], - "tar-fs/chownr": ["chownr@1.1.4", "", {}, "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="], - "tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + "tar-fs/tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], "teeny-request/http-proxy-agent": ["http-proxy-agent@5.0.0", "", { "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w=="], @@ -17076,8 +17032,6 @@ "web/sonner": ["sonner@2.0.7", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w=="], - "web/zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], - "webpack/eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], "webpack-cli/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], @@ -17120,6 +17074,10 @@ "zustand/use-sync-external-store": ["use-sync-external-store@1.2.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA=="], + "@activepieces/piece-ai/@modelcontextprotocol/sdk/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], + + "@activepieces/piece-ai/@modelcontextprotocol/sdk/zod": ["zod@4.1.13", "", {}, "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig=="], + "@activepieces/piece-amazon-secrets-manager/@aws-sdk/client-secrets-manager/@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.989.0", "", { "dependencies": { "@aws-sdk/types": "^3.973.1", "@smithy/types": "^4.12.0", "@smithy/url-parser": "^4.2.8", "@smithy/util-endpoints": "^3.2.8", "tslib": "^2.6.2" } }, "sha512-eKmAOeQM4Qusq0jtcbZPiNWky8XaojByKC/n+THbJ8vJf7t4ys8LlcZ4PrBSHZISe9cC484mQsPVOQh6iySjqw=="], "@activepieces/piece-amazon-secrets-manager/@aws-sdk/client-secrets-manager/@smithy/protocol-http": ["@smithy/protocol-http@5.3.10", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A=="], @@ -17136,6 +17094,10 @@ "@activepieces/piece-rabbitmq/@types/amqplib/@types/node": ["@types/node@22.7.5", "", { "dependencies": { "undici-types": "~6.19.2" } }, "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ=="], + "@activepieces/piece-roe-ai/@modelcontextprotocol/sdk/ajv": ["ajv@8.18.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A=="], + + "@activepieces/piece-roe-ai/@modelcontextprotocol/sdk/zod": ["zod@4.1.13", "", {}, "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig=="], + "@ai-sdk/google-vertex/@ai-sdk/provider-utils/eventsource-parser": ["eventsource-parser@3.0.6", "", {}, "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg=="], "@ai-sdk/google-vertex/google-auth-library/gaxios": ["gaxios@7.1.3", "", { "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", "node-fetch": "^3.3.2", "rimraf": "^5.0.1" } }, "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ=="], @@ -17208,22 +17170,18 @@ "@atlaskit/editor-prosemirror/prosemirror-view/prosemirror-transform": ["prosemirror-transform@1.11.0", "", { "dependencies": { "prosemirror-model": "^1.21.0" } }, "sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw=="], - "@atlaskit/platform-feature-flags/@atlaskit/feature-gate-js-client/@atlaskit/atlassian-context": ["@atlaskit/atlassian-context@0.6.1", "", { "dependencies": { "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0 || ^19.0.0" } }, "sha512-NZRjUyVeLXjV1A3AsSBUL8sKN3Y2gIsf32M3pq+8pGeEhLFDdLqDSVH/mBiyuA1U7XmeoRecSe2ZgZiNr2TE4w=="], + "@atlaskit/platform-feature-flags/@atlaskit/feature-gate-js-client/@atlaskit/atlassian-context": ["@atlaskit/atlassian-context@0.6.0", "", { "dependencies": { "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-TjaV1OIjP8DaOyaqzPI5OkYvVckn3hYwE92v8RcdnpOiMKI0taedg1sLXD7x0nPx5MtXPmCJNNVJJprDN7pmxQ=="], "@atlaskit/platform-feature-flags/@atlaskit/feature-gate-js-client/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], - "@atlaskit/react-ufo/@atlaskit/feature-gate-js-client/@atlaskit/atlassian-context": ["@atlaskit/atlassian-context@0.6.1", "", { "dependencies": { "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0 || ^19.0.0" } }, "sha512-NZRjUyVeLXjV1A3AsSBUL8sKN3Y2gIsf32M3pq+8pGeEhLFDdLqDSVH/mBiyuA1U7XmeoRecSe2ZgZiNr2TE4w=="], + "@atlaskit/react-ufo/@atlaskit/feature-gate-js-client/@atlaskit/atlassian-context": ["@atlaskit/atlassian-context@0.6.0", "", { "dependencies": { "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-TjaV1OIjP8DaOyaqzPI5OkYvVckn3hYwE92v8RcdnpOiMKI0taedg1sLXD7x0nPx5MtXPmCJNNVJJprDN7pmxQ=="], "@atlaskit/react-ufo/@atlaskit/feature-gate-js-client/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], - "@atlaskit/tmp-editor-statsig/@atlaskit/feature-gate-js-client/@atlaskit/atlassian-context": ["@atlaskit/atlassian-context@0.6.1", "", { "dependencies": { "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0 || ^19.0.0" } }, "sha512-NZRjUyVeLXjV1A3AsSBUL8sKN3Y2gIsf32M3pq+8pGeEhLFDdLqDSVH/mBiyuA1U7XmeoRecSe2ZgZiNr2TE4w=="], + "@atlaskit/tmp-editor-statsig/@atlaskit/feature-gate-js-client/@atlaskit/atlassian-context": ["@atlaskit/atlassian-context@0.6.0", "", { "dependencies": { "@babel/runtime": "^7.0.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-TjaV1OIjP8DaOyaqzPI5OkYvVckn3hYwE92v8RcdnpOiMKI0taedg1sLXD7x0nPx5MtXPmCJNNVJJprDN7pmxQ=="], "@atlaskit/tmp-editor-statsig/@atlaskit/feature-gate-js-client/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], - "@atproto/common-web/@atproto/syntax/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "@atproto/xrpc/@atproto/lexicon/@atproto/syntax": ["@atproto/syntax@0.5.0", "", { "dependencies": { "tslib": "^2.8.1" } }, "sha512-UA2DSpGdOQzUQ4gi5SH+NEJz/YR3a3Fg3y2oh+xETDSiTRmA4VhHRCojhXAVsBxUT6EnItw190C/KN+DWW90kw=="], - "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], "@aws-crypto/sha256-browser/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], @@ -17306,8 +17264,22 @@ "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.723.0", "", { "dependencies": { "@aws-sdk/core": "3.723.0", "@aws-sdk/types": "3.723.0", "@smithy/property-provider": "^4.0.0", "@smithy/types": "^4.0.0", "tslib": "^2.6.2" }, "peerDependencies": { "@aws-sdk/client-sts": "^3.723.0" } }, "sha512-tl7pojbFbr3qLcOE6xWaNCf1zEfZrIdSJtOPeSXfV/thFMMAvIjgf3YN6Zo1a6cxGee8zrV/C8PgOH33n+Ev/A=="], + "@aws-sdk/client-textract/@aws-sdk/core/@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.972.9", "", { "dependencies": { "@smithy/types": "^4.13.0", "fast-xml-parser": "5.4.1", "tslib": "^2.6.2" } }, "sha512-ItnlMgSqkPrUfJs7EsvU/01zw5UeIb2tNPhD09LBLHbg+g+HDiKibSLwpkuz/ZIlz4F2IMn+5XgE4AK/pfPuog=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/property-provider": ["@smithy/property-provider@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/signature-v4": ["@smithy/signature-v4@5.3.10", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.1", "@smithy/protocol-http": "^5.3.10", "@smithy/types": "^4.13.0", "@smithy/util-hex-encoding": "^4.2.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-uri-escape": "^4.2.1", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-Wab3wW8468WqTKIxI+aZe3JYO52/RYT/8sDOdzkUhjnLakLe9qoQqIcfih/qxcF4qWEFoWBszY0mj5uxffaVXA=="], + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.972.15", "", { "dependencies": { "@aws-sdk/core": "^3.973.17", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-RhHQG1lhkWHL4tK1C/KDjaOeis+9U0tAMnWDiwiSVQZMC7CsST9Xin+sK89XywJ5g/tyABtb7TvFePJ4Te5XSQ=="], "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.972.17", "", { "dependencies": { "@aws-sdk/core": "^3.973.17", "@aws-sdk/types": "^3.973.4", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/node-http-handler": "^4.4.13", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/util-stream": "^4.5.16", "tslib": "^2.6.2" } }, "sha512-b/bDL76p51+yQ+0O9ZDH5nw/ioE0sRYkjwjOwFWAWZXo6it2kQZUOXhVpjohx3ldKyUxt/SwAivjUu1Nr/PWlQ=="], @@ -17320,6 +17292,78 @@ "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.972.15", "", { "dependencies": { "@aws-sdk/core": "^3.973.17", "@aws-sdk/nested-clients": "^3.996.5", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-QTH6k93v+UOfFam/ado8zc71tH+enTVyuvLy9uEWXX1x894dN5ovtf/MdBDgFwq3g6c9mbtgVJ4B+yBqDtXvdA=="], + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@smithy/credential-provider-imds": ["@smithy/credential-provider-imds@4.2.11", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/property-provider": "^4.2.11", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.11", "tslib": "^2.6.2" } }, "sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@smithy/property-provider": ["@smithy/property-provider@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@smithy/shared-ini-file-loader": ["@smithy/shared-ini-file-loader@4.4.6", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.12", "", { "dependencies": { "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-body-length-browser": ["@smithy/util-body-length-browser@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-stream": ["@smithy/util-stream@4.5.17", "", { "dependencies": { "@smithy/fetch-http-handler": "^5.3.13", "@smithy/node-http-handler": "^4.4.14", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.2", "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-hex-encoding": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/uuid": ["@smithy/uuid@1.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler/@smithy/querystring-builder": ["@smithy/querystring-builder@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "@smithy/util-uri-escape": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.12", "", { "dependencies": { "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/shared-ini-file-loader": ["@smithy/shared-ini-file-loader@4.4.6", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/url-parser": ["@smithy/url-parser@4.2.11", "", { "dependencies": { "@smithy/querystring-parser": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/service-error-classification": ["@smithy/service-error-classification@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0" } }, "sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/util-retry": ["@smithy/util-retry@4.2.11", "", { "dependencies": { "@smithy/service-error-classification": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/uuid": ["@smithy/uuid@1.1.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g=="], + + "@aws-sdk/client-textract/@smithy/node-http-handler/@smithy/abort-controller": ["@smithy/abort-controller@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ=="], + + "@aws-sdk/client-textract/@smithy/node-http-handler/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@smithy/node-http-handler/@smithy/querystring-builder": ["@smithy/querystring-builder@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "@smithy/util-uri-escape": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/middleware-stack": ["@smithy/middleware-stack@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/util-stream": ["@smithy/util-stream@4.5.17", "", { "dependencies": { "@smithy/fetch-http-handler": "^5.3.13", "@smithy/node-http-handler": "^4.4.14", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.2", "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-hex-encoding": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-browser/@smithy/property-provider": ["@smithy/property-provider@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/config-resolver": ["@smithy/config-resolver@4.4.10", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "@smithy/util-config-provider": "^4.2.2", "@smithy/util-endpoints": "^3.3.2", "@smithy/util-middleware": "^4.2.11", "tslib": "^2.6.2" } }, "sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/credential-provider-imds": ["@smithy/credential-provider-imds@4.2.11", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/property-provider": "^4.2.11", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.11", "tslib": "^2.6.2" } }, "sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/property-provider": ["@smithy/property-provider@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg=="], + "@aws-sdk/s3-request-presigner/@aws-sdk/signature-v4-multi-region/@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.894.0", "", { "dependencies": { "@aws-sdk/core": "3.894.0", "@aws-sdk/types": "3.893.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/core": "^3.11.1", "@smithy/node-config-provider": "^4.2.2", "@smithy/protocol-http": "^5.2.1", "@smithy/signature-v4": "^5.2.1", "@smithy/smithy-client": "^4.6.3", "@smithy/types": "^4.5.0", "@smithy/util-config-provider": "^4.1.0", "@smithy/util-middleware": "^4.1.1", "@smithy/util-stream": "^4.3.2", "@smithy/util-utf8": "^4.1.0", "tslib": "^2.6.2" } }, "sha512-0C3lTVdTuv5CkJ4LulpA7FmGFSKrGUKxnFZ6+qGjYjNzbdiHXfq0TyEBiDmVqDkoV2k4AT2H/m0Xw//rTkcNEQ=="], "@aws-sdk/s3-request-presigner/@aws-sdk/signature-v4-multi-region/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -17522,8 +17566,6 @@ "@npmcli/move-file/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "@nx/devkit/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - "@oclif/core/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], "@octokit/plugin-paginate-rest/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@24.2.0", "", {}, "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg=="], @@ -17662,8 +17704,6 @@ "@playwright/test/playwright/playwright-core": ["playwright-core@1.54.1", "", { "bin": { "playwright-core": "cli.js" } }, "sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA=="], - "@puppeteer/browsers/tar-fs/tar-stream": ["tar-stream@3.1.8", "", { "dependencies": { "b4a": "^1.6.4", "bare-fs": "^4.5.5", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ=="], - "@radix-ui/react-accessible-icon/@radix-ui/react-visually-hidden/@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="], "@radix-ui/react-accordion/@radix-ui/react-collapsible/@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA=="], @@ -17792,8 +17832,6 @@ "@radix-ui/react-tooltip/@radix-ui/react-popper/@radix-ui/rect": ["@radix-ui/rect@1.1.0", "", {}, "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg=="], - "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], - "@runwayml/sdk/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], "@segment/analytics-node/@segment/analytics-core/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], @@ -17902,8 +17940,6 @@ "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - "@yarnpkg/parsers/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - "ai-gateway-provider/@ai-sdk/google-vertex/google-auth-library": ["google-auth-library@10.6.1", "", { "dependencies": { "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "gaxios": "7.1.3", "gcp-metadata": "8.1.2", "google-logging-utils": "1.1.3", "jws": "^4.0.0" } }, "sha512-5awwuLrzNol+pFDmKJd0dKtZ0fPLAtoA5p7YO4ODsDu6ONJUVqbYwvv8y2ZBO5MBNp9TJXigB19710kYpBPdtA=="], "api/@types/nodemailer/@types/node": ["@types/node@22.7.5", "", { "dependencies": { "undici-types": "~6.19.2" } }, "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ=="], @@ -17914,6 +17950,14 @@ "broccoli-plugin/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "cacache/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "cacache/tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], + + "cacache/tar/minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], + + "cacache/tar/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "checkly/@typescript-eslint/typescript-estree/@typescript-eslint/types": ["@typescript-eslint/types@8.56.1", "", {}, "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw=="], "checkly/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.56.1", "", { "dependencies": { "@typescript-eslint/types": "8.56.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw=="], @@ -17944,12 +17988,6 @@ "cli-truncate/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], - "cmake-js/tar/chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], - - "cmake-js/tar/minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], - - "cmake-js/tar/yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], - "cmake-js/which/isexe": ["isexe@4.0.0", "", {}, "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw=="], "cmdk/@radix-ui/react-dialog/@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="], @@ -17986,6 +18024,8 @@ "degenerator/ast-types/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "did-jwt/elliptic/bn.js": ["bn.js@4.12.3", "", {}, "sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g=="], + "engine.io/@types/node/undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="], "eslint-plugin-import-x/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], @@ -18024,12 +18064,12 @@ "flat-cache/rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "front-matter/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - "fs-merger/fs-extra/jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], "fs-merger/fs-extra/universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], + "fs-minipass/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "gcp-metadata/gaxios/https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], "git-raw-commits/split2/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], @@ -18146,6 +18186,8 @@ "make-fetch-happen/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], + "make-fetch-happen/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "mdast-util-gfm-footnote/mdast-util-to-markdown/longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], "mdast-util-gfm-footnote/mdast-util-to-markdown/mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], @@ -18206,6 +18248,18 @@ "mdast-util-mdxjs-esm/mdast-util-to-markdown/zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + "minipass-collect/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "minipass-fetch/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "minipass-fetch/minizlib/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "minipass-flush/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "minipass-pipeline/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "minipass-sized/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "mysql/readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], "mysql/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], @@ -18214,11 +18268,13 @@ "node-fetch/whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - "nx/dotenv-expand/dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + "node-gyp/tar/chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], + + "node-gyp/tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], - "nx/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], + "node-gyp/tar/minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], - "nx/ora/cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], + "node-gyp/tar/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], "openai/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], @@ -18276,12 +18332,6 @@ "readdir-glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - "redis-memory-server/tar/chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], - - "redis-memory-server/tar/minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], - - "redis-memory-server/tar/yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], - "remark-stringify/mdast-util-to-markdown/longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], "remark-stringify/mdast-util-to-markdown/mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], @@ -18312,7 +18362,7 @@ "slackify-markdown/unist-util-visit/unist-util-visit-parents": ["unist-util-visit-parents@3.1.1", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } }, "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg=="], - "snowflake-sdk/@aws-sdk/client-s3/@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.996.4", "", { "dependencies": { "@aws-sdk/middleware-sdk-s3": "^3.972.16", "@aws-sdk/types": "^3.973.4", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-MGa8ro0onekYIiesHX60LwKdkxK3Kd61p7TTbLwZemBqlnD9OLrk9sXZdFOIxXanJ+3AaJnV/jiX866eD/4PDg=="], + "snowflake-sdk/@aws-sdk/client-s3/@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.996.3", "", { "dependencies": { "@aws-sdk/middleware-sdk-s3": "^3.972.15", "@aws-sdk/types": "^3.973.4", "@smithy/protocol-http": "^5.3.10", "@smithy/signature-v4": "^5.3.10", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-gQYI/Buwp0CAGQxY7mR5VzkP56rkWq2Y1ROkFuXh5XY94DsSjJw62B3I0N0lysQmtwiL2ht2KHI9NylM/RP4FA=="], "snowflake-sdk/@aws-sdk/client-s3/@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.996.3", "", { "dependencies": { "@aws-sdk/types": "^3.973.4", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-endpoints": "^3.3.1", "tslib": "^2.6.2" } }, "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ=="], @@ -18338,6 +18388,16 @@ "sort-on/dot-prop/type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="], + "sqlite3/tar/chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], + + "sqlite3/tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], + + "sqlite3/tar/minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], + + "sqlite3/tar/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + + "ssri/minipass/yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "stream-parser/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], "superagent/readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], @@ -18346,6 +18406,8 @@ "superagent/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "tar-fs/tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + "teeny-request/http-proxy-agent/@tootallnate/once": ["@tootallnate/once@2.0.0", "", {}, "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="], "teeny-request/http-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], @@ -18558,8 +18620,6 @@ "@atlaskit/editor-prosemirror/prosemirror-markdown/@types/markdown-it/@types/mdurl": ["@types/mdurl@2.0.0", "", {}, "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="], - "@atproto/xrpc/@atproto/lexicon/@atproto/syntax/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], "@aws-crypto/sha256-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], @@ -18590,6 +18650,24 @@ "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.723.0", "", { "dependencies": { "@aws-sdk/types": "3.723.0", "@smithy/property-provider": "^4.0.0", "@smithy/shared-ini-file-loader": "^4.0.0", "@smithy/types": "^4.0.0", "tslib": "^2.6.2" }, "peerDependencies": { "@aws-sdk/client-sso-oidc": "^3.723.0" } }, "sha512-hniWi1x4JHVwKElANh9afKIMUhAutHVBRD8zo6usr0PAoj+Waf220+1ULS74GXtLXAPCiNXl5Og+PHA7xT8ElQ=="], + "@aws-sdk/client-textract/@aws-sdk/core/@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.4.1", "", { "dependencies": { "fast-xml-builder": "^1.0.0", "strnum": "^2.1.2" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/node-config-provider/@smithy/shared-ini-file-loader": ["@smithy/shared-ini-file-loader@4.4.6", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/signature-v4/@smithy/protocol-http": ["@smithy/protocol-http@5.3.10", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/signature-v4/@smithy/util-middleware": ["@smithy/util-middleware@4.2.10", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-LxaQIWLp4y0r72eA8mwPNQ9va4h5KeLM0I3M/HV9klmFaY2kN766wf5vsTzmaOpNNb7GgXAd9a25P3h8T49PSA=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/signature-v4/@smithy/util-utf8": ["@smithy/util-utf8@4.2.1", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-DSIwNaWtmzrNQHv8g7DBGR9mulSit65KSj5ymGEIAknmIN8IpbZefEep10LaMG/P/xquwbmJ1h9ectz8z6mV6g=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/util-base64/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http/@smithy/util-stream": ["@smithy/util-stream@4.5.17", "", { "dependencies": { "@smithy/fetch-http-handler": "^5.3.13", "@smithy/node-http-handler": "^4.4.14", "@smithy/types": "^4.13.0", "@smithy/util-base64": "^4.3.2", "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-hex-encoding": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ=="], + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/credential-provider-login": ["@aws-sdk/credential-provider-login@3.972.15", "", { "dependencies": { "@aws-sdk/core": "^3.973.17", "@aws-sdk/nested-clients": "^3.996.5", "@aws-sdk/types": "^3.973.4", "@smithy/property-provider": "^4.2.10", "@smithy/protocol-http": "^5.3.10", "@smithy/shared-ini-file-loader": "^4.4.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-x92FJy34/95wgu+qOGD8SHcgh1hZ9Qx2uFtQEGn4m9Ljou8ICIv3Ybq5yxdB7A60S8ZGCQB0mIopmjJwiLbh5g=="], "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.996.5", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.17", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.17", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.2", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-zn0WApcULn7Rtl6T+KP2CQTZo/7wOa2YV1yHQnbijTQoi4YXQHM8s21JcJzt33/mqPh8AdvWX1f+83KvKuxlZw=="], @@ -18600,6 +18678,54 @@ "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.996.5", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "^3.973.17", "@aws-sdk/middleware-host-header": "^3.972.6", "@aws-sdk/middleware-logger": "^3.972.6", "@aws-sdk/middleware-recursion-detection": "^3.972.6", "@aws-sdk/middleware-user-agent": "^3.972.17", "@aws-sdk/region-config-resolver": "^3.972.6", "@aws-sdk/types": "^3.973.4", "@aws-sdk/util-endpoints": "^3.996.3", "@aws-sdk/util-user-agent-browser": "^3.972.6", "@aws-sdk/util-user-agent-node": "^3.973.2", "@smithy/config-resolver": "^4.4.9", "@smithy/core": "^3.23.7", "@smithy/fetch-http-handler": "^5.3.12", "@smithy/hash-node": "^4.2.10", "@smithy/invalid-dependency": "^4.2.10", "@smithy/middleware-content-length": "^4.2.10", "@smithy/middleware-endpoint": "^4.4.21", "@smithy/middleware-retry": "^4.4.38", "@smithy/middleware-serde": "^4.2.11", "@smithy/middleware-stack": "^4.2.10", "@smithy/node-config-provider": "^4.3.10", "@smithy/node-http-handler": "^4.4.13", "@smithy/protocol-http": "^5.3.10", "@smithy/smithy-client": "^4.12.1", "@smithy/types": "^4.13.0", "@smithy/url-parser": "^4.2.10", "@smithy/util-base64": "^4.3.1", "@smithy/util-body-length-browser": "^4.2.1", "@smithy/util-body-length-node": "^4.2.2", "@smithy/util-defaults-mode-browser": "^4.3.37", "@smithy/util-defaults-mode-node": "^4.2.40", "@smithy/util-endpoints": "^3.3.1", "@smithy/util-middleware": "^4.2.10", "@smithy/util-retry": "^4.2.10", "@smithy/util-utf8": "^4.2.1", "tslib": "^2.6.2" } }, "sha512-zn0WApcULn7Rtl6T+KP2CQTZo/7wOa2YV1yHQnbijTQoi4YXQHM8s21JcJzt33/mqPh8AdvWX1f+83KvKuxlZw=="], + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@smithy/credential-provider-imds/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@smithy/credential-provider-imds/@smithy/url-parser": ["@smithy/url-parser@4.2.11", "", { "dependencies": { "@smithy/querystring-parser": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-base64/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-stream/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-stream/@smithy/util-hex-encoding": ["@smithy/util-hex-encoding@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler/@smithy/querystring-builder/@smithy/util-uri-escape": ["@smithy/util-uri-escape@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler/@smithy/util-base64/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler/@smithy/util-base64/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/middleware-serde/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/node-config-provider/@smithy/property-provider": ["@smithy/property-provider@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg=="], + + "@aws-sdk/client-textract/@smithy/middleware-endpoint/@smithy/url-parser/@smithy/querystring-parser": ["@smithy/querystring-parser@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/node-config-provider/@smithy/property-provider": ["@smithy/property-provider@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg=="], + + "@aws-sdk/client-textract/@smithy/middleware-retry/@smithy/node-config-provider/@smithy/shared-ini-file-loader": ["@smithy/shared-ini-file-loader@4.4.6", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw=="], + + "@aws-sdk/client-textract/@smithy/node-http-handler/@smithy/querystring-builder/@smithy/util-uri-escape": ["@smithy/util-uri-escape@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/util-stream/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/util-stream/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/util-stream/@smithy/util-hex-encoding": ["@smithy/util-hex-encoding@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/util-stream/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/config-resolver/@smithy/util-config-provider": ["@smithy/util-config-provider@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/config-resolver/@smithy/util-endpoints": ["@smithy/util-endpoints@3.3.2", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/config-resolver/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/credential-provider-imds/@smithy/url-parser": ["@smithy/url-parser@4.2.11", "", { "dependencies": { "@smithy/querystring-parser": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/node-config-provider/@smithy/shared-ini-file-loader": ["@smithy/shared-ini-file-loader@4.4.6", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw=="], + "@aws-sdk/s3-request-presigner/@aws-sdk/signature-v4-multi-region/@aws-sdk/middleware-sdk-s3/@aws-sdk/core": ["@aws-sdk/core@3.894.0", "", { "dependencies": { "@aws-sdk/types": "3.893.0", "@aws-sdk/xml-builder": "3.894.0", "@smithy/core": "^3.11.1", "@smithy/node-config-provider": "^4.2.2", "@smithy/property-provider": "^4.1.1", "@smithy/protocol-http": "^5.2.1", "@smithy/signature-v4": "^5.2.1", "@smithy/smithy-client": "^4.6.3", "@smithy/types": "^4.5.0", "@smithy/util-base64": "^4.1.0", "@smithy/util-body-length-browser": "^4.1.0", "@smithy/util-middleware": "^4.1.1", "@smithy/util-utf8": "^4.1.0", "tslib": "^2.6.2" } }, "sha512-7zbO31NV2FaocmMtWOg/fuTk3PC2Ji2AC0Fi2KqrppEDIcwLlTTuT9w/rdu/93Pz+wyUhCxWnDc0tPbwtCLs+A=="], "@aws-sdk/s3-request-presigner/@aws-sdk/signature-v4-multi-region/@aws-sdk/middleware-sdk-s3/@aws-sdk/util-arn-parser": ["@aws-sdk/util-arn-parser@3.893.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA=="], @@ -18740,8 +18866,6 @@ "@radix-ui/react-toolbar/@radix-ui/react-roving-focus/@radix-ui/react-collection/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], - "@rolldown/binding-wasm32-wasi/@napi-rs/wasm-runtime/@tybys/wasm-util/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@so-ric/colorspace/color/color-convert/color-name": ["color-name@2.1.0", "", {}, "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg=="], "@so-ric/colorspace/color/color-string/color-name": ["color-name@2.1.0", "", {}, "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg=="], @@ -18778,8 +18902,6 @@ "@tryfabric/martian/unified/vfile/vfile-message": ["vfile-message@2.0.4", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" } }, "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ=="], - "@yarnpkg/parsers/js-yaml/argparse/sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - "ai-gateway-provider/@ai-sdk/google-vertex/google-auth-library/gaxios": ["gaxios@7.1.3", "", { "dependencies": { "extend": "^3.0.2", "https-proxy-agent": "^7.0.1", "node-fetch": "^3.3.2", "rimraf": "^5.0.1" } }, "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ=="], "ai-gateway-provider/@ai-sdk/google-vertex/google-auth-library/gcp-metadata": ["gcp-metadata@8.1.2", "", { "dependencies": { "gaxios": "^7.0.0", "google-logging-utils": "^1.0.0", "json-bigint": "^1.0.0" } }, "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg=="], @@ -18788,6 +18910,8 @@ "api/@types/nodemailer/@types/node/undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="], + "cacache/tar/minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "checkly/@typescript-eslint/typescript-estree/@typescript-eslint/visitor-keys/eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], "checkly/@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@5.0.4", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg=="], @@ -18820,8 +18944,6 @@ "eslint-plugin-testing-library/@typescript-eslint/utils/eslint-scope/estraverse": ["estraverse@4.3.0", "", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], - "front-matter/js-yaml/argparse/sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - "gcp-metadata/gaxios/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], "google-auth-library/gaxios/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], @@ -18866,7 +18988,7 @@ "mdast-util-mdx-jsx/parse-entities/is-alphanumerical/is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], - "nx/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], + "node-gyp/tar/minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], @@ -18928,6 +19050,8 @@ "snowflake-sdk/jsonwebtoken/jws/jwa": ["jwa@2.0.1", "", { "dependencies": { "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg=="], + "sqlite3/tar/minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "vaul/@radix-ui/react-dialog/@radix-ui/react-dismissable-layer/@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], "vaul/@radix-ui/react-dialog/@radix-ui/react-focus-scope/@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], @@ -18940,6 +19064,8 @@ "vite-plugin-checker/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "web/motion/framer-motion/motion-dom": ["motion-dom@12.35.0", "", { "dependencies": { "motion-utils": "^12.29.2" } }, "sha512-FFMLEnIejK/zDABn+vqGVAUN4T0+3fw+cVAY8MMT65yR+j5uMuvWdd4npACWhh94OVWQs79CrBBuwOwGRZAQiA=="], + "@activepieces/piece-google-vertexai/@google/genai/protobufjs/@types/node/undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="], "@atlaskit/editor-json-transformer/@atlaskit/editor-prosemirror/prosemirror-commands/prosemirror-state/prosemirror-view": ["prosemirror-view@1.41.6", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg=="], @@ -19002,6 +19128,106 @@ "@aws-sdk/client-ses/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/token-providers/@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.864.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.864.0", "@aws-sdk/middleware-host-header": "3.862.0", "@aws-sdk/middleware-logger": "3.862.0", "@aws-sdk/middleware-recursion-detection": "3.862.0", "@aws-sdk/middleware-user-agent": "3.864.0", "@aws-sdk/region-config-resolver": "3.862.0", "@aws-sdk/types": "3.862.0", "@aws-sdk/util-endpoints": "3.862.0", "@aws-sdk/util-user-agent-browser": "3.862.0", "@aws-sdk/util-user-agent-node": "3.864.0", "@smithy/config-resolver": "^4.1.5", "@smithy/core": "^3.8.0", "@smithy/fetch-http-handler": "^5.1.1", "@smithy/hash-node": "^4.0.5", "@smithy/invalid-dependency": "^4.0.5", "@smithy/middleware-content-length": "^4.0.5", "@smithy/middleware-endpoint": "^4.1.18", "@smithy/middleware-retry": "^4.1.19", "@smithy/middleware-serde": "^4.0.9", "@smithy/middleware-stack": "^4.0.5", "@smithy/node-config-provider": "^4.1.4", "@smithy/node-http-handler": "^4.1.1", "@smithy/protocol-http": "^5.1.3", "@smithy/smithy-client": "^4.4.10", "@smithy/types": "^4.3.2", "@smithy/url-parser": "^4.0.5", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.26", "@smithy/util-defaults-mode-node": "^4.0.26", "@smithy/util-endpoints": "^3.0.7", "@smithy/util-middleware": "^4.0.5", "@smithy/util-retry": "^4.0.7", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-H1C+NjSmz2y8Tbgh7Yy89J20yD/hVyk15hNoZDbCYkXg0M358KS7KVIEYs8E2aPOCr1sK3HBE819D/yvdMgokA=="], + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/util-base64/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/core/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http/@smithy/util-stream/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http/@smithy/util-stream/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http/@smithy/util-stream/@smithy/util-hex-encoding": ["@smithy/util-hex-encoding@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http/@smithy/util-stream/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/credential-provider-login/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/config-resolver": ["@smithy/config-resolver@4.4.10", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "@smithy/util-config-provider": "^4.2.2", "@smithy/util-endpoints": "^3.3.2", "@smithy/util-middleware": "^4.2.11", "tslib": "^2.6.2" } }, "sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.12", "", { "dependencies": { "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/middleware-stack": ["@smithy/middleware-stack@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/url-parser": ["@smithy/url-parser@4.2.11", "", { "dependencies": { "@smithy/querystring-parser": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-body-length-browser": ["@smithy/util-body-length-browser@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-endpoints": ["@smithy/util-endpoints@3.3.2", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-retry": ["@smithy/util-retry@4.2.11", "", { "dependencies": { "@smithy/service-error-classification": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/config-resolver": ["@smithy/config-resolver@4.4.10", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "@smithy/util-config-provider": "^4.2.2", "@smithy/util-endpoints": "^3.3.2", "@smithy/util-middleware": "^4.2.11", "tslib": "^2.6.2" } }, "sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.12", "", { "dependencies": { "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/middleware-stack": ["@smithy/middleware-stack@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/url-parser": ["@smithy/url-parser@4.2.11", "", { "dependencies": { "@smithy/querystring-parser": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-body-length-browser": ["@smithy/util-body-length-browser@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-endpoints": ["@smithy/util-endpoints@3.3.2", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-retry": ["@smithy/util-retry@4.2.11", "", { "dependencies": { "@smithy/service-error-classification": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/config-resolver": ["@smithy/config-resolver@4.4.10", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "@smithy/util-config-provider": "^4.2.2", "@smithy/util-endpoints": "^3.3.2", "@smithy/util-middleware": "^4.2.11", "tslib": "^2.6.2" } }, "sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.12", "", { "dependencies": { "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/middleware-stack": ["@smithy/middleware-stack@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/node-config-provider": ["@smithy/node-config-provider@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.11", "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/protocol-http": ["@smithy/protocol-http@5.3.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/url-parser": ["@smithy/url-parser@4.2.11", "", { "dependencies": { "@smithy/querystring-parser": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-base64": ["@smithy/util-base64@4.3.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-body-length-browser": ["@smithy/util-body-length-browser@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-endpoints": ["@smithy/util-endpoints@3.3.2", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-middleware": ["@smithy/util-middleware@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-retry": ["@smithy/util-retry@4.2.11", "", { "dependencies": { "@smithy/service-error-classification": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-utf8": ["@smithy/util-utf8@4.2.2", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@smithy/credential-provider-imds/@smithy/url-parser/@smithy/querystring-parser": ["@smithy/querystring-parser@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-base64/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-stream/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@smithy/core/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@smithy/fetch-http-handler/@smithy/util-base64/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@smithy/smithy-client/@smithy/util-stream/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@smithy/util-defaults-mode-node/@smithy/credential-provider-imds/@smithy/url-parser/@smithy/querystring-parser": ["@smithy/querystring-parser@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ=="], + "@aws-sdk/s3-request-presigner/@aws-sdk/signature-v4-multi-region/@aws-sdk/middleware-sdk-s3/@aws-sdk/core/@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.894.0", "", { "dependencies": { "@smithy/types": "^4.5.0", "fast-xml-parser": "5.2.5", "tslib": "^2.6.2" } }, "sha512-E6EAMc9dT1a2DOdo4zyOf3fp5+NJ2wI+mcm7RaW1baFIWDwcb99PpvWoV7YEiK7oaBDshuOEGWKUSYXdW+JYgA=="], "@aws-sdk/signature-v4-multi-region/@aws-sdk/middleware-sdk-s3/@aws-sdk/core/@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.2.5", "", { "dependencies": { "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ=="], @@ -19066,6 +19292,38 @@ "slackify-markdown/remark-parse/mdast-util-from-markdown/unist-util-stringify-position/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http/@smithy/util-stream/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/config-resolver/@smithy/util-config-provider": ["@smithy/util-config-provider@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/url-parser/@smithy/querystring-parser": ["@smithy/querystring-parser@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-base64/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-retry/@smithy/service-error-classification": ["@smithy/service-error-classification@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0" } }, "sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/config-resolver/@smithy/util-config-provider": ["@smithy/util-config-provider@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/url-parser/@smithy/querystring-parser": ["@smithy/querystring-parser@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-base64/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-retry/@smithy/service-error-classification": ["@smithy/service-error-classification@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0" } }, "sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/config-resolver/@smithy/util-config-provider": ["@smithy/util-config-provider@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/url-parser/@smithy/querystring-parser": ["@smithy/querystring-parser@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0", "tslib": "^2.6.2" } }, "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-base64/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-retry/@smithy/service-error-classification": ["@smithy/service-error-classification@4.2.11", "", { "dependencies": { "@smithy/types": "^4.13.0" } }, "sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@4.2.2", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" } }, "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q=="], + "@aws-sdk/s3-request-presigner/@aws-sdk/signature-v4-multi-region/@aws-sdk/middleware-sdk-s3/@aws-sdk/core/@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.2.5", "", { "dependencies": { "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ=="], "@hyperdx/node-opentelemetry/@opentelemetry/auto-instrumentations-node/@opentelemetry/instrumentation-mysql/@types/mysql/@types/node/undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="], @@ -19106,6 +19364,18 @@ "slackify-markdown/remark-gfm/mdast-util-gfm/mdast-util-gfm-autolink-literal/mdast-util-find-and-replace/unist-util-visit-parents": ["unist-util-visit-parents@3.1.1", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } }, "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg=="], + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-base64/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-base64/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/nested-clients/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-base64/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + + "@aws-sdk/client-textract/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.2", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow=="], + "@hyperdx/node-opentelemetry/@opentelemetry/sdk-node/@opentelemetry/exporter-logs-otlp-grpc/@opentelemetry/otlp-transformer/protobufjs/@types/node/undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="], "@hyperdx/node-opentelemetry/@opentelemetry/sdk-node/@opentelemetry/exporter-logs-otlp-proto/@opentelemetry/otlp-transformer/protobufjs/@types/node/undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="], diff --git a/docs/build-pieces/building-pieces/setup-fork.mdx b/docs/build-pieces/building-pieces/setup-fork.mdx index 1824a2519c7..7fef06325b8 100644 --- a/docs/build-pieces/building-pieces/setup-fork.mdx +++ b/docs/build-pieces/building-pieces/setup-fork.mdx @@ -15,6 +15,16 @@ If you are on windows, please install [WSL](https://learn.microsoft.com/en-us/wi ![Fork Repository](/resources/screenshots/fork-repository.jpg) +3. Clone your fork using a shallow clone for faster setup: + +```bash +git clone --depth=1 https://github.com/YOUR_USERNAME/activepieces.git +``` + + +Using `--depth=1` reduces the clone size significantly by only fetching the latest commit instead of the full history. + + If you are an enterprise customer and want to use the private pieces feature, you can refer to the tutorial on how to set up a [private fork](../misc/private-fork). diff --git a/docs/build-pieces/misc/migrate-nx-to-turbo.mdx b/docs/build-pieces/misc/migrate-nx-to-turbo.mdx index 08ae24cedf6..46ce603cfcf 100644 --- a/docs/build-pieces/misc/migrate-nx-to-turbo.mdx +++ b/docs/build-pieces/misc/migrate-nx-to-turbo.mdx @@ -3,6 +3,10 @@ title: 'Migrate from Nx to Turbo' icon: 'rotate' --- + +The Activepieces monorepo has fully migrated to Turbo. This guide is kept for **historical reference** and for users with older forks that still use the Nx-based build system. + + If you have an existing fork with custom pieces built using the **old Nx-based build system**, you need to migrate them to the new **Turbo-based build system**. This guide explains what changed and provides a migration script. ## What Changed diff --git a/package.json b/package.json index 6250d9421f0..3076ce895c9 100644 --- a/package.json +++ b/package.json @@ -72,8 +72,7 @@ "@hookform/resolvers": "3.9.0", "@hyperdx/node-opentelemetry": "0.8.2", "@keyv/sqlite": "^3.0.0", - "@modelcontextprotocol/sdk": "1.26.0", - "@nx/devkit": "22.0.1", + "@modelcontextprotocol/sdk": "1.27.1", "@octokit/rest": "21.1.1", "@openrouter/ai-sdk-provider": "2.1.1", "@openrouter/sdk": "0.2.9", @@ -248,7 +247,6 @@ "node-cron": "3.0.3", "node-vault": "0.10.9", "nodemailer": "7.0.11", - "nx-cloud": "19.1.0", "object-sizeof": "2.6.3", "p-limit": "2.3.0", "pako": "2.1.0", @@ -316,7 +314,7 @@ "vaul": "1.1.2", "write-file-atomic": "5.0.1", "yaml": "2.4.1", - "zod": "4.1.13", + "zod": "4.3.6", "zone.js": "0.14.4", "zustand": "4.5.4" }, diff --git a/packages/cli/README.md b/packages/cli/README.md index d1b95a077fa..480dd3a004d 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -1,7 +1,5 @@ # cli -This library was generated with [Nx](https://nx.dev). +## Building -## Running unit tests - -Run `nx test cli` to execute the unit tests via [Jest](https://jestjs.io). +Run `turbo run build --filter=@activepieces/cli` to build the library. diff --git a/packages/ee/embed-sdk/README.md b/packages/ee/embed-sdk/README.md index 9c12687ddc5..650a85de062 100644 --- a/packages/ee/embed-sdk/README.md +++ b/packages/ee/embed-sdk/README.md @@ -1,9 +1,5 @@ # ee-embed-sdk -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx bundle ee-embed-sdk` to build the library. - -Check project.json "output" property to see the generated file location and its name. \ No newline at end of file +Run `turbo run build --filter=ee-embed-sdk` to build the library. diff --git a/packages/pieces/common/README.md b/packages/pieces/common/README.md index 05c7139934b..2e13d783697 100644 --- a/packages/pieces/common/README.md +++ b/packages/pieces/common/README.md @@ -1,7 +1,5 @@ # pieces-common -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-common` to build the library. +Run `turbo run build --filter=@activepieces/pieces-common` to build the library. diff --git a/packages/pieces/common/package.json b/packages/pieces/common/package.json index 17f1340e53d..3ddbf9591fb 100644 --- a/packages/pieces/common/package.json +++ b/packages/pieces/common/package.json @@ -1,6 +1,6 @@ { "name": "@activepieces/pieces-common", - "version": "0.11.7", + "version": "0.12.0", "type": "commonjs", "main": "./dist/src/index.js", "types": "./dist/src/index.d.ts", @@ -16,7 +16,7 @@ "form-data": "4.0.4", "mime-types": "2.1.35", "tslib": "2.6.2", - "zod": "4.1.13" + "zod": "4.3.6" }, "devDependencies": { "@types/mime-types": "2.1.1" diff --git a/packages/pieces/common/src/lib/helpers/index.ts b/packages/pieces/common/src/lib/helpers/index.ts index 21ab501a6e2..9dae9450a0a 100644 --- a/packages/pieces/common/src/lib/helpers/index.ts +++ b/packages/pieces/common/src/lib/helpers/index.ts @@ -7,7 +7,6 @@ import { StaticPropsValue, InputPropertyMap, FilesService, - DynamicPropsValue, AppConnectionValueForAuthProperty, ExtractPieceAuthPropertyTypeForMethods, ApFile, @@ -204,7 +203,7 @@ i.e ${getBaseUrlForDescription(baseUrl, auth)}/resource or /resource`, const bodyTypeInput = body_type as unknown as string; - const fields: DynamicPropsValue = {}; + const fields: InputPropertyMap = {}; switch (bodyTypeInput) { case 'none': diff --git a/packages/pieces/community/activecampaign/README.md b/packages/pieces/community/activecampaign/README.md index 7bbcfc724ba..4766847e7fc 100644 --- a/packages/pieces/community/activecampaign/README.md +++ b/packages/pieces/community/activecampaign/README.md @@ -1,7 +1,5 @@ # pieces-activecampaign -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-activecampaign` to build the library. +Run `turbo run build --filter=@activepieces/piece-activecampaign` to build the library. diff --git a/packages/pieces/community/activepieces/README.md b/packages/pieces/community/activepieces/README.md index 261bba246ce..0d102fb3df9 100644 --- a/packages/pieces/community/activepieces/README.md +++ b/packages/pieces/community/activepieces/README.md @@ -1,7 +1,5 @@ # pieces-activepieces -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-activepieces` to build the library. +Run `turbo run build --filter=@activepieces/piece-activepieces` to build the library. diff --git a/packages/pieces/community/actualbudget/README.md b/packages/pieces/community/actualbudget/README.md index f917429b047..7dd76474e62 100644 --- a/packages/pieces/community/actualbudget/README.md +++ b/packages/pieces/community/actualbudget/README.md @@ -1,7 +1,5 @@ # pieces-actualbudget -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-actualbudget` to build the library. +Run `turbo run build --filter=@activepieces/piece-actualbudget` to build the library. diff --git a/packages/pieces/community/acuity-scheduling/README.md b/packages/pieces/community/acuity-scheduling/README.md index 3ccfbe2adf1..aa45056b0fc 100644 --- a/packages/pieces/community/acuity-scheduling/README.md +++ b/packages/pieces/community/acuity-scheduling/README.md @@ -1,7 +1,5 @@ # pieces-acuity-scheduling -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-acuity-scheduling` to build the library. +Run `turbo run build --filter=@activepieces/piece-acuity-scheduling` to build the library. diff --git a/packages/pieces/community/acumbamail/README.md b/packages/pieces/community/acumbamail/README.md index 73f955bd9c5..3a76b018f44 100644 --- a/packages/pieces/community/acumbamail/README.md +++ b/packages/pieces/community/acumbamail/README.md @@ -1,7 +1,5 @@ # pieces-acumbamail -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-acumbamail` to build the library. +Run `turbo run build --filter=@activepieces/piece-acumbamail` to build the library. diff --git a/packages/pieces/community/afforai/README.md b/packages/pieces/community/afforai/README.md index 8a1cf590ccc..a537b29b7f9 100644 --- a/packages/pieces/community/afforai/README.md +++ b/packages/pieces/community/afforai/README.md @@ -1,7 +1,5 @@ # pieces-afforai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-afforai` to build the library. +Run `turbo run build --filter=@activepieces/piece-afforai` to build the library. diff --git a/packages/pieces/community/agentx/README.md b/packages/pieces/community/agentx/README.md index 2bb8208fe93..3aa894f5d16 100644 --- a/packages/pieces/community/agentx/README.md +++ b/packages/pieces/community/agentx/README.md @@ -1,7 +1,5 @@ # pieces-agentx -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-agentx` to build the library. +Run `turbo run build --filter=@activepieces/piece-agentx` to build the library. diff --git a/packages/pieces/community/ai/README.md b/packages/pieces/community/ai/README.md index 21aee7d6530..d15d510e546 100644 --- a/packages/pieces/community/ai/README.md +++ b/packages/pieces/community/ai/README.md @@ -1,7 +1,5 @@ # pieces-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-ai` to build the library. diff --git a/packages/pieces/community/ai/package.json b/packages/pieces/community/ai/package.json index 6e0b7af6d4e..55785f5505e 100644 --- a/packages/pieces/community/ai/package.json +++ b/packages/pieces/community/ai/package.json @@ -22,7 +22,7 @@ "ajv": "8.12.0", "mime-types": "2.1.35", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/aianswer/README.md b/packages/pieces/community/aianswer/README.md index 509434d8ce0..11630c00e2d 100644 --- a/packages/pieces/community/aianswer/README.md +++ b/packages/pieces/community/aianswer/README.md @@ -1,7 +1,5 @@ # pieces-aianswer -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-aianswer` to build the library. +Run `turbo run build --filter=@activepieces/piece-aianswer` to build the library. diff --git a/packages/pieces/community/aidbase/README.md b/packages/pieces/community/aidbase/README.md index 9491790b401..efc0812ed9b 100644 --- a/packages/pieces/community/aidbase/README.md +++ b/packages/pieces/community/aidbase/README.md @@ -1,7 +1,5 @@ # pieces-aidbase -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-aidbase` to build the library. +Run `turbo run build --filter=@activepieces/piece-aidbase` to build the library. diff --git a/packages/pieces/community/air-ops/README.md b/packages/pieces/community/air-ops/README.md index 043173691b0..95d2962e86d 100644 --- a/packages/pieces/community/air-ops/README.md +++ b/packages/pieces/community/air-ops/README.md @@ -1,7 +1,5 @@ # pieces-air-ops -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-air-ops` to build the library. +Run `turbo run build --filter=@activepieces/piece-air-ops` to build the library. diff --git a/packages/pieces/community/aircall/README.md b/packages/pieces/community/aircall/README.md index e8cffc05c93..cae4c9c9bbb 100644 --- a/packages/pieces/community/aircall/README.md +++ b/packages/pieces/community/aircall/README.md @@ -1,7 +1,5 @@ # pieces-aircall -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-aircall` to build the library. +Run `turbo run build --filter=@activepieces/piece-aircall` to build the library. diff --git a/packages/pieces/community/airparser/README.md b/packages/pieces/community/airparser/README.md index 76e80af3f6c..2c72a5e6dc7 100644 --- a/packages/pieces/community/airparser/README.md +++ b/packages/pieces/community/airparser/README.md @@ -1,7 +1,5 @@ # pieces-airparser -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-airparser` to build the library. +Run `turbo run build --filter=@activepieces/piece-airparser` to build the library. diff --git a/packages/pieces/community/airtable/README.md b/packages/pieces/community/airtable/README.md index 3da5ca3f840..bb97ec9d650 100644 --- a/packages/pieces/community/airtable/README.md +++ b/packages/pieces/community/airtable/README.md @@ -1,7 +1,5 @@ # pieces-airtable -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-airtable` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-airtable` to build the library. diff --git a/packages/pieces/community/airtop/README.md b/packages/pieces/community/airtop/README.md index 3422e607c7a..17438962d81 100644 --- a/packages/pieces/community/airtop/README.md +++ b/packages/pieces/community/airtop/README.md @@ -1,7 +1,5 @@ # pieces-airtop -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-airtop` to build the library. +Run `turbo run build --filter=@activepieces/piece-airtop` to build the library. diff --git a/packages/pieces/community/airtop/package.json b/packages/pieces/community/airtop/package.json index c99ed7f8bb0..dffd5e3c5eb 100644 --- a/packages/pieces/community/airtop/package.json +++ b/packages/pieces/community/airtop/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/alai/README.md b/packages/pieces/community/alai/README.md index d4a3bb97c4a..05291cba580 100644 --- a/packages/pieces/community/alai/README.md +++ b/packages/pieces/community/alai/README.md @@ -1,7 +1,5 @@ # pieces-alai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-alai` to build the library. +Run `turbo run build --filter=@activepieces/piece-alai` to build the library. diff --git a/packages/pieces/community/alt-text-ai/README.md b/packages/pieces/community/alt-text-ai/README.md index 9f405a840e2..6ce940e707c 100644 --- a/packages/pieces/community/alt-text-ai/README.md +++ b/packages/pieces/community/alt-text-ai/README.md @@ -1,7 +1,5 @@ # pieces-alt-text-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-alt-text-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-alt-text-ai` to build the library. diff --git a/packages/pieces/community/alttextify/README.md b/packages/pieces/community/alttextify/README.md index c7a34df4c83..fda277599d7 100644 --- a/packages/pieces/community/alttextify/README.md +++ b/packages/pieces/community/alttextify/README.md @@ -1,7 +1,5 @@ # pieces-alttextify -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-alttextify` to build the library. +Run `turbo run build --filter=@activepieces/piece-alttextify` to build the library. diff --git a/packages/pieces/community/amazon-bedrock/README.md b/packages/pieces/community/amazon-bedrock/README.md index 51d582d4744..c20a6456e29 100644 --- a/packages/pieces/community/amazon-bedrock/README.md +++ b/packages/pieces/community/amazon-bedrock/README.md @@ -1,7 +1,5 @@ # pieces-amazon-bedrock -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-amazon-bedrock` to build the library. +Run `turbo run build --filter=@activepieces/piece-amazon-bedrock` to build the library. diff --git a/packages/pieces/community/amazon-s3/README.md b/packages/pieces/community/amazon-s3/README.md index 0cd9c822fbd..e7048b18fc3 100644 --- a/packages/pieces/community/amazon-s3/README.md +++ b/packages/pieces/community/amazon-s3/README.md @@ -1,7 +1,5 @@ # pieces-amazon-s3 -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-amazon-s3` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-amazon-s3` to build the library. diff --git a/packages/pieces/community/amazon-secrets-manager/README.md b/packages/pieces/community/amazon-secrets-manager/README.md index 48a3453ddf4..50f7d011292 100644 --- a/packages/pieces/community/amazon-secrets-manager/README.md +++ b/packages/pieces/community/amazon-secrets-manager/README.md @@ -1,7 +1,5 @@ # pieces-amazon-secrets-manager -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-amazon-secrets-manager` to build the library. +Run `turbo run build --filter=@activepieces/piece-amazon-secrets-manager` to build the library. diff --git a/packages/pieces/community/amazon-ses/README.md b/packages/pieces/community/amazon-ses/README.md index 5cdc7bc5585..84e41622aa1 100644 --- a/packages/pieces/community/amazon-ses/README.md +++ b/packages/pieces/community/amazon-ses/README.md @@ -1,7 +1,5 @@ # pieces-amazon-ses -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-amazon-ses` to build the library. +Run `turbo run build --filter=@activepieces/piece-amazon-ses` to build the library. diff --git a/packages/pieces/community/amazon-sns/README.md b/packages/pieces/community/amazon-sns/README.md index b9c4c48d6a6..838efb72220 100644 --- a/packages/pieces/community/amazon-sns/README.md +++ b/packages/pieces/community/amazon-sns/README.md @@ -1,7 +1,5 @@ # pieces-amazon-sns -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-amazon-sns` to build the library. +Run `turbo run build --filter=@activepieces/piece-amazon-sns` to build the library. diff --git a/packages/pieces/community/amazon-sqs/README.md b/packages/pieces/community/amazon-sqs/README.md index 6809a8300e0..b72cd4822e9 100644 --- a/packages/pieces/community/amazon-sqs/README.md +++ b/packages/pieces/community/amazon-sqs/README.md @@ -1,7 +1,5 @@ # pieces-amazon-sqs -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-amazon-sqs` to build the library. +Run `turbo run build --filter=@activepieces/piece-amazon-sqs` to build the library. diff --git a/packages/pieces/community/amazon-textract/.eslintrc.json b/packages/pieces/community/amazon-textract/.eslintrc.json new file mode 100644 index 00000000000..632e9b0e222 --- /dev/null +++ b/packages/pieces/community/amazon-textract/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["../../../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/packages/pieces/community/aminos/README.md b/packages/pieces/community/aminos/README.md index bb844b3756e..c825a893bd4 100644 --- a/packages/pieces/community/aminos/README.md +++ b/packages/pieces/community/aminos/README.md @@ -1,7 +1,5 @@ # pieces-aminos -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-aminos` to build the library. +Run `turbo run build --filter=@activepieces/piece-aminos` to build the library. diff --git a/packages/pieces/community/anyhook-graphql/README.md b/packages/pieces/community/anyhook-graphql/README.md index 91bc6e06e12..87f31e574b1 100644 --- a/packages/pieces/community/anyhook-graphql/README.md +++ b/packages/pieces/community/anyhook-graphql/README.md @@ -1,7 +1,5 @@ # pieces-anyhook-graphql -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-anyhook-graphql` to build the library. +Run `turbo run build --filter=@activepieces/piece-anyhook-graphql` to build the library. diff --git a/packages/pieces/community/anyhook-websocket/README.md b/packages/pieces/community/anyhook-websocket/README.md index 21ad39add86..e50c0dc8a50 100644 --- a/packages/pieces/community/anyhook-websocket/README.md +++ b/packages/pieces/community/anyhook-websocket/README.md @@ -1,7 +1,5 @@ # pieces-anyhook-websocket -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-anyhook-websocket` to build the library. +Run `turbo run build --filter=@activepieces/piece-anyhook-websocket` to build the library. diff --git a/packages/pieces/community/apify/README.md b/packages/pieces/community/apify/README.md index 5c2fc8531ce..575861b80a0 100644 --- a/packages/pieces/community/apify/README.md +++ b/packages/pieces/community/apify/README.md @@ -1,7 +1,5 @@ # pieces-apify -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-apify` to build the library. +Run `turbo run build --filter=@activepieces/piece-apify` to build the library. diff --git a/packages/pieces/community/apitable/README.md b/packages/pieces/community/apitable/README.md index 136c268d861..12e5e6518e3 100644 --- a/packages/pieces/community/apitable/README.md +++ b/packages/pieces/community/apitable/README.md @@ -1,7 +1,5 @@ # pieces-apitable -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-apitable` to build the library. +Run `turbo run build --filter=@activepieces/piece-apitable` to build the library. diff --git a/packages/pieces/community/apitemplate-io/README.md b/packages/pieces/community/apitemplate-io/README.md index c6eef3439b2..6edbd10f634 100644 --- a/packages/pieces/community/apitemplate-io/README.md +++ b/packages/pieces/community/apitemplate-io/README.md @@ -1,7 +1,5 @@ # pieces-apitemplate-io -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-apitemplate-io` to build the library. +Run `turbo run build --filter=@activepieces/piece-apitemplate-io` to build the library. diff --git a/packages/pieces/community/apollo/README.md b/packages/pieces/community/apollo/README.md index b84f4f369e7..2bc35ee8880 100644 --- a/packages/pieces/community/apollo/README.md +++ b/packages/pieces/community/apollo/README.md @@ -1,7 +1,5 @@ # pieces-apollo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-apollo` to build the library. +Run `turbo run build --filter=@activepieces/piece-apollo` to build the library. diff --git a/packages/pieces/community/appfollow/README.md b/packages/pieces/community/appfollow/README.md index 608bb19f23f..6a5cdd9860f 100644 --- a/packages/pieces/community/appfollow/README.md +++ b/packages/pieces/community/appfollow/README.md @@ -1,7 +1,5 @@ # pieces-appfollow -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-appfollow` to build the library. +Run `turbo run build --filter=@activepieces/piece-appfollow` to build the library. diff --git a/packages/pieces/community/asana/README.md b/packages/pieces/community/asana/README.md index 8ef35a5e79c..18ad6171431 100644 --- a/packages/pieces/community/asana/README.md +++ b/packages/pieces/community/asana/README.md @@ -1,7 +1,5 @@ # pieces-asana -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-asana` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-asana` to build the library. diff --git a/packages/pieces/community/ashby/README.md b/packages/pieces/community/ashby/README.md index 833e038bbb2..ce797e468d6 100644 --- a/packages/pieces/community/ashby/README.md +++ b/packages/pieces/community/ashby/README.md @@ -1,7 +1,5 @@ # pieces-ashby -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-ashby` to build the library. +Run `turbo run build --filter=@activepieces/piece-ashby` to build the library. diff --git a/packages/pieces/community/ask-handle/README.md b/packages/pieces/community/ask-handle/README.md index 3edf4b6bdb4..dd08031d387 100644 --- a/packages/pieces/community/ask-handle/README.md +++ b/packages/pieces/community/ask-handle/README.md @@ -1,7 +1,5 @@ # pieces-ask-handle -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-ask-handle` to build the library. +Run `turbo run build --filter=@activepieces/piece-ask-handle` to build the library. diff --git a/packages/pieces/community/asknews/README.md b/packages/pieces/community/asknews/README.md index 86502526a07..53e3d6bec08 100644 --- a/packages/pieces/community/asknews/README.md +++ b/packages/pieces/community/asknews/README.md @@ -1,7 +1,5 @@ # pieces-asknews -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-asknews` to build the library. +Run `turbo run build --filter=@activepieces/piece-asknews` to build the library. diff --git a/packages/pieces/community/assembled/README.md b/packages/pieces/community/assembled/README.md index bad0661dc24..87b90a6308d 100644 --- a/packages/pieces/community/assembled/README.md +++ b/packages/pieces/community/assembled/README.md @@ -1,7 +1,5 @@ # pieces-assembled -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-assembled` to build the library. +Run `turbo run build --filter=@activepieces/piece-assembled` to build the library. diff --git a/packages/pieces/community/assemblyai/README.md b/packages/pieces/community/assemblyai/README.md index 16192c4f5f7..335f24186ea 100644 --- a/packages/pieces/community/assemblyai/README.md +++ b/packages/pieces/community/assemblyai/README.md @@ -1,23 +1,5 @@ # AssemblyAI piece for Activepieces -Use the AssemblyAI piece for Activepieces to use AssemblyAI's models to -[transcribe audio with Speech-to-Text models](https://www.assemblyai.com/products/speech-to-text?utm_source=activepieces), analyze audio with [audio intelligence models](https://www.assemblyai.com/products/speech-understanding?utm_source=activepieces), build generative AI features on top of audio with LLMs using [LeMUR](https://www.assemblyai.com/blog/lemur/?utm_source=activepieces). - -Learn more about this piece: - -- [Activepieces Integrations](https://www.activepieces.com/pieces/assemblyai) -- [AssemblyAI Documentation](https://www.assemblyai.com/docs/integrations/activepieces) - -This library was built upon the [AssemblyAI JavaScript SDK](https://github.com/AssemblyAI/assemblyai-node-sdk). - ## Building -Run `nx build pieces-assemblyai` to build the library. - -## Generating props - -- Copy `assemblyai.env.sample` to `assemblyai.env` -- In `assemblyai.env`, update the `OPENAPI_SPEC_LOCATION` variable to the path or URL of AssemblyAI's OpenAPI spec -- Run `nx generate-params pieces-assemblyai` - -You can find [AssemblyAI's OpenAPI spec on GitHub](https://github.com/AssemblyAI/assemblyai-api-spec/blob/main/openapi.yml). +Run `turbo run build --filter=@activepieces/piece-assemblyai` to build the library. diff --git a/packages/pieces/community/attio/README.md b/packages/pieces/community/attio/README.md index c99264f8e7c..2287208e7f2 100644 --- a/packages/pieces/community/attio/README.md +++ b/packages/pieces/community/attio/README.md @@ -1,7 +1,5 @@ # pieces-attio -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-attio` to build the library. +Run `turbo run build --filter=@activepieces/piece-attio` to build the library. diff --git a/packages/pieces/community/autocalls/README.md b/packages/pieces/community/autocalls/README.md index fb74a5002a9..146a25d04fa 100644 --- a/packages/pieces/community/autocalls/README.md +++ b/packages/pieces/community/autocalls/README.md @@ -1,7 +1,5 @@ # pieces-autocalls -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-autocalls` to build the library. +Run `turbo run build --filter=@activepieces/piece-autocalls` to build the library. diff --git a/packages/pieces/community/avoma/README.md b/packages/pieces/community/avoma/README.md index 15a3abba703..fb11c0279bf 100644 --- a/packages/pieces/community/avoma/README.md +++ b/packages/pieces/community/avoma/README.md @@ -1,7 +1,5 @@ # pieces-avoma -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-avoma` to build the library. +Run `turbo run build --filter=@activepieces/piece-avoma` to build the library. diff --git a/packages/pieces/community/azure-blob-storage/README.md b/packages/pieces/community/azure-blob-storage/README.md index 53c116e415b..894d51ff664 100644 --- a/packages/pieces/community/azure-blob-storage/README.md +++ b/packages/pieces/community/azure-blob-storage/README.md @@ -1,7 +1,5 @@ # pieces-azure-blob-storage -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-azure-blob-storage` to build the library. +Run `turbo run build --filter=@activepieces/piece-azure-blob-storage` to build the library. diff --git a/packages/pieces/community/azure-communication-services/README.md b/packages/pieces/community/azure-communication-services/README.md index 41200bcc213..f5dae187c06 100644 --- a/packages/pieces/community/azure-communication-services/README.md +++ b/packages/pieces/community/azure-communication-services/README.md @@ -1,7 +1,5 @@ # pieces-azure-communication-services -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-azure-communication-services` to build the library. +Run `turbo run build --filter=@activepieces/piece-azure-communication-services` to build the library. diff --git a/packages/pieces/community/azure-openai/README.md b/packages/pieces/community/azure-openai/README.md index a3f31e0877c..5b93726f10b 100644 --- a/packages/pieces/community/azure-openai/README.md +++ b/packages/pieces/community/azure-openai/README.md @@ -1,7 +1,5 @@ # pieces-azure-openai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-azure-openai` to build the library. +Run `turbo run build --filter=@activepieces/piece-azure-openai` to build the library. diff --git a/packages/pieces/community/azure-openai/package.json b/packages/pieces/community/azure-openai/package.json index 82a06e6c101..cc6bf5500f4 100644 --- a/packages/pieces/community/azure-openai/package.json +++ b/packages/pieces/community/azure-openai/package.json @@ -9,7 +9,7 @@ "@activepieces/shared": "workspace:*", "@azure/openai": "1.0.0-beta.11", "tiktoken": "1.0.11", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/backblaze/README.md b/packages/pieces/community/backblaze/README.md index cd8613bc2d7..7ce8dade951 100644 --- a/packages/pieces/community/backblaze/README.md +++ b/packages/pieces/community/backblaze/README.md @@ -1,7 +1,5 @@ # pieces-backblaze -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-backblaze` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-backblaze` to build the library. diff --git a/packages/pieces/community/bamboohr/README.md b/packages/pieces/community/bamboohr/README.md index 009f90aaf9f..70bf8bfaff6 100644 --- a/packages/pieces/community/bamboohr/README.md +++ b/packages/pieces/community/bamboohr/README.md @@ -1,7 +1,5 @@ # pieces-bamboohr -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bamboohr` to build the library. +Run `turbo run build --filter=@activepieces/piece-bamboohr` to build the library. diff --git a/packages/pieces/community/bannerbear/README.md b/packages/pieces/community/bannerbear/README.md index fb9c0dfe02a..25b8eb33043 100644 --- a/packages/pieces/community/bannerbear/README.md +++ b/packages/pieces/community/bannerbear/README.md @@ -1,7 +1,5 @@ # pieces-bannerbear -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-bannerbear` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-bannerbear` to build the library. diff --git a/packages/pieces/community/barcode-lookup/README.md b/packages/pieces/community/barcode-lookup/README.md index 93021dcbe6f..2fb9fc0e119 100644 --- a/packages/pieces/community/barcode-lookup/README.md +++ b/packages/pieces/community/barcode-lookup/README.md @@ -1,7 +1,5 @@ # pieces-barcode-lookup -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-barcode-lookup` to build the library. +Run `turbo run build --filter=@activepieces/piece-barcode-lookup` to build the library. diff --git a/packages/pieces/community/baremetrics/README.md b/packages/pieces/community/baremetrics/README.md index 7579cfc6280..18246e34f05 100644 --- a/packages/pieces/community/baremetrics/README.md +++ b/packages/pieces/community/baremetrics/README.md @@ -1,7 +1,5 @@ # pieces-baremetrics -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-baremetrics` to build the library. +Run `turbo run build --filter=@activepieces/piece-baremetrics` to build the library. diff --git a/packages/pieces/community/base44/README.md b/packages/pieces/community/base44/README.md index 94a2c4d8492..f73b4e8ebee 100644 --- a/packages/pieces/community/base44/README.md +++ b/packages/pieces/community/base44/README.md @@ -1,7 +1,5 @@ # pieces-base44 -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-base44` to build the library. +Run `turbo run build --filter=@activepieces/piece-base44` to build the library. diff --git a/packages/pieces/community/baserow/README.md b/packages/pieces/community/baserow/README.md index 618640b3f03..61e8c6bb03a 100644 --- a/packages/pieces/community/baserow/README.md +++ b/packages/pieces/community/baserow/README.md @@ -1,7 +1,5 @@ # pieces-baserow -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-baserow` to build the library. +Run `turbo run build --filter=@activepieces/piece-baserow` to build the library. diff --git a/packages/pieces/community/beamer/README.md b/packages/pieces/community/beamer/README.md index 2687d0f85f6..cb8839a9ef4 100644 --- a/packages/pieces/community/beamer/README.md +++ b/packages/pieces/community/beamer/README.md @@ -1,7 +1,5 @@ # pieces-beamer -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-beamer` to build the library. +Run `turbo run build --filter=@activepieces/piece-beamer` to build the library. diff --git a/packages/pieces/community/beehiiv/README.md b/packages/pieces/community/beehiiv/README.md index badb30955f6..ce46629436e 100644 --- a/packages/pieces/community/beehiiv/README.md +++ b/packages/pieces/community/beehiiv/README.md @@ -1,7 +1,5 @@ # pieces-beehiiv -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-beehiiv` to build the library. +Run `turbo run build --filter=@activepieces/piece-beehiiv` to build the library. diff --git a/packages/pieces/community/bettermode/README.md b/packages/pieces/community/bettermode/README.md index 13f2b1bef34..13e3b59628c 100644 --- a/packages/pieces/community/bettermode/README.md +++ b/packages/pieces/community/bettermode/README.md @@ -1,7 +1,5 @@ # pieces-bettermode -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bettermode` to build the library. +Run `turbo run build --filter=@activepieces/piece-bettermode` to build the library. diff --git a/packages/pieces/community/bettermode/package.json b/packages/pieces/community/bettermode/package.json index 130c478456b..0119d9579d6 100644 --- a/packages/pieces/community/bettermode/package.json +++ b/packages/pieces/community/bettermode/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/bexio/README.md b/packages/pieces/community/bexio/README.md index 2a889ad724c..0370c8ba7ee 100644 --- a/packages/pieces/community/bexio/README.md +++ b/packages/pieces/community/bexio/README.md @@ -1,7 +1,5 @@ # pieces-bexio -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bexio` to build the library. +Run `turbo run build --filter=@activepieces/piece-bexio` to build the library. diff --git a/packages/pieces/community/bigcommerce/README.md b/packages/pieces/community/bigcommerce/README.md index 83ef398158b..7696dee64a6 100644 --- a/packages/pieces/community/bigcommerce/README.md +++ b/packages/pieces/community/bigcommerce/README.md @@ -1,7 +1,5 @@ # pieces-bigcommerce -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bigcommerce` to build the library. +Run `turbo run build --filter=@activepieces/piece-bigcommerce` to build the library. diff --git a/packages/pieces/community/bigin-by-zoho/README.md b/packages/pieces/community/bigin-by-zoho/README.md index 758d15ee28e..afff459e38e 100644 --- a/packages/pieces/community/bigin-by-zoho/README.md +++ b/packages/pieces/community/bigin-by-zoho/README.md @@ -1,7 +1,5 @@ # pieces-bigin-by-zoho -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bigin-by-zoho` to build the library. +Run `turbo run build --filter=@activepieces/piece-bigin-by-zoho` to build the library. diff --git a/packages/pieces/community/bika/README.md b/packages/pieces/community/bika/README.md index 6af3b71361b..3369a20f52a 100644 --- a/packages/pieces/community/bika/README.md +++ b/packages/pieces/community/bika/README.md @@ -1,7 +1,5 @@ # pieces-bika -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bika` to build the library. +Run `turbo run build --filter=@activepieces/piece-bika` to build the library. diff --git a/packages/pieces/community/billplz/README.md b/packages/pieces/community/billplz/README.md index 69e7570e589..178af2e273b 100644 --- a/packages/pieces/community/billplz/README.md +++ b/packages/pieces/community/billplz/README.md @@ -1,7 +1,5 @@ # pieces-billplz -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-billplz` to build the library. +Run `turbo run build --filter=@activepieces/piece-billplz` to build the library. diff --git a/packages/pieces/community/binance/README.md b/packages/pieces/community/binance/README.md index 3119ddc3715..41f273e2c0f 100644 --- a/packages/pieces/community/binance/README.md +++ b/packages/pieces/community/binance/README.md @@ -1,7 +1,5 @@ # pieces-binance -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-binance` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-binance` to build the library. diff --git a/packages/pieces/community/bitly/README.md b/packages/pieces/community/bitly/README.md index 10c3cbbecd2..1a2a9e0cccf 100644 --- a/packages/pieces/community/bitly/README.md +++ b/packages/pieces/community/bitly/README.md @@ -1,7 +1,5 @@ # pieces-bitly -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bitly` to build the library. +Run `turbo run build --filter=@activepieces/piece-bitly` to build the library. diff --git a/packages/pieces/community/blockscout/README.md b/packages/pieces/community/blockscout/README.md index b7410fde633..5f0954da283 100644 --- a/packages/pieces/community/blockscout/README.md +++ b/packages/pieces/community/blockscout/README.md @@ -1,7 +1,5 @@ # pieces-blockscout -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-blockscout` to build the library. +Run `turbo run build --filter=@activepieces/piece-blockscout` to build the library. diff --git a/packages/pieces/community/bluesky/README.md b/packages/pieces/community/bluesky/README.md index e1e225aa2b5..d9f8bdd5a9a 100644 --- a/packages/pieces/community/bluesky/README.md +++ b/packages/pieces/community/bluesky/README.md @@ -1,7 +1,5 @@ # pieces-bluesky -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bluesky` to build the library. +Run `turbo run build --filter=@activepieces/piece-bluesky` to build the library. diff --git a/packages/pieces/community/bokio/README.md b/packages/pieces/community/bokio/README.md index 436546b0e23..706ab6c5c32 100644 --- a/packages/pieces/community/bokio/README.md +++ b/packages/pieces/community/bokio/README.md @@ -1,7 +1,5 @@ # pieces-bokio -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bokio` to build the library. +Run `turbo run build --filter=@activepieces/piece-bokio` to build the library. diff --git a/packages/pieces/community/bolna/README.md b/packages/pieces/community/bolna/README.md index be8d2f4c52b..794c1442111 100644 --- a/packages/pieces/community/bolna/README.md +++ b/packages/pieces/community/bolna/README.md @@ -1,7 +1,5 @@ # pieces-bolna -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bolna` to build the library. +Run `turbo run build --filter=@activepieces/piece-bolna` to build the library. diff --git a/packages/pieces/community/bonjoro/README.md b/packages/pieces/community/bonjoro/README.md index ef2abcd5974..dd9ab77bb82 100644 --- a/packages/pieces/community/bonjoro/README.md +++ b/packages/pieces/community/bonjoro/README.md @@ -1,7 +1,5 @@ # pieces-bonjoro -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bonjoro` to build the library. +Run `turbo run build --filter=@activepieces/piece-bonjoro` to build the library. diff --git a/packages/pieces/community/bonjoro/package.json b/packages/pieces/community/bonjoro/package.json index a8046ba50fe..c225cad991a 100644 --- a/packages/pieces/community/bonjoro/package.json +++ b/packages/pieces/community/bonjoro/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/bookedin/README.md b/packages/pieces/community/bookedin/README.md index 8c6ff28b032..38a297d4f3d 100644 --- a/packages/pieces/community/bookedin/README.md +++ b/packages/pieces/community/bookedin/README.md @@ -1,7 +1,5 @@ # pieces-bookedin -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bookedin` to build the library. +Run `turbo run build --filter=@activepieces/piece-bookedin` to build the library. diff --git a/packages/pieces/community/box/README.md b/packages/pieces/community/box/README.md index 8580d8bd38a..85bb68ceff6 100644 --- a/packages/pieces/community/box/README.md +++ b/packages/pieces/community/box/README.md @@ -1,7 +1,5 @@ # pieces-box -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-box` to build the library. +Run `turbo run build --filter=@activepieces/piece-box` to build the library. diff --git a/packages/pieces/community/brave-search/README.md b/packages/pieces/community/brave-search/README.md index 56303486c1c..f54a3ca8cd2 100644 --- a/packages/pieces/community/brave-search/README.md +++ b/packages/pieces/community/brave-search/README.md @@ -1,28 +1,5 @@ # Activepieces Brave Search Piece (MCP) -This project contains the source code for the **Brave Search** integration for Activepieces. -Activepieces automatically exposes this integration as an MCP (Model Context Protocol) server, allowing agents to use Brave Search. +## Building -## Integration Details - -- **Name**: Brave Search -- **Description**: Privacy-focused web search engine. -- **Auth**: API Key (Brave Search API) -- **Actions**: - - `web_search`: Perform a web search query. - -## Development Status - -- [x] Scaffolding -- [ ] Implementation of `web_search` action -- [ ] Testing - -## How to use - -This code is designed to be dropped into the `packages/pieces/community/brave-search` directory of the Activepieces repository. - -1. Clone Activepieces: `git clone https://github.com/activepieces/activepieces.git` -2. Copy this folder to `packages/pieces/community/brave-search` -3. Run `npm install` in the root. -4. Build the piece: `nx build piece-brave-search` -5. Run Activepieces locally to test. +Run `turbo run build --filter=@activepieces/piece-brave-search` to build the library. diff --git a/packages/pieces/community/brilliant-directories/README.md b/packages/pieces/community/brilliant-directories/README.md index 4e24e177fc8..905736961c5 100644 --- a/packages/pieces/community/brilliant-directories/README.md +++ b/packages/pieces/community/brilliant-directories/README.md @@ -1,7 +1,5 @@ # pieces-brilliant-directories -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-brilliant-directories` to build the library. +Run `turbo run build --filter=@activepieces/piece-brilliant-directories` to build the library. diff --git a/packages/pieces/community/browse-ai/README.md b/packages/pieces/community/browse-ai/README.md index e6086550137..cb946b778aa 100644 --- a/packages/pieces/community/browse-ai/README.md +++ b/packages/pieces/community/browse-ai/README.md @@ -1,7 +1,5 @@ # pieces-browse-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-browse-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-browse-ai` to build the library. diff --git a/packages/pieces/community/bubble/README.md b/packages/pieces/community/bubble/README.md index bc8a3458c8d..b5494127feb 100644 --- a/packages/pieces/community/bubble/README.md +++ b/packages/pieces/community/bubble/README.md @@ -1,7 +1,5 @@ # pieces-bubble -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bubble` to build the library. +Run `turbo run build --filter=@activepieces/piece-bubble` to build the library. diff --git a/packages/pieces/community/bumpups/README.md b/packages/pieces/community/bumpups/README.md index 659fe9b48a3..0769b74fd0f 100644 --- a/packages/pieces/community/bumpups/README.md +++ b/packages/pieces/community/bumpups/README.md @@ -1,7 +1,5 @@ # pieces-bumpups -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bumpups` to build the library. +Run `turbo run build --filter=@activepieces/piece-bumpups` to build the library. diff --git a/packages/pieces/community/bursty-ai/README.md b/packages/pieces/community/bursty-ai/README.md index 54a8a6c1c1b..9422f68ccf5 100644 --- a/packages/pieces/community/bursty-ai/README.md +++ b/packages/pieces/community/bursty-ai/README.md @@ -1,7 +1,5 @@ # pieces-bursty-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-bursty-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-bursty-ai` to build the library. diff --git a/packages/pieces/community/cal-com/README.md b/packages/pieces/community/cal-com/README.md index 81bd60b103b..5f6a4b0097c 100644 --- a/packages/pieces/community/cal-com/README.md +++ b/packages/pieces/community/cal-com/README.md @@ -1,7 +1,5 @@ # pieces-cal-com -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-cal-com` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-cal-com` to build the library. diff --git a/packages/pieces/community/calendly/README.md b/packages/pieces/community/calendly/README.md index ca25722f659..5d92f863946 100644 --- a/packages/pieces/community/calendly/README.md +++ b/packages/pieces/community/calendly/README.md @@ -1,7 +1,5 @@ # pieces-calendly -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-calendly` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-calendly` to build the library. diff --git a/packages/pieces/community/call-rounded/README.md b/packages/pieces/community/call-rounded/README.md index 826177531a2..c79f7959fcf 100644 --- a/packages/pieces/community/call-rounded/README.md +++ b/packages/pieces/community/call-rounded/README.md @@ -1,7 +1,5 @@ # pieces-call-rounded -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-rounded-studio` to build the library. +Run `turbo run build --filter=@activepieces/piece-rounded-studio` to build the library. diff --git a/packages/pieces/community/camb-ai/README.md b/packages/pieces/community/camb-ai/README.md index a3c95788409..086e5c9eb60 100644 --- a/packages/pieces/community/camb-ai/README.md +++ b/packages/pieces/community/camb-ai/README.md @@ -1,7 +1,5 @@ # pieces-camb-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-camb-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-camb-ai` to build the library. diff --git a/packages/pieces/community/campaign-monitor/README.md b/packages/pieces/community/campaign-monitor/README.md index c9062566885..740f06525c6 100644 --- a/packages/pieces/community/campaign-monitor/README.md +++ b/packages/pieces/community/campaign-monitor/README.md @@ -1,7 +1,5 @@ # pieces-campaign-monitor -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-campaign-monitor` to build the library. +Run `turbo run build --filter=@activepieces/piece-campaign-monitor` to build the library. diff --git a/packages/pieces/community/capsule-crm/README.md b/packages/pieces/community/capsule-crm/README.md index 42710655e25..2e305f59f2c 100644 --- a/packages/pieces/community/capsule-crm/README.md +++ b/packages/pieces/community/capsule-crm/README.md @@ -1,7 +1,5 @@ # pieces-capsule-crm -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-capsule-crm` to build the library. +Run `turbo run build --filter=@activepieces/piece-capsule-crm` to build the library. diff --git a/packages/pieces/community/captain-data/README.md b/packages/pieces/community/captain-data/README.md index 6eb4928cd27..858e0dd26cb 100644 --- a/packages/pieces/community/captain-data/README.md +++ b/packages/pieces/community/captain-data/README.md @@ -1,7 +1,5 @@ # pieces-captain-data -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-captain-data` to build the library. +Run `turbo run build --filter=@activepieces/piece-captain-data` to build the library. diff --git a/packages/pieces/community/cartloom/README.md b/packages/pieces/community/cartloom/README.md index 92463ed03d6..1a883a0c1b7 100644 --- a/packages/pieces/community/cartloom/README.md +++ b/packages/pieces/community/cartloom/README.md @@ -1,7 +1,5 @@ # pieces-cartloom -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cartloom` to build the library. +Run `turbo run build --filter=@activepieces/piece-cartloom` to build the library. diff --git a/packages/pieces/community/cashfree-payments/README.md b/packages/pieces/community/cashfree-payments/README.md index fa23821c3f6..437cfab362f 100644 --- a/packages/pieces/community/cashfree-payments/README.md +++ b/packages/pieces/community/cashfree-payments/README.md @@ -1,7 +1,5 @@ # pieces-cashfree-payments -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cashfree-payments` to build the library. +Run `turbo run build --filter=@activepieces/piece-cashfree-payments` to build the library. diff --git a/packages/pieces/community/certopus/README.md b/packages/pieces/community/certopus/README.md index 61ca9790a04..93b1c140d59 100644 --- a/packages/pieces/community/certopus/README.md +++ b/packages/pieces/community/certopus/README.md @@ -1,7 +1,5 @@ # pieces-certopus -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-certopus` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-certopus` to build the library. diff --git a/packages/pieces/community/chain-aware/README.md b/packages/pieces/community/chain-aware/README.md index c9c74987f67..9eceb954598 100644 --- a/packages/pieces/community/chain-aware/README.md +++ b/packages/pieces/community/chain-aware/README.md @@ -1,7 +1,5 @@ # pieces-chain-aware -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chain-aware` to build the library. +Run `turbo run build --filter=@activepieces/piece-chain-aware` to build the library. diff --git a/packages/pieces/community/chainalysis-api/README.md b/packages/pieces/community/chainalysis-api/README.md index 688f4a61689..682d42631c6 100644 --- a/packages/pieces/community/chainalysis-api/README.md +++ b/packages/pieces/community/chainalysis-api/README.md @@ -1,7 +1,5 @@ # pieces-chainalysis-api -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chainalysis-api` to build the library. +Run `turbo run build --filter=@activepieces/piece-chainalysis-api` to build the library. diff --git a/packages/pieces/community/chaindesk/README.md b/packages/pieces/community/chaindesk/README.md index 5ebbe90049f..f1d31443454 100644 --- a/packages/pieces/community/chaindesk/README.md +++ b/packages/pieces/community/chaindesk/README.md @@ -1,7 +1,5 @@ # pieces-chaindesk -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chaindesk` to build the library. +Run `turbo run build --filter=@activepieces/piece-chaindesk` to build the library. diff --git a/packages/pieces/community/chargekeep/README.md b/packages/pieces/community/chargekeep/README.md index 54791557ea1..3e06eef7e62 100644 --- a/packages/pieces/community/chargekeep/README.md +++ b/packages/pieces/community/chargekeep/README.md @@ -1,7 +1,5 @@ # pieces-chargekeep -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chargekeep` to build the library. +Run `turbo run build --filter=@activepieces/piece-chargekeep` to build the library. diff --git a/packages/pieces/community/chartly/README.md b/packages/pieces/community/chartly/README.md index 9185417f6b8..43c7554635a 100644 --- a/packages/pieces/community/chartly/README.md +++ b/packages/pieces/community/chartly/README.md @@ -1,7 +1,5 @@ # pieces-chartly -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chartly` to build the library. +Run `turbo run build --filter=@activepieces/piece-chartly` to build the library. diff --git a/packages/pieces/community/chat-aid/README.md b/packages/pieces/community/chat-aid/README.md index c0b08231574..18adc6930eb 100644 --- a/packages/pieces/community/chat-aid/README.md +++ b/packages/pieces/community/chat-aid/README.md @@ -1,7 +1,5 @@ # pieces-chat-aid -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chat-aid` to build the library. +Run `turbo run build --filter=@activepieces/piece-chat-aid` to build the library. diff --git a/packages/pieces/community/chat-data/README.md b/packages/pieces/community/chat-data/README.md index 7e572f38744..2cc568df495 100644 --- a/packages/pieces/community/chat-data/README.md +++ b/packages/pieces/community/chat-data/README.md @@ -1,7 +1,5 @@ # pieces-chat-data -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chat-data` to build the library. +Run `turbo run build --filter=@activepieces/piece-chat-data` to build the library. diff --git a/packages/pieces/community/chat-data/package.json b/packages/pieces/community/chat-data/package.json index d149dd19802..b36c8fb30a8 100644 --- a/packages/pieces/community/chat-data/package.json +++ b/packages/pieces/community/chat-data/package.json @@ -10,7 +10,7 @@ "@activepieces/shared": "workspace:*", "form-data": "4.0.4", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/chatbase/README.md b/packages/pieces/community/chatbase/README.md index 37944c9c551..de8f06b800f 100644 --- a/packages/pieces/community/chatbase/README.md +++ b/packages/pieces/community/chatbase/README.md @@ -1,7 +1,5 @@ # pieces-chatbase -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chatbase` to build the library. +Run `turbo run build --filter=@activepieces/piece-chatbase` to build the library. diff --git a/packages/pieces/community/chatfly/README.md b/packages/pieces/community/chatfly/README.md index 0d49e412e69..a7288c289b4 100644 --- a/packages/pieces/community/chatfly/README.md +++ b/packages/pieces/community/chatfly/README.md @@ -1,7 +1,5 @@ # pieces-chatfly -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chatfly` to build the library. +Run `turbo run build --filter=@activepieces/piece-chatfly` to build the library. diff --git a/packages/pieces/community/chatling/README.md b/packages/pieces/community/chatling/README.md index d4095f1421b..3f31bff6a20 100644 --- a/packages/pieces/community/chatling/README.md +++ b/packages/pieces/community/chatling/README.md @@ -1,7 +1,5 @@ # pieces-chatling -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chatling` to build the library. +Run `turbo run build --filter=@activepieces/piece-chatling` to build the library. diff --git a/packages/pieces/community/chatnode/README.md b/packages/pieces/community/chatnode/README.md index 6586d30ea8f..1806dd45e17 100644 --- a/packages/pieces/community/chatnode/README.md +++ b/packages/pieces/community/chatnode/README.md @@ -1,7 +1,5 @@ # pieces-chatnode -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chatnode` to build the library. +Run `turbo run build --filter=@activepieces/piece-chatnode` to build the library. diff --git a/packages/pieces/community/chatsistant/README.md b/packages/pieces/community/chatsistant/README.md index 45ff637a359..8af86a5678e 100644 --- a/packages/pieces/community/chatsistant/README.md +++ b/packages/pieces/community/chatsistant/README.md @@ -1,7 +1,5 @@ # pieces-chatsistant -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-chatsistant` to build the library. +Run `turbo run build --filter=@activepieces/piece-chatsistant` to build the library. diff --git a/packages/pieces/community/checkout/README.md b/packages/pieces/community/checkout/README.md index 159c7cae44e..859a965cf42 100644 --- a/packages/pieces/community/checkout/README.md +++ b/packages/pieces/community/checkout/README.md @@ -1,7 +1,5 @@ # pieces-checkout -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-checkout` to build the library. +Run `turbo run build --filter=@activepieces/piece-checkout` to build the library. diff --git a/packages/pieces/community/circle/README.md b/packages/pieces/community/circle/README.md index 2197f6b780a..1892ea13fac 100644 --- a/packages/pieces/community/circle/README.md +++ b/packages/pieces/community/circle/README.md @@ -1,7 +1,5 @@ # pieces-circle -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-circle` to build the library. +Run `turbo run build --filter=@activepieces/piece-circle` to build the library. diff --git a/packages/pieces/community/clarifai/README.md b/packages/pieces/community/clarifai/README.md index cce8b57dfd7..17ce5f525a1 100644 --- a/packages/pieces/community/clarifai/README.md +++ b/packages/pieces/community/clarifai/README.md @@ -1,7 +1,5 @@ # pieces-clarifai -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-clarifai` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-clarifai` to build the library. diff --git a/packages/pieces/community/claude/README.md b/packages/pieces/community/claude/README.md index b6c2da2fe34..8457b1bf809 100644 --- a/packages/pieces/community/claude/README.md +++ b/packages/pieces/community/claude/README.md @@ -1,7 +1,5 @@ # pieces-claude -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-claude` to build the library. +Run `turbo run build --filter=@activepieces/piece-claude` to build the library. diff --git a/packages/pieces/community/claude/package.json b/packages/pieces/community/claude/package.json index 12aee0f8965..30cfa7762e6 100644 --- a/packages/pieces/community/claude/package.json +++ b/packages/pieces/community/claude/package.json @@ -10,7 +10,7 @@ "@anthropic-ai/sdk": "0.39.0", "ajv": "8.12.0", "mime-types": "2.1.35", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/clearout/README.md b/packages/pieces/community/clearout/README.md index 2fc87dede4f..2910e2f7713 100644 --- a/packages/pieces/community/clearout/README.md +++ b/packages/pieces/community/clearout/README.md @@ -1,7 +1,5 @@ # pieces-clearout -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-clearout` to build the library. +Run `turbo run build --filter=@activepieces/piece-clearout` to build the library. diff --git a/packages/pieces/community/clearout/package.json b/packages/pieces/community/clearout/package.json index a55959b32c5..ebde6ab743f 100644 --- a/packages/pieces/community/clearout/package.json +++ b/packages/pieces/community/clearout/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/clearoutphone/README.md b/packages/pieces/community/clearoutphone/README.md index 0fffc742f5d..d73939430da 100644 --- a/packages/pieces/community/clearoutphone/README.md +++ b/packages/pieces/community/clearoutphone/README.md @@ -1,7 +1,5 @@ # pieces-clearoutphone -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-clearoutphone` to build the library. +Run `turbo run build --filter=@activepieces/piece-clearoutphone` to build the library. diff --git a/packages/pieces/community/clicdata/README.md b/packages/pieces/community/clicdata/README.md index 1ce62aa88d5..6e05f9283d5 100644 --- a/packages/pieces/community/clicdata/README.md +++ b/packages/pieces/community/clicdata/README.md @@ -1,7 +1,5 @@ # pieces-clicdata -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-clicdata` to build the library. +Run `turbo run build --filter=@activepieces/piece-clicdata` to build the library. diff --git a/packages/pieces/community/clickfunnels/README.md b/packages/pieces/community/clickfunnels/README.md index 012cd7d29aa..e183d8d3eac 100644 --- a/packages/pieces/community/clickfunnels/README.md +++ b/packages/pieces/community/clickfunnels/README.md @@ -1,7 +1,5 @@ # pieces-clickfunnels -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-clickfunnels` to build the library. +Run `turbo run build --filter=@activepieces/piece-clickfunnels` to build the library. diff --git a/packages/pieces/community/clickup/README.md b/packages/pieces/community/clickup/README.md index c7df533aec7..e58dff97d2b 100644 --- a/packages/pieces/community/clickup/README.md +++ b/packages/pieces/community/clickup/README.md @@ -1,7 +1,5 @@ # pieces-clickup -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-clickup` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-clickup` to build the library. diff --git a/packages/pieces/community/clickup/package.json b/packages/pieces/community/clickup/package.json index 45ed7334dda..c9d64e3be7b 100644 --- a/packages/pieces/community/clickup/package.json +++ b/packages/pieces/community/clickup/package.json @@ -13,7 +13,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "qs": "6.14.2", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/community/clockify/README.md b/packages/pieces/community/clockify/README.md index 48a5fecbe6a..fa37b365e5a 100644 --- a/packages/pieces/community/clockify/README.md +++ b/packages/pieces/community/clockify/README.md @@ -1,7 +1,5 @@ # pieces-clockify -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-clockify` to build the library. +Run `turbo run build --filter=@activepieces/piece-clockify` to build the library. diff --git a/packages/pieces/community/clockodo/README.md b/packages/pieces/community/clockodo/README.md index bfb797bc3a6..d9283f97ad4 100644 --- a/packages/pieces/community/clockodo/README.md +++ b/packages/pieces/community/clockodo/README.md @@ -1,7 +1,5 @@ # pieces-clockodo -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-clockodo` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-clockodo` to build the library. diff --git a/packages/pieces/community/close/README.md b/packages/pieces/community/close/README.md index 547b6f11b52..2a9138c2ca2 100644 --- a/packages/pieces/community/close/README.md +++ b/packages/pieces/community/close/README.md @@ -1,7 +1,5 @@ # pieces-close -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-close` to build the library. \ No newline at end of file +Run `turbo run build --filter=@activepieces/piece-close` to build the library. diff --git a/packages/pieces/community/cloudconvert/README.md b/packages/pieces/community/cloudconvert/README.md index bfdb9b2206a..49366732478 100644 --- a/packages/pieces/community/cloudconvert/README.md +++ b/packages/pieces/community/cloudconvert/README.md @@ -1,7 +1,5 @@ # pieces-cloudconvert -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cloudconvert` to build the library. +Run `turbo run build --filter=@activepieces/piece-cloudconvert` to build the library. diff --git a/packages/pieces/community/cloudconvert/package.json b/packages/pieces/community/cloudconvert/package.json index e252dc31aec..b315a6ce76b 100644 --- a/packages/pieces/community/cloudconvert/package.json +++ b/packages/pieces/community/cloudconvert/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/cloudinary/README.md b/packages/pieces/community/cloudinary/README.md index 8abde94d115..f14c809eb01 100644 --- a/packages/pieces/community/cloudinary/README.md +++ b/packages/pieces/community/cloudinary/README.md @@ -1,7 +1,5 @@ # pieces-cloudinary -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cloudinary` to build the library. +Run `turbo run build --filter=@activepieces/piece-cloudinary` to build the library. diff --git a/packages/pieces/community/cloutly/README.md b/packages/pieces/community/cloutly/README.md index 9666a2fe7e4..2821ae5a6b9 100644 --- a/packages/pieces/community/cloutly/README.md +++ b/packages/pieces/community/cloutly/README.md @@ -1,7 +1,5 @@ # pieces-cloutly -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cloutly` to build the library. +Run `turbo run build --filter=@activepieces/piece-cloutly` to build the library. diff --git a/packages/pieces/community/coda/README.md b/packages/pieces/community/coda/README.md index d2b1650c66f..fc4aabb15c9 100644 --- a/packages/pieces/community/coda/README.md +++ b/packages/pieces/community/coda/README.md @@ -1,7 +1,5 @@ # pieces-coda -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-coda` to build the library. +Run `turbo run build --filter=@activepieces/piece-coda` to build the library. diff --git a/packages/pieces/community/cody/README.md b/packages/pieces/community/cody/README.md index 70fa10a2e80..657cf9c10da 100644 --- a/packages/pieces/community/cody/README.md +++ b/packages/pieces/community/cody/README.md @@ -1,7 +1,5 @@ # pieces-cody -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cody` to build the library. +Run `turbo run build --filter=@activepieces/piece-cody` to build the library. diff --git a/packages/pieces/community/cognito-forms/README.md b/packages/pieces/community/cognito-forms/README.md index 92f2b2e90ce..3f9052a5ccc 100644 --- a/packages/pieces/community/cognito-forms/README.md +++ b/packages/pieces/community/cognito-forms/README.md @@ -1,7 +1,5 @@ # pieces-cognito-forms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cognito-forms` to build the library. +Run `turbo run build --filter=@activepieces/piece-cognito-forms` to build the library. diff --git a/packages/pieces/community/cometapi/README.md b/packages/pieces/community/cometapi/README.md index 05994d484ff..29bb656a476 100644 --- a/packages/pieces/community/cometapi/README.md +++ b/packages/pieces/community/cometapi/README.md @@ -1,71 +1,5 @@ # Comet API Piece for Activepieces -This is a Comet API integration for Activepieces that allows users to access multiple AI models through a unified interface. +## Building -## Features - -- ✅ Support for multiple AI models (GPT, Claude, Gemini, DeepSeek, etc.) -- ✅ Dynamic model list loading -- ✅ Complete parameter configuration (temperature, max_tokens, top_p) -- ✅ Detailed error handling -- ✅ Custom API call support -- ✅ API key validation - -## Supported Models - -### GPT Series -- gpt-5-chat-latest -- chatgpt-4o-latest -- gpt-4o-mini -- gpt-5-mini -- gpt-5-nano - -### Claude Series -- claude-opus-4-1-20250805 -- claude-sonnet-4-20250514 -- claude-3-7-sonnet-latest -- claude-3-5-haiku-latest - -### Gemini Series -- gemini-2.5-pro -- gemini-2.5-flash -- gemini-2.0-flash - -### Other Models -- DeepSeek series (deepseek-v3.1, deepseek-v3, deepseek-r1-0528) -- Grok series (grok-4-0709, grok-3, grok-3-mini) -- Qwen series (qwen3-30b-a3b, qwen3-coder-plus-2025-07-22) - -## Usage - -### 1. Get API Key -1. Visit: https://www.cometapi.com/ -2. Register an account and login -3. Go to API settings page to get your API key - -### 2. Configure in Activepieces -1. Create a new flow in Activepieces -2. Add the "Comet API" piece -3. Configure your API key -4. Select the AI model to use -5. Enter your prompt - -### 3. Available Actions - -#### Ask Comet API -Send prompts to any AI model supported by Comet API. - -**Parameters:** -- **Model**: The AI model to use -- **Prompt**: The prompt text to send to the AI -- **System Message** (optional): System message to set AI behavior -- **Temperature** (optional): Controls randomness (0-2) -- **Max Tokens** (optional): Maximum tokens to generate -- **Top P** (optional): Nucleus sampling parameter (0-1) - -#### Custom API Call -Directly call any endpoint of the Comet API. - -## Build - -Run `nx build pieces-cometapi` to build the library. \ No newline at end of file +Run `turbo run build --filter=@activepieces/piece-cometapi` to build the library. diff --git a/packages/pieces/community/cometapi/package.json b/packages/pieces/community/cometapi/package.json index a97a4c5ef47..8bfd096cb6c 100644 --- a/packages/pieces/community/cometapi/package.json +++ b/packages/pieces/community/cometapi/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/comfyicu/README.md b/packages/pieces/community/comfyicu/README.md index 0d195bfab9a..5accfa6f456 100644 --- a/packages/pieces/community/comfyicu/README.md +++ b/packages/pieces/community/comfyicu/README.md @@ -1,7 +1,5 @@ # pieces-comfyicu -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-comfyicu` to build the library. +Run `turbo run build --filter=@activepieces/piece-comfyicu` to build the library. diff --git a/packages/pieces/community/confluence/README.md b/packages/pieces/community/confluence/README.md index ad26b83a667..70105f2180f 100644 --- a/packages/pieces/community/confluence/README.md +++ b/packages/pieces/community/confluence/README.md @@ -1,7 +1,5 @@ # pieces-confluence -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-confluence` to build the library. +Run `turbo run build --filter=@activepieces/piece-confluence` to build the library. diff --git a/packages/pieces/community/constant-contact/README.md b/packages/pieces/community/constant-contact/README.md index 8be2f354441..d9d736f536c 100644 --- a/packages/pieces/community/constant-contact/README.md +++ b/packages/pieces/community/constant-contact/README.md @@ -1,7 +1,5 @@ # pieces-constant-contact -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-constant-contact` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-constant-contact` to build the library. diff --git a/packages/pieces/community/contentful/README.md b/packages/pieces/community/contentful/README.md index 9e31c093f96..1f7094f58e1 100644 --- a/packages/pieces/community/contentful/README.md +++ b/packages/pieces/community/contentful/README.md @@ -1,7 +1,5 @@ # pieces-contentful -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-contentful` to build the library. +Run `turbo run build --filter=@activepieces/piece-contentful` to build the library. diff --git a/packages/pieces/community/contentful/package.json b/packages/pieces/community/contentful/package.json index edbdae37ae6..b6f65b41d21 100644 --- a/packages/pieces/community/contentful/package.json +++ b/packages/pieces/community/contentful/package.json @@ -8,7 +8,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "contentful-management": "11.48.1", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/contextual-ai/README.md b/packages/pieces/community/contextual-ai/README.md index cffd77fe992..89fe33caaf2 100644 --- a/packages/pieces/community/contextual-ai/README.md +++ b/packages/pieces/community/contextual-ai/README.md @@ -1,7 +1,5 @@ # pieces-contextual-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-contextual-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-contextual-ai` to build the library. diff --git a/packages/pieces/community/contiguity/README.md b/packages/pieces/community/contiguity/README.md index 2298f100101..3c84e9ca0b9 100644 --- a/packages/pieces/community/contiguity/README.md +++ b/packages/pieces/community/contiguity/README.md @@ -1,7 +1,5 @@ # pieces-contiguity -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-contiguity` to build the library. +Run `turbo run build --filter=@activepieces/piece-contiguity` to build the library. diff --git a/packages/pieces/community/contiguity/package.json b/packages/pieces/community/contiguity/package.json index 16162d25289..340a5cb4d9c 100644 --- a/packages/pieces/community/contiguity/package.json +++ b/packages/pieces/community/contiguity/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/convertkit/README.md b/packages/pieces/community/convertkit/README.md index 2152429d0ba..0a2da44b199 100644 --- a/packages/pieces/community/convertkit/README.md +++ b/packages/pieces/community/convertkit/README.md @@ -1,29 +1,5 @@ # Notes -## Untested pieces +## Building -The following webhook trigger event types (https://developers.convertkit.com/#webhooks) have been implemented but not yet fully tested. - -- subscriber.subscriber_complain - -- subscriber.product_purchase - -- purchase.purchase_create - - - -## No debounce in form fields - -I have not implemented a debounce in any form fields. This means that calls to the ConvertKit API will be triggered on every keystroke for certain fields. - -I have raised an issue here: https://github.com/activepieces/activepieces/issues/3142 - -# Building - -Run `nx build pieces-convertkit` to build the library. - -# ToDo - -- Versioning of piece https://www.activepieces.com/docs/developers/piece-reference/piece-versioning -- Debounce on form fields -- Add tests(?) +Run `turbo run build --filter=@activepieces/piece-convertkit` to build the library. diff --git a/packages/pieces/community/copper/README.md b/packages/pieces/community/copper/README.md index 54daad4ebb4..73a00e0d065 100644 --- a/packages/pieces/community/copper/README.md +++ b/packages/pieces/community/copper/README.md @@ -1,7 +1,5 @@ # pieces-copper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-copper` to build the library. +Run `turbo run build --filter=@activepieces/piece-copper` to build the library. diff --git a/packages/pieces/community/copy-ai/README.md b/packages/pieces/community/copy-ai/README.md index 0a47d901912..82e20783dfc 100644 --- a/packages/pieces/community/copy-ai/README.md +++ b/packages/pieces/community/copy-ai/README.md @@ -1,7 +1,5 @@ # pieces-copy-ai -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx build pieces-copy-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-copy-ai` to build the library. diff --git a/packages/pieces/community/coralogix/README.md b/packages/pieces/community/coralogix/README.md index a4fff5c071f..5611ec171c7 100644 --- a/packages/pieces/community/coralogix/README.md +++ b/packages/pieces/community/coralogix/README.md @@ -1,7 +1,5 @@ # pieces-coralogix -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-coralogix` to build the library. +Run `turbo run build --filter=@activepieces/piece-coralogix` to build the library. diff --git a/packages/pieces/community/couchbase/README.md b/packages/pieces/community/couchbase/README.md index 03f96fc5ebf..fca0941a993 100644 --- a/packages/pieces/community/couchbase/README.md +++ b/packages/pieces/community/couchbase/README.md @@ -1,7 +1,5 @@ # pieces-couchbase -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-couchbase` to build the library. +Run `turbo run build --filter=@activepieces/piece-couchbase` to build the library. diff --git a/packages/pieces/community/crisp/README.md b/packages/pieces/community/crisp/README.md index a36e58e2153..98cf1ec88c8 100644 --- a/packages/pieces/community/crisp/README.md +++ b/packages/pieces/community/crisp/README.md @@ -1,7 +1,5 @@ # pieces-crisp -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-crisp` to build the library. +Run `turbo run build --filter=@activepieces/piece-crisp` to build the library. diff --git a/packages/pieces/community/cryptolens/README.md b/packages/pieces/community/cryptolens/README.md index 99a8b72b186..f32f6ef9016 100644 --- a/packages/pieces/community/cryptolens/README.md +++ b/packages/pieces/community/cryptolens/README.md @@ -1,7 +1,5 @@ # pieces-cryptolens -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cryptolens` to build the library. +Run `turbo run build --filter=@activepieces/piece-cryptolens` to build the library. diff --git a/packages/pieces/community/cursor/README.md b/packages/pieces/community/cursor/README.md index 34c47a3fa10..e312be34a76 100644 --- a/packages/pieces/community/cursor/README.md +++ b/packages/pieces/community/cursor/README.md @@ -1,7 +1,5 @@ # pieces-cursor -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-cursor` to build the library. +Run `turbo run build --filter=@activepieces/piece-cursor` to build the library. diff --git a/packages/pieces/community/customer-io/README.md b/packages/pieces/community/customer-io/README.md index 050dc7dcad0..8519f5f3b7b 100644 --- a/packages/pieces/community/customer-io/README.md +++ b/packages/pieces/community/customer-io/README.md @@ -1,9 +1,5 @@ # pieces-customer-io -- Track Custom API (https://www.customer.io/docs/api/track/) -- Base Custom API (https://customer.io/docs/api/app/#section/Overview) -- Create Event - ## Building -Run `nx build pieces-customer-io` to build the library. +Run `turbo run build --filter=@activepieces/piece-customer-io` to build the library. diff --git a/packages/pieces/community/customgpt/README.md b/packages/pieces/community/customgpt/README.md index b9a0d374981..03830bdbd1d 100644 --- a/packages/pieces/community/customgpt/README.md +++ b/packages/pieces/community/customgpt/README.md @@ -1,7 +1,5 @@ # pieces-customgpt -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-customgpt` to build the library. +Run `turbo run build --filter=@activepieces/piece-customgpt` to build the library. diff --git a/packages/pieces/community/customgpt/package.json b/packages/pieces/community/customgpt/package.json index acfd3ea0335..75c366b7f23 100644 --- a/packages/pieces/community/customgpt/package.json +++ b/packages/pieces/community/customgpt/package.json @@ -10,7 +10,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/cyberark/README.md b/packages/pieces/community/cyberark/README.md index 433c8ca31a7..27106d04834 100644 --- a/packages/pieces/community/cyberark/README.md +++ b/packages/pieces/community/cyberark/README.md @@ -1,61 +1,5 @@ # CyberArk Piece -This piece provides integration with CyberArk PTA (Privileged Threat Analytics) for authentication and monitoring. - -## Features - -### PTA Authentication -- **Get Authentication Token**: Retrieve an authentication token from CyberArk PTA server for system health monitoring - -## Authentication - -The CyberArk piece uses custom authentication with the following required fields: - -- **PTA Server URL**: The PTA server URL (e.g., `https://pta-server:8443`) -- **Username**: The username for authentication (typically `Administrator`) -- **Password**: The password for authentication - -## API Reference - -### PTA Get Authentication Token - -**Endpoint**: `POST /api/getauthtoken/` - -**Description**: This method enables a user to get a token upon Web application authentication. You can use this method to monitor the PTA system health. - -**Request Format**: `application/x-www-form-urlencoded` - -**Parameters**: -- `username`: The user name (required) -- `password`: The user password (required) - -**Response**: -- `Token`: An authorized token string - -## URL Guidelines - -- Make sure there are no spaces in the URL -- The following characters are not supported in URL values: `+`, `&`, `%` -- If the URL includes a dot (.), add a forward slash (/) at the end of the URL - -## Return Codes - -The following table lists all the return codes that are returned from the REST APIs: - -| Return Code | Code Number | Description | -|-------------|-------------|-------------| -| Success | 200 | The request succeeded. The actual response will depend on the request method used. | -| Created | 201 | The request was fulfilled and resulted in a new resource being created. | -| No Content | 204 | The server successfully processed the request and is not returning any content (no response body). This code is typically returned by DELETE requests. | -| Bad request | 400 | The request could not be understood by the server due to incorrect syntax. | -| Unauthorized | 401 | The request requires user authentication. | -| Forbidden | 403 | The server received and understood the request, but will not fulfill it. Authorization will not help and the request MUST NOT be repeated. | -| Not Found | 404 | The server did not find anything that matches the Request-URI. No indication is given of whether the condition is temporary or permanent. | -| Conflict | 409 | The request could not be completed due to a conflict with the current state of the resource. | -| Too Many Requests | 429 | The user has sent too many requests in a given amount of time ("rate limiting"). | -| Internal Server Error | 500 | The server encountered an unexpected condition which prevented it from fulfilling the request. | -| Not Implemented | 501 | The server does not support this operation due to version incompatibility. | - ## Building -Run `nx build pieces-cyberark` to build the library. +Run `turbo run build --filter=@activepieces/piece-cyberark` to build the library. diff --git a/packages/pieces/community/dappier/README.md b/packages/pieces/community/dappier/README.md index 5849ee082f3..6b69eb0d92c 100644 --- a/packages/pieces/community/dappier/README.md +++ b/packages/pieces/community/dappier/README.md @@ -1,7 +1,5 @@ # pieces-dappier -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-dappier` to build the library. +Run `turbo run build --filter=@activepieces/piece-dappier` to build the library. diff --git a/packages/pieces/community/dashworks/README.md b/packages/pieces/community/dashworks/README.md index b4fbb20440f..41b615a0d67 100644 --- a/packages/pieces/community/dashworks/README.md +++ b/packages/pieces/community/dashworks/README.md @@ -1,7 +1,5 @@ # pieces-dashworks -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-dashworks` to build the library. +Run `turbo run build --filter=@activepieces/piece-dashworks` to build the library. diff --git a/packages/pieces/community/datadog/README.md b/packages/pieces/community/datadog/README.md index 63848b021a0..4c70110aac6 100644 --- a/packages/pieces/community/datadog/README.md +++ b/packages/pieces/community/datadog/README.md @@ -1,13 +1,5 @@ # pieces-datadog -This library was generated with [Nx](https://nx.dev). - ## Building -- Run `nx build pieces-datadog` to build the library. -- Add `datadog` to `AP_DEV_PIECES` environment variable to test - -## Adding new actions - -- Check the [Datadog API documentation](https://docs.datadoghq.com/api/latest/) to see the available endpoints and parameters. -- Prefer using the typescript SDK ([`@datadog/datadog-api-client`](https://github.com/DataDog/datadog-api-client-typescript)) over the HTTP API for better type safety and documentation. +Run `turbo run build --filter=@activepieces/piece-datadog` to build the library. diff --git a/packages/pieces/community/datadog/package.json b/packages/pieces/community/datadog/package.json index 7465fef9287..d2101465039 100644 --- a/packages/pieces/community/datadog/package.json +++ b/packages/pieces/community/datadog/package.json @@ -10,7 +10,7 @@ "@activepieces/shared": "workspace:*", "@datadog/datadog-api-client": "^1.43.0", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/datafuel/README.md b/packages/pieces/community/datafuel/README.md index 2b0fe417f08..b3f2145d5c5 100644 --- a/packages/pieces/community/datafuel/README.md +++ b/packages/pieces/community/datafuel/README.md @@ -1,7 +1,5 @@ # pieces-datafuel -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-datafuel` to build the library. +Run `turbo run build --filter=@activepieces/piece-datafuel` to build the library. diff --git a/packages/pieces/community/datocms/README.md b/packages/pieces/community/datocms/README.md index 7bfa21add5d..99d1c3820fc 100644 --- a/packages/pieces/community/datocms/README.md +++ b/packages/pieces/community/datocms/README.md @@ -1,7 +1,5 @@ # pieces-datocms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-datocms` to build the library. +Run `turbo run build --filter=@activepieces/piece-datocms` to build the library. diff --git a/packages/pieces/community/deepgram/README.md b/packages/pieces/community/deepgram/README.md index 8cbc003983f..8a7fc588837 100644 --- a/packages/pieces/community/deepgram/README.md +++ b/packages/pieces/community/deepgram/README.md @@ -1,7 +1,5 @@ # pieces-deepgram -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-deepgram` to build the library. +Run `turbo run build --filter=@activepieces/piece-deepgram` to build the library. diff --git a/packages/pieces/community/deepl/README.md b/packages/pieces/community/deepl/README.md index 9e677c7a3f4..b98b8c8f5a7 100644 --- a/packages/pieces/community/deepl/README.md +++ b/packages/pieces/community/deepl/README.md @@ -1,7 +1,5 @@ # pieces-deepl -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-deepl` to build the library. +Run `turbo run build --filter=@activepieces/piece-deepl` to build the library. diff --git a/packages/pieces/community/deepseek/README.md b/packages/pieces/community/deepseek/README.md index 53dd753b130..a7dc64b2ac2 100644 --- a/packages/pieces/community/deepseek/README.md +++ b/packages/pieces/community/deepseek/README.md @@ -1,7 +1,5 @@ # pieces-deepseek -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-deepseek` to build the library. +Run `turbo run build --filter=@activepieces/piece-deepseek` to build the library. diff --git a/packages/pieces/community/deepseek/package.json b/packages/pieces/community/deepseek/package.json index 6d743a601ec..52d7191e31a 100644 --- a/packages/pieces/community/deepseek/package.json +++ b/packages/pieces/community/deepseek/package.json @@ -8,7 +8,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "openai": "4.67.1", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/denser-ai/README.md b/packages/pieces/community/denser-ai/README.md index 0eb883dfc16..c95778f7817 100644 --- a/packages/pieces/community/denser-ai/README.md +++ b/packages/pieces/community/denser-ai/README.md @@ -1,7 +1,5 @@ # pieces-denser-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-denser-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-denser-ai` to build the library. diff --git a/packages/pieces/community/detecting-ai/README.md b/packages/pieces/community/detecting-ai/README.md index 59ff03eac48..40ae40fbb7d 100644 --- a/packages/pieces/community/detecting-ai/README.md +++ b/packages/pieces/community/detecting-ai/README.md @@ -1,7 +1,5 @@ # pieces-detecting-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-detecting-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-detecting-ai` to build the library. diff --git a/packages/pieces/community/devin/README.md b/packages/pieces/community/devin/README.md index 6b3da72eb34..21e5aaa25bc 100644 --- a/packages/pieces/community/devin/README.md +++ b/packages/pieces/community/devin/README.md @@ -1,7 +1,5 @@ # pieces-devin -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-devin` to build the library. +Run `turbo run build --filter=@activepieces/piece-devin` to build the library. diff --git a/packages/pieces/community/digital-ocean/README.md b/packages/pieces/community/digital-ocean/README.md index 04281ea6d3b..0eda6439265 100644 --- a/packages/pieces/community/digital-ocean/README.md +++ b/packages/pieces/community/digital-ocean/README.md @@ -1,7 +1,5 @@ # pieces-digital-ocean -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-digital-ocean` to build the library. +Run `turbo run build --filter=@activepieces/piece-digital-ocean` to build the library. diff --git a/packages/pieces/community/digital-pilot/README.md b/packages/pieces/community/digital-pilot/README.md index 0e0d29f26dd..991a26491dd 100644 --- a/packages/pieces/community/digital-pilot/README.md +++ b/packages/pieces/community/digital-pilot/README.md @@ -1,7 +1,5 @@ # pieces-digital-pilot -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-digital-pilot` to build the library. +Run `turbo run build --filter=@activepieces/piece-digital-pilot` to build the library. diff --git a/packages/pieces/community/dimo/README.md b/packages/pieces/community/dimo/README.md index 84d566ff72c..1089f7f91a1 100644 --- a/packages/pieces/community/dimo/README.md +++ b/packages/pieces/community/dimo/README.md @@ -1,7 +1,5 @@ # pieces-dimo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-dimo` to build the library. +Run `turbo run build --filter=@activepieces/piece-dimo` to build the library. diff --git a/packages/pieces/community/discord/README.md b/packages/pieces/community/discord/README.md index f5285f56899..179f5bebe11 100644 --- a/packages/pieces/community/discord/README.md +++ b/packages/pieces/community/discord/README.md @@ -1,7 +1,5 @@ # pieces-discord -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-discord` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-discord` to build the library. diff --git a/packages/pieces/community/discourse/README.md b/packages/pieces/community/discourse/README.md index c6e4f701651..e5c05648583 100644 --- a/packages/pieces/community/discourse/README.md +++ b/packages/pieces/community/discourse/README.md @@ -1,7 +1,5 @@ # pieces-discourse -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-discourse` to build the library. +Run `turbo run build --filter=@activepieces/piece-discourse` to build the library. diff --git a/packages/pieces/community/dittofeed/README.md b/packages/pieces/community/dittofeed/README.md index 1d973bd125c..a8aa86dcc5d 100644 --- a/packages/pieces/community/dittofeed/README.md +++ b/packages/pieces/community/dittofeed/README.md @@ -1,94 +1,5 @@ # Dittofeed Piece for ActivePieces -This piece provides integration with [Dittofeed](https://dittofeed.com/), a customer data platform for user analytics and tracking. - -## Authentication - -To use the Dittofeed piece, you need to provide: - -1. **API Key**: Your Dittofeed API key for authentication -2. **Base URL**: The base URL of your Dittofeed instance (e.g., `https://api.dittofeed.com` or your self-hosted instance URL) - -## Actions - -### Identify User - -Identify a user in Dittofeed with their unique ID and traits. - -**Parameters:** -- **User ID** (required): A unique identifier for the user -- **User Traits** (optional): An object containing user properties like name, email, etc. - -**Example:** -```json -{ - "userId": "user123", - "traits": { - "name": "John Doe", - "email": "john@example.com", - "plan": "premium" - } -} -``` - -### Track Event - -Track a user event in Dittofeed. - -**Parameters:** -- **User ID** (required): A unique identifier for the user -- **Event** (required): The name of the event to track -- **Properties** (optional): An object containing event properties - -**Example:** -```json -{ - "userId": "user123", - "event": "purchase_completed", - "properties": { - "product": "Premium Plan", - "price": 99.99, - "currency": "USD" - } -} -``` - -### Screen View - -Track a screen view event in Dittofeed. - -**Parameters:** -- **User ID** (required): A unique identifier for the user -- **Name** (required): The name of the screen viewed -- **Properties** (optional): An object containing screen view properties - -**Example:** -```json -{ - "userId": "user123", - "name": "checkout_page", - "properties": { - "referrer": "product_page", - "device": "mobile" - } -} -``` - -## Troubleshooting - -### Common Errors - -1. **Authentication failed**: Check that your API key is correct and has the necessary permissions. -2. **API endpoint not found**: Verify that your base URL is correct and points to a valid Dittofeed instance. -3. **Rate limit exceeded**: You've made too many requests in a short period. Wait and try again later. -4. **Invalid input**: Ensure that your User ID is not empty and that traits/properties are valid objects. - -### Best Practices - -1. Use consistent User IDs across all actions to ensure proper user tracking. -2. Keep event names consistent and descriptive for better analytics. -3. Include relevant properties with events and screen views to capture valuable context. - ## Building -Run `nx build pieces-dittofeed` to build the library. +Run `turbo run build --filter=@activepieces/piece-dittofeed` to build the library. diff --git a/packages/pieces/community/docsbot/README.md b/packages/pieces/community/docsbot/README.md index 648daada4b1..51d05967ef0 100644 --- a/packages/pieces/community/docsbot/README.md +++ b/packages/pieces/community/docsbot/README.md @@ -1,7 +1,5 @@ # pieces-docsbot -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-docsbot` to build the library. +Run `turbo run build --filter=@activepieces/piece-docsbot` to build the library. diff --git a/packages/pieces/community/docsbot/package.json b/packages/pieces/community/docsbot/package.json index 1dd424053d8..b79e9502eba 100644 --- a/packages/pieces/community/docsbot/package.json +++ b/packages/pieces/community/docsbot/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/doctly/README.md b/packages/pieces/community/doctly/README.md index 3af53b5a9b3..d148b6f3d4b 100644 --- a/packages/pieces/community/doctly/README.md +++ b/packages/pieces/community/doctly/README.md @@ -1,7 +1,5 @@ # pieces-doctly -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-doctly` to build the library. +Run `turbo run build --filter=@activepieces/piece-doctly` to build the library. diff --git a/packages/pieces/community/documentpro/README.md b/packages/pieces/community/documentpro/README.md index b88540f27d3..0ec075eb41d 100644 --- a/packages/pieces/community/documentpro/README.md +++ b/packages/pieces/community/documentpro/README.md @@ -1,7 +1,5 @@ # pieces-documentpro -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-documentpro` to build the library. +Run `turbo run build --filter=@activepieces/piece-documentpro` to build the library. diff --git a/packages/pieces/community/documerge/README.md b/packages/pieces/community/documerge/README.md index 27773f6b4bc..0c3d9acad75 100644 --- a/packages/pieces/community/documerge/README.md +++ b/packages/pieces/community/documerge/README.md @@ -1,7 +1,5 @@ # pieces-documerge -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-documerge` to build the library. +Run `turbo run build --filter=@activepieces/piece-documerge` to build the library. diff --git a/packages/pieces/community/docusign/README.md b/packages/pieces/community/docusign/README.md index 53a4b803832..d21478d3cf5 100644 --- a/packages/pieces/community/docusign/README.md +++ b/packages/pieces/community/docusign/README.md @@ -1,7 +1,5 @@ # pieces-docusign -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-docusign` to build the library. +Run `turbo run build --filter=@activepieces/piece-docusign` to build the library. diff --git a/packages/pieces/community/drip/README.md b/packages/pieces/community/drip/README.md index 53f572a4da1..901083c8137 100644 --- a/packages/pieces/community/drip/README.md +++ b/packages/pieces/community/drip/README.md @@ -1,7 +1,5 @@ # pieces-drip -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-drip` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-drip` to build the library. diff --git a/packages/pieces/community/dropbox/README.md b/packages/pieces/community/dropbox/README.md index fdb2586f5b3..a01773e971f 100644 --- a/packages/pieces/community/dropbox/README.md +++ b/packages/pieces/community/dropbox/README.md @@ -1,7 +1,5 @@ # pieces-dropbox -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-dropbox` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-dropbox` to build the library. diff --git a/packages/pieces/community/drupal/README.md b/packages/pieces/community/drupal/README.md index c0edc440fbc..e6096b08bec 100644 --- a/packages/pieces/community/drupal/README.md +++ b/packages/pieces/community/drupal/README.md @@ -1,7 +1,5 @@ # pieces-drupal -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-drupal` to build the library. +Run `turbo run build --filter=@activepieces/piece-drupal` to build the library. diff --git a/packages/pieces/community/duckdb/README.md b/packages/pieces/community/duckdb/README.md index 4af17ab1570..d9a0e80a0e5 100644 --- a/packages/pieces/community/duckdb/README.md +++ b/packages/pieces/community/duckdb/README.md @@ -1,7 +1,5 @@ # pieces-duckdb -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-duckdb` to build the library. +Run `turbo run build --filter=@activepieces/piece-duckdb` to build the library. diff --git a/packages/pieces/community/dumpling-ai/README.md b/packages/pieces/community/dumpling-ai/README.md index 91d70f309ea..0ef1d37fb9d 100644 --- a/packages/pieces/community/dumpling-ai/README.md +++ b/packages/pieces/community/dumpling-ai/README.md @@ -1,7 +1,5 @@ # pieces-dumpling-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-dumpling-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-dumpling-ai` to build the library. diff --git a/packages/pieces/community/dust/README.md b/packages/pieces/community/dust/README.md index 70fd912f9d1..40c65a30e81 100644 --- a/packages/pieces/community/dust/README.md +++ b/packages/pieces/community/dust/README.md @@ -1,7 +1,5 @@ # pieces-dust -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-dust` to build the library. +Run `turbo run build --filter=@activepieces/piece-dust` to build the library. diff --git a/packages/pieces/community/easy-peasy-ai/README.md b/packages/pieces/community/easy-peasy-ai/README.md index 31693bc19bf..43c9c2d43a6 100644 --- a/packages/pieces/community/easy-peasy-ai/README.md +++ b/packages/pieces/community/easy-peasy-ai/README.md @@ -1,7 +1,5 @@ # pieces-easy-peasy-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-easy-peasy-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-easy-peasy-ai` to build the library. diff --git a/packages/pieces/community/echowin/README.md b/packages/pieces/community/echowin/README.md index c2de5cc917b..446635663e6 100644 --- a/packages/pieces/community/echowin/README.md +++ b/packages/pieces/community/echowin/README.md @@ -1,7 +1,5 @@ # pieces-echowin -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-echowin` to build the library. +Run `turbo run build --filter=@activepieces/piece-echowin` to build the library. diff --git a/packages/pieces/community/eden-ai/README.md b/packages/pieces/community/eden-ai/README.md index 24112395a12..c1cb991018f 100644 --- a/packages/pieces/community/eden-ai/README.md +++ b/packages/pieces/community/eden-ai/README.md @@ -1,7 +1,5 @@ # pieces-eden-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-eden-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-eden-ai` to build the library. diff --git a/packages/pieces/community/eden-ai/package.json b/packages/pieces/community/eden-ai/package.json index 0aa01fd7e41..c56e0538ec4 100644 --- a/packages/pieces/community/eden-ai/package.json +++ b/packages/pieces/community/eden-ai/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/elevenlabs/README.md b/packages/pieces/community/elevenlabs/README.md index a49efa84e28..2a15e337a60 100644 --- a/packages/pieces/community/elevenlabs/README.md +++ b/packages/pieces/community/elevenlabs/README.md @@ -1,7 +1,5 @@ # pieces-elevenlabs -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-elevenlabs` to build the library. +Run `turbo run build --filter=@activepieces/piece-elevenlabs` to build the library. diff --git a/packages/pieces/community/emailoctopus/README.md b/packages/pieces/community/emailoctopus/README.md index 3655df1ca70..9d2d4f81228 100644 --- a/packages/pieces/community/emailoctopus/README.md +++ b/packages/pieces/community/emailoctopus/README.md @@ -1,7 +1,5 @@ # pieces-emailoctopus -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-emailoctopus` to build the library. +Run `turbo run build --filter=@activepieces/piece-emailoctopus` to build the library. diff --git a/packages/pieces/community/esignatures/README.md b/packages/pieces/community/esignatures/README.md index 568636d41a6..e845ddb58dc 100644 --- a/packages/pieces/community/esignatures/README.md +++ b/packages/pieces/community/esignatures/README.md @@ -1,7 +1,5 @@ # pieces-esignatures -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-esignatures` to build the library. +Run `turbo run build --filter=@activepieces/piece-esignatures` to build the library. diff --git a/packages/pieces/community/eth-name-service/README.md b/packages/pieces/community/eth-name-service/README.md index d5cfc7393a0..70268b60a3f 100644 --- a/packages/pieces/community/eth-name-service/README.md +++ b/packages/pieces/community/eth-name-service/README.md @@ -1,7 +1,5 @@ # pieces-eth-name-service -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-eth-name-service` to build the library. +Run `turbo run build --filter=@activepieces/piece-eth-name-service` to build the library. diff --git a/packages/pieces/community/exa/README.md b/packages/pieces/community/exa/README.md index 051d889e642..241e375a12d 100644 --- a/packages/pieces/community/exa/README.md +++ b/packages/pieces/community/exa/README.md @@ -1,7 +1,5 @@ # pieces-exa -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-exa` to build the library. +Run `turbo run build --filter=@activepieces/piece-exa` to build the library. diff --git a/packages/pieces/community/extracta-ai/README.md b/packages/pieces/community/extracta-ai/README.md index cc1213ae9ae..0ab28691f65 100644 --- a/packages/pieces/community/extracta-ai/README.md +++ b/packages/pieces/community/extracta-ai/README.md @@ -1,7 +1,5 @@ # pieces-extracta-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-extracta-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-extracta-ai` to build the library. diff --git a/packages/pieces/community/facebook-leads/README.md b/packages/pieces/community/facebook-leads/README.md index 844d5ee35f8..53da4f4eb8f 100644 --- a/packages/pieces/community/facebook-leads/README.md +++ b/packages/pieces/community/facebook-leads/README.md @@ -1,7 +1,5 @@ # pieces-facebook-leads -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-facebook-leads` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-facebook-leads` to build the library. diff --git a/packages/pieces/community/facebook-pages/README.md b/packages/pieces/community/facebook-pages/README.md index 737b43a9ea5..2e499515947 100644 --- a/packages/pieces/community/facebook-pages/README.md +++ b/packages/pieces/community/facebook-pages/README.md @@ -1,7 +1,5 @@ # pieces-facebook-pages -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-facebook-pages` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-facebook-pages` to build the library. diff --git a/packages/pieces/community/famulor/README.md b/packages/pieces/community/famulor/README.md index 58ab0a9b006..c243f96ca3b 100644 --- a/packages/pieces/community/famulor/README.md +++ b/packages/pieces/community/famulor/README.md @@ -1,7 +1,5 @@ # pieces-famulor -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-famulor` to build the library. +Run `turbo run build --filter=@activepieces/piece-famulor` to build the library. diff --git a/packages/pieces/community/famulor/package.json b/packages/pieces/community/famulor/package.json index 1fc962b992f..16ecca7676e 100644 --- a/packages/pieces/community/famulor/package.json +++ b/packages/pieces/community/famulor/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/fathom/README.md b/packages/pieces/community/fathom/README.md index 0efbdeababf..d1ad4538359 100644 --- a/packages/pieces/community/fathom/README.md +++ b/packages/pieces/community/fathom/README.md @@ -1,7 +1,5 @@ # pieces-fathom -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fathom` to build the library. +Run `turbo run build --filter=@activepieces/piece-fathom` to build the library. diff --git a/packages/pieces/community/feathery/README.md b/packages/pieces/community/feathery/README.md index 236aafb4a81..072a608c3a4 100644 --- a/packages/pieces/community/feathery/README.md +++ b/packages/pieces/community/feathery/README.md @@ -1,7 +1,5 @@ # pieces-feathery -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-feathery` to build the library. +Run `turbo run build --filter=@activepieces/piece-feathery` to build the library. diff --git a/packages/pieces/community/fellow/README.md b/packages/pieces/community/fellow/README.md index eedc36985ed..bdb57fb3cc4 100644 --- a/packages/pieces/community/fellow/README.md +++ b/packages/pieces/community/fellow/README.md @@ -1,7 +1,5 @@ # pieces-fellow -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fellow` to build the library. +Run `turbo run build --filter=@activepieces/piece-fellow` to build the library. diff --git a/packages/pieces/community/figma/README.md b/packages/pieces/community/figma/README.md index a0728d3056c..ef0b9a3565a 100644 --- a/packages/pieces/community/figma/README.md +++ b/packages/pieces/community/figma/README.md @@ -1,7 +1,5 @@ # pieces-figma -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-figma` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-figma` to build the library. diff --git a/packages/pieces/community/fillout-forms/README.md b/packages/pieces/community/fillout-forms/README.md index 7444dfd8aa7..cfbd947decf 100644 --- a/packages/pieces/community/fillout-forms/README.md +++ b/packages/pieces/community/fillout-forms/README.md @@ -1,7 +1,5 @@ # pieces-fillout-forms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fillout-forms` to build the library. +Run `turbo run build --filter=@activepieces/piece-fillout-forms` to build the library. diff --git a/packages/pieces/community/fireberry/README.md b/packages/pieces/community/fireberry/README.md index 927cf7d3538..a3f7c40f25b 100644 --- a/packages/pieces/community/fireberry/README.md +++ b/packages/pieces/community/fireberry/README.md @@ -1,7 +1,5 @@ # pieces-fireberry -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fireberry` to build the library. +Run `turbo run build --filter=@activepieces/piece-fireberry` to build the library. diff --git a/packages/pieces/community/firecrawl/README.md b/packages/pieces/community/firecrawl/README.md index 23287c1635c..44c4c9b438b 100644 --- a/packages/pieces/community/firecrawl/README.md +++ b/packages/pieces/community/firecrawl/README.md @@ -1,7 +1,5 @@ # pieces-firecrawl -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-firecrawl` to build the library. +Run `turbo run build --filter=@activepieces/piece-firecrawl` to build the library. diff --git a/packages/pieces/community/fireflies-ai/README.md b/packages/pieces/community/fireflies-ai/README.md index de5bb429c56..5b832f83865 100644 --- a/packages/pieces/community/fireflies-ai/README.md +++ b/packages/pieces/community/fireflies-ai/README.md @@ -1,7 +1,5 @@ # pieces-fireflies-ai -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx build pieces-fireflies-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-fireflies-ai` to build the library. diff --git a/packages/pieces/community/flipando/README.md b/packages/pieces/community/flipando/README.md index 48ebaff8b1c..339f3a8c110 100644 --- a/packages/pieces/community/flipando/README.md +++ b/packages/pieces/community/flipando/README.md @@ -1,7 +1,5 @@ # pieces-flipando -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-flipando` to build the library. +Run `turbo run build --filter=@activepieces/piece-flipando` to build the library. diff --git a/packages/pieces/community/fliqr-ai/README.md b/packages/pieces/community/fliqr-ai/README.md index 25e3916d55b..fabef38d943 100644 --- a/packages/pieces/community/fliqr-ai/README.md +++ b/packages/pieces/community/fliqr-ai/README.md @@ -1,7 +1,5 @@ # pieces-fliqr-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fliqr-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-fliqr-ai` to build the library. diff --git a/packages/pieces/community/flow-helper/README.md b/packages/pieces/community/flow-helper/README.md index 8023acb6cda..19bc165985e 100644 --- a/packages/pieces/community/flow-helper/README.md +++ b/packages/pieces/community/flow-helper/README.md @@ -1,7 +1,5 @@ # pieces-flow-helper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-flow-helper` to build the library. +Run `turbo run build --filter=@activepieces/piece-flow-helper` to build the library. diff --git a/packages/pieces/community/flow-parser/README.md b/packages/pieces/community/flow-parser/README.md index ad2072acb18..407d673b544 100644 --- a/packages/pieces/community/flow-parser/README.md +++ b/packages/pieces/community/flow-parser/README.md @@ -1,7 +1,5 @@ # pieces-flow-parser -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-flow-parser` to build the library. +Run `turbo run build --filter=@activepieces/piece-flow-parser` to build the library. diff --git a/packages/pieces/community/flowise/README.md b/packages/pieces/community/flowise/README.md index 31c955ed0fd..f2b60ee8e43 100644 --- a/packages/pieces/community/flowise/README.md +++ b/packages/pieces/community/flowise/README.md @@ -1,7 +1,5 @@ # pieces-flowise -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-flowise` to build the library. +Run `turbo run build --filter=@activepieces/piece-flowise` to build the library. diff --git a/packages/pieces/community/flowlu/README.md b/packages/pieces/community/flowlu/README.md index 0b54a447e81..2e0ab68c075 100644 --- a/packages/pieces/community/flowlu/README.md +++ b/packages/pieces/community/flowlu/README.md @@ -1,7 +1,5 @@ # pieces-flowlu -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-flowlu` to build the library. +Run `turbo run build --filter=@activepieces/piece-flowlu` to build the library. diff --git a/packages/pieces/community/folk/README.md b/packages/pieces/community/folk/README.md index 095238ca34c..f456671f450 100644 --- a/packages/pieces/community/folk/README.md +++ b/packages/pieces/community/folk/README.md @@ -1,7 +1,5 @@ # pieces-folk -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-folk` to build the library. +Run `turbo run build --filter=@activepieces/piece-folk` to build the library. diff --git a/packages/pieces/community/foreplay-co/README.md b/packages/pieces/community/foreplay-co/README.md index 5557c5f32a6..505139663be 100644 --- a/packages/pieces/community/foreplay-co/README.md +++ b/packages/pieces/community/foreplay-co/README.md @@ -1,7 +1,5 @@ # pieces-foreplay-co -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-foreplay-co` to build the library. +Run `turbo run build --filter=@activepieces/piece-foreplay-co` to build the library. diff --git a/packages/pieces/community/foreplay-co/package.json b/packages/pieces/community/foreplay-co/package.json index 59a422d5d7e..ef8440e7856 100644 --- a/packages/pieces/community/foreplay-co/package.json +++ b/packages/pieces/community/foreplay-co/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/formbricks/README.md b/packages/pieces/community/formbricks/README.md index 52321adafb5..e0a31b4c0d2 100644 --- a/packages/pieces/community/formbricks/README.md +++ b/packages/pieces/community/formbricks/README.md @@ -1,7 +1,5 @@ # pieces-formbricks -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-formbricks` to build the library. +Run `turbo run build --filter=@activepieces/piece-formbricks` to build the library. diff --git a/packages/pieces/community/formitable/README.md b/packages/pieces/community/formitable/README.md index cf815721eb9..73b39d31857 100644 --- a/packages/pieces/community/formitable/README.md +++ b/packages/pieces/community/formitable/README.md @@ -1,7 +1,5 @@ # pieces-formitable -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-formitable` to build the library. +Run `turbo run build --filter=@activepieces/piece-formitable` to build the library. diff --git a/packages/pieces/community/formsite/README.md b/packages/pieces/community/formsite/README.md index bb6792cd0a4..f09419968e4 100644 --- a/packages/pieces/community/formsite/README.md +++ b/packages/pieces/community/formsite/README.md @@ -1,7 +1,5 @@ # pieces-formsite -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-formsite` to build the library. +Run `turbo run build --filter=@activepieces/piece-formsite` to build the library. diff --git a/packages/pieces/community/formspark/README.md b/packages/pieces/community/formspark/README.md index 26152e2eb72..fcba827ff68 100644 --- a/packages/pieces/community/formspark/README.md +++ b/packages/pieces/community/formspark/README.md @@ -1,7 +1,5 @@ # pieces-formspark -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-formspark` to build the library. +Run `turbo run build --filter=@activepieces/piece-formspark` to build the library. diff --git a/packages/pieces/community/formstack/README.md b/packages/pieces/community/formstack/README.md index 77fbe0618ec..007e56206b9 100644 --- a/packages/pieces/community/formstack/README.md +++ b/packages/pieces/community/formstack/README.md @@ -1,7 +1,5 @@ # pieces-formstack -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-formstack` to build the library. +Run `turbo run build --filter=@activepieces/piece-formstack` to build the library. diff --git a/packages/pieces/community/fountain/README.md b/packages/pieces/community/fountain/README.md index d6f4ab93007..0ba22fddc6b 100644 --- a/packages/pieces/community/fountain/README.md +++ b/packages/pieces/community/fountain/README.md @@ -1,7 +1,5 @@ # pieces-fountain -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fountain` to build the library. +Run `turbo run build --filter=@activepieces/piece-fountain` to build the library. diff --git a/packages/pieces/community/fragment/README.md b/packages/pieces/community/fragment/README.md index f3d6bb7d216..580050b1a18 100644 --- a/packages/pieces/community/fragment/README.md +++ b/packages/pieces/community/fragment/README.md @@ -1,7 +1,5 @@ # pieces-fragment -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fragment` to build the library. +Run `turbo run build --filter=@activepieces/piece-fragment` to build the library. diff --git a/packages/pieces/community/frame/README.md b/packages/pieces/community/frame/README.md index 5017b783a3e..9dcaa3f96c6 100644 --- a/packages/pieces/community/frame/README.md +++ b/packages/pieces/community/frame/README.md @@ -1,7 +1,5 @@ # pieces-frame -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-frame` to build the library. +Run `turbo run build --filter=@activepieces/piece-frame` to build the library. diff --git a/packages/pieces/community/free-agent/README.md b/packages/pieces/community/free-agent/README.md index e47be09b75c..3795db2a7d1 100644 --- a/packages/pieces/community/free-agent/README.md +++ b/packages/pieces/community/free-agent/README.md @@ -1,7 +1,5 @@ # pieces-free-agent -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-free-agent` to build the library. +Run `turbo run build --filter=@activepieces/piece-free-agent` to build the library. diff --git a/packages/pieces/community/freshdesk/README.md b/packages/pieces/community/freshdesk/README.md index 5a2df9e5fa8..246b325784f 100644 --- a/packages/pieces/community/freshdesk/README.md +++ b/packages/pieces/community/freshdesk/README.md @@ -1,7 +1,5 @@ # pieces-freshdesk -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-freshdesk` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-freshdesk` to build the library. diff --git a/packages/pieces/community/freshsales/README.md b/packages/pieces/community/freshsales/README.md index e134df25c91..c241a3e0fbc 100644 --- a/packages/pieces/community/freshsales/README.md +++ b/packages/pieces/community/freshsales/README.md @@ -1,7 +1,5 @@ # pieces-freshsales -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-freshsales` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-freshsales` to build the library. diff --git a/packages/pieces/community/front/README.md b/packages/pieces/community/front/README.md index b692fe585fe..ada77469dff 100644 --- a/packages/pieces/community/front/README.md +++ b/packages/pieces/community/front/README.md @@ -1,7 +1,5 @@ # pieces-front -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-front` to build the library. +Run `turbo run build --filter=@activepieces/piece-front` to build the library. diff --git a/packages/pieces/community/gameball/README.md b/packages/pieces/community/gameball/README.md index 505259b3579..8c789dcdd0e 100644 --- a/packages/pieces/community/gameball/README.md +++ b/packages/pieces/community/gameball/README.md @@ -1,7 +1,5 @@ # pieces-gameball -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-gameball` to build the library. +Run `turbo run build --filter=@activepieces/piece-gameball` to build the library. diff --git a/packages/pieces/community/gamma/README.md b/packages/pieces/community/gamma/README.md index acad11c3f82..ac9735b093a 100644 --- a/packages/pieces/community/gamma/README.md +++ b/packages/pieces/community/gamma/README.md @@ -1,7 +1,5 @@ # pieces-gamma -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-gamma` to build the library. +Run `turbo run build --filter=@activepieces/piece-gamma` to build the library. diff --git a/packages/pieces/community/gcloud-pubsub/README.md b/packages/pieces/community/gcloud-pubsub/README.md index 94e6c5eebda..68ca4d48b0e 100644 --- a/packages/pieces/community/gcloud-pubsub/README.md +++ b/packages/pieces/community/gcloud-pubsub/README.md @@ -1,7 +1,5 @@ # pieces-gcloud-pubsub -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-gcoud-pubsub` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-gcloud-pubsub` to build the library. diff --git a/packages/pieces/community/gender-api/README.md b/packages/pieces/community/gender-api/README.md index 6b268045032..1695bdf0f65 100644 --- a/packages/pieces/community/gender-api/README.md +++ b/packages/pieces/community/gender-api/README.md @@ -1,7 +1,5 @@ # pieces-gender-api -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-gender-api` to build the library. +Run `turbo run build --filter=@activepieces/piece-gender-api` to build the library. diff --git a/packages/pieces/community/generatebanners/README.md b/packages/pieces/community/generatebanners/README.md index b0505308464..33b158d3cc5 100644 --- a/packages/pieces/community/generatebanners/README.md +++ b/packages/pieces/community/generatebanners/README.md @@ -1,7 +1,5 @@ # pieces-generatebanners -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-generatebanners` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-generatebanners` to build the library. diff --git a/packages/pieces/community/ghostcms/README.md b/packages/pieces/community/ghostcms/README.md index 9195dd22c20..0c545baf701 100644 --- a/packages/pieces/community/ghostcms/README.md +++ b/packages/pieces/community/ghostcms/README.md @@ -1,7 +1,5 @@ # pieces-ghostcms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-ghostcms` to build the library. +Run `turbo run build --filter=@activepieces/piece-ghostcms` to build the library. diff --git a/packages/pieces/community/giftbit/README.md b/packages/pieces/community/giftbit/README.md index 9115ea84788..a7bae1d1033 100644 --- a/packages/pieces/community/giftbit/README.md +++ b/packages/pieces/community/giftbit/README.md @@ -1,7 +1,5 @@ # pieces-giftbit -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-giftbit` to build the library. +Run `turbo run build --filter=@activepieces/piece-giftbit` to build the library. diff --git a/packages/pieces/community/github/README.md b/packages/pieces/community/github/README.md index d04ab9d87f5..fe7acab02f0 100644 --- a/packages/pieces/community/github/README.md +++ b/packages/pieces/community/github/README.md @@ -1,7 +1,5 @@ # pieces-github -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-github` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-github` to build the library. diff --git a/packages/pieces/community/gitlab/README.md b/packages/pieces/community/gitlab/README.md index 720ad8e9ebd..d90f484ce18 100644 --- a/packages/pieces/community/gitlab/README.md +++ b/packages/pieces/community/gitlab/README.md @@ -1,7 +1,5 @@ # pieces-gitlab -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-gitlab` to build the library. +Run `turbo run build --filter=@activepieces/piece-gitlab` to build the library. diff --git a/packages/pieces/community/gladia/README.md b/packages/pieces/community/gladia/README.md index 639f4dfde58..1d35a2324b3 100644 --- a/packages/pieces/community/gladia/README.md +++ b/packages/pieces/community/gladia/README.md @@ -1,7 +1,5 @@ # pieces-gladia -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-gladia` to build the library. +Run `turbo run build --filter=@activepieces/piece-gladia` to build the library. diff --git a/packages/pieces/community/gmail/README.md b/packages/pieces/community/gmail/README.md index edbe70130e2..a49b5618bbe 100644 --- a/packages/pieces/community/gmail/README.md +++ b/packages/pieces/community/gmail/README.md @@ -1,7 +1,5 @@ # pieces-gmail -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-gmail` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-gmail` to build the library. diff --git a/packages/pieces/community/google-calendar/README.md b/packages/pieces/community/google-calendar/README.md index 6937b5f5aa1..0d7291a64cd 100644 --- a/packages/pieces/community/google-calendar/README.md +++ b/packages/pieces/community/google-calendar/README.md @@ -1,7 +1,5 @@ # pieces-google-calendar -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-calendar` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-calendar` to build the library. diff --git a/packages/pieces/community/google-cloud-storage/README.md b/packages/pieces/community/google-cloud-storage/README.md index 089d959ff02..76d0cf0dc9d 100644 --- a/packages/pieces/community/google-cloud-storage/README.md +++ b/packages/pieces/community/google-cloud-storage/README.md @@ -1,7 +1,5 @@ # pieces-google-cloud-storage -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-google-cloud-storage` to build the library. \ No newline at end of file +Run `turbo run build --filter=@activepieces/piece-google-cloud-storage` to build the library. diff --git a/packages/pieces/community/google-contacts/README.md b/packages/pieces/community/google-contacts/README.md index 5e5c6e36634..d502dbf2d09 100644 --- a/packages/pieces/community/google-contacts/README.md +++ b/packages/pieces/community/google-contacts/README.md @@ -1,7 +1,5 @@ # pieces-google-contacts -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-contacts` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-contacts` to build the library. diff --git a/packages/pieces/community/google-docs/README.md b/packages/pieces/community/google-docs/README.md index eaa76166d24..d175d2b830f 100644 --- a/packages/pieces/community/google-docs/README.md +++ b/packages/pieces/community/google-docs/README.md @@ -1,7 +1,5 @@ # pieces-google-docs -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-docs` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-docs` to build the library. diff --git a/packages/pieces/community/google-drive/README.md b/packages/pieces/community/google-drive/README.md index 985debf5904..1b20d639747 100644 --- a/packages/pieces/community/google-drive/README.md +++ b/packages/pieces/community/google-drive/README.md @@ -1,7 +1,5 @@ # pieces-google-drive -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-drive` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-drive` to build the library. diff --git a/packages/pieces/community/google-forms/README.md b/packages/pieces/community/google-forms/README.md index eb00fff57c8..bd1dbf478c7 100644 --- a/packages/pieces/community/google-forms/README.md +++ b/packages/pieces/community/google-forms/README.md @@ -1,7 +1,5 @@ # pieces-google-forms -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-forms` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-forms` to build the library. diff --git a/packages/pieces/community/google-gemini/README.md b/packages/pieces/community/google-gemini/README.md index c40341741f9..f24c5f1c271 100644 --- a/packages/pieces/community/google-gemini/README.md +++ b/packages/pieces/community/google-gemini/README.md @@ -1,7 +1,5 @@ # pieces-google-gemini -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-google-gemini` to build the library. +Run `turbo run build --filter=@activepieces/piece-google-gemini` to build the library. diff --git a/packages/pieces/community/google-gemini/package.json b/packages/pieces/community/google-gemini/package.json index c6ca644853c..7792325c344 100644 --- a/packages/pieces/community/google-gemini/package.json +++ b/packages/pieces/community/google-gemini/package.json @@ -12,7 +12,7 @@ "mime-types": "2.1.35", "nanoid": "3.3.8", "wav": "^1.0.2", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/community/google-my-business/README.md b/packages/pieces/community/google-my-business/README.md index 2408495616d..a2e6f3ca974 100644 --- a/packages/pieces/community/google-my-business/README.md +++ b/packages/pieces/community/google-my-business/README.md @@ -1,7 +1,5 @@ # pieces-google-my-business -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-my-business` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-my-business` to build the library. diff --git a/packages/pieces/community/google-my-business/package.json b/packages/pieces/community/google-my-business/package.json index 514aa5fa211..5e5d364b98a 100644 --- a/packages/pieces/community/google-my-business/package.json +++ b/packages/pieces/community/google-my-business/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/google-search-console/README.md b/packages/pieces/community/google-search-console/README.md index 9e1cb085871..890c7843d60 100644 --- a/packages/pieces/community/google-search-console/README.md +++ b/packages/pieces/community/google-search-console/README.md @@ -1,7 +1,5 @@ # pieces-google-search-console -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-google-search-console` to build the library. +Run `turbo run build --filter=@activepieces/piece-google-search-console` to build the library. diff --git a/packages/pieces/community/google-search/README.md b/packages/pieces/community/google-search/README.md index 465e52d741a..2e6f4a6573e 100644 --- a/packages/pieces/community/google-search/README.md +++ b/packages/pieces/community/google-search/README.md @@ -1,7 +1,5 @@ # pieces-google-search -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-google-search` to build the library. +Run `turbo run build --filter=@activepieces/piece-google-search` to build the library. diff --git a/packages/pieces/community/google-sheets/README.md b/packages/pieces/community/google-sheets/README.md index 38c062f3db7..6855af25493 100644 --- a/packages/pieces/community/google-sheets/README.md +++ b/packages/pieces/community/google-sheets/README.md @@ -1,7 +1,5 @@ # pieces-google-sheets -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-sheets` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-sheets` to build the library. diff --git a/packages/pieces/community/google-sheets/package.json b/packages/pieces/community/google-sheets/package.json index 7c3dfa7200e..42f6c6e06bd 100644 --- a/packages/pieces/community/google-sheets/package.json +++ b/packages/pieces/community/google-sheets/package.json @@ -14,7 +14,7 @@ "googleapis-common": "7.2.0", "lodash": "4.17.23", "nanoid": "3.3.8", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/google-slides/README.md b/packages/pieces/community/google-slides/README.md index b78819e305a..c690f091180 100644 --- a/packages/pieces/community/google-slides/README.md +++ b/packages/pieces/community/google-slides/README.md @@ -1,7 +1,5 @@ # pieces-google-slide -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-google-slides` to build the library. +Run `turbo run build --filter=@activepieces/piece-google-slides` to build the library. diff --git a/packages/pieces/community/google-tasks/README.md b/packages/pieces/community/google-tasks/README.md index 26ab98b6c79..5d5b2070ee1 100644 --- a/packages/pieces/community/google-tasks/README.md +++ b/packages/pieces/community/google-tasks/README.md @@ -1,7 +1,5 @@ # pieces-google-tasks -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-google-tasks` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-google-tasks` to build the library. diff --git a/packages/pieces/community/googlechat/README.md b/packages/pieces/community/googlechat/README.md index 1b790ab50f5..69ddaa23d15 100644 --- a/packages/pieces/community/googlechat/README.md +++ b/packages/pieces/community/googlechat/README.md @@ -1,7 +1,5 @@ # pieces-googlechat -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-googlechat` to build the library. +Run `turbo run build --filter=@activepieces/piece-googlechat` to build the library. diff --git a/packages/pieces/community/googlechat/package.json b/packages/pieces/community/googlechat/package.json index 27639001860..9f7a9d69629 100644 --- a/packages/pieces/community/googlechat/package.json +++ b/packages/pieces/community/googlechat/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/gotify/README.md b/packages/pieces/community/gotify/README.md index 1ac7d8f85e6..be2775d6414 100644 --- a/packages/pieces/community/gotify/README.md +++ b/packages/pieces/community/gotify/README.md @@ -1,7 +1,5 @@ # pieces-gotify -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-gotify` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-gotify` to build the library. diff --git a/packages/pieces/community/gptzero-detect-ai/README.md b/packages/pieces/community/gptzero-detect-ai/README.md index 661d81cded4..9037d6abf87 100644 --- a/packages/pieces/community/gptzero-detect-ai/README.md +++ b/packages/pieces/community/gptzero-detect-ai/README.md @@ -1,7 +1,5 @@ # pieces-gptzero-detect-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-gptzero-detect-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-gptzero-detect-ai` to build the library. diff --git a/packages/pieces/community/gravityforms/README.md b/packages/pieces/community/gravityforms/README.md index 6f43d85ee3d..6853a8c6edd 100644 --- a/packages/pieces/community/gravityforms/README.md +++ b/packages/pieces/community/gravityforms/README.md @@ -1,7 +1,5 @@ # pieces-gravityforms -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-gravityforms` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-gravityforms` to build the library. diff --git a/packages/pieces/community/greenpt/README.md b/packages/pieces/community/greenpt/README.md index 5d24ffea421..576a688b5ad 100644 --- a/packages/pieces/community/greenpt/README.md +++ b/packages/pieces/community/greenpt/README.md @@ -1,7 +1,5 @@ # pieces-greenpt -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-greenpt` to build the library. +Run `turbo run build --filter=@activepieces/piece-greenpt` to build the library. diff --git a/packages/pieces/community/greip/README.md b/packages/pieces/community/greip/README.md index cdc70d7ec84..0ebbf7118a5 100644 --- a/packages/pieces/community/greip/README.md +++ b/packages/pieces/community/greip/README.md @@ -1,7 +1,5 @@ # pieces-greip -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-greip` to build the library. +Run `turbo run build --filter=@activepieces/piece-greip` to build the library. diff --git a/packages/pieces/community/griptape/README.md b/packages/pieces/community/griptape/README.md index c75e8917ada..b8c9800d82c 100644 --- a/packages/pieces/community/griptape/README.md +++ b/packages/pieces/community/griptape/README.md @@ -1,7 +1,5 @@ # pieces-griptape -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-griptape` to build the library. +Run `turbo run build --filter=@activepieces/piece-griptape` to build the library. diff --git a/packages/pieces/community/grist/README.md b/packages/pieces/community/grist/README.md index d8e4aa697e6..56140cf9989 100644 --- a/packages/pieces/community/grist/README.md +++ b/packages/pieces/community/grist/README.md @@ -1,7 +1,5 @@ # pieces-grist -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-grist` to build the library. +Run `turbo run build --filter=@activepieces/piece-grist` to build the library. diff --git a/packages/pieces/community/grok-xai/README.md b/packages/pieces/community/grok-xai/README.md index a5fdcc1c8d9..de6d6d3f5cb 100644 --- a/packages/pieces/community/grok-xai/README.md +++ b/packages/pieces/community/grok-xai/README.md @@ -1,7 +1,5 @@ # pieces-grok-xai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-grok-xai` to build the library. +Run `turbo run build --filter=@activepieces/piece-grok-xai` to build the library. diff --git a/packages/pieces/community/grok-xai/package.json b/packages/pieces/community/grok-xai/package.json index 091fb7954c4..11c0ba50086 100644 --- a/packages/pieces/community/grok-xai/package.json +++ b/packages/pieces/community/grok-xai/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/groq/README.md b/packages/pieces/community/groq/README.md index f0d02169f90..77824328184 100644 --- a/packages/pieces/community/groq/README.md +++ b/packages/pieces/community/groq/README.md @@ -1,7 +1,5 @@ # pieces-groq -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-groq` to build the library. +Run `turbo run build --filter=@activepieces/piece-groq` to build the library. diff --git a/packages/pieces/community/guidelite/README.md b/packages/pieces/community/guidelite/README.md index 7d2c2199a06..f2213b6bc16 100644 --- a/packages/pieces/community/guidelite/README.md +++ b/packages/pieces/community/guidelite/README.md @@ -1,7 +1,5 @@ # pieces-guidelite -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-guidelite` to build the library. +Run `turbo run build --filter=@activepieces/piece-guidelite` to build the library. diff --git a/packages/pieces/community/hackernews/README.md b/packages/pieces/community/hackernews/README.md index e6fa5041966..00562c5135f 100644 --- a/packages/pieces/community/hackernews/README.md +++ b/packages/pieces/community/hackernews/README.md @@ -1,7 +1,5 @@ # pieces-hackernews -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-hackernews` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-hackernews` to build the library. diff --git a/packages/pieces/community/harvest/README.md b/packages/pieces/community/harvest/README.md index ba47e72f525..464d2a65ec9 100644 --- a/packages/pieces/community/harvest/README.md +++ b/packages/pieces/community/harvest/README.md @@ -1,7 +1,5 @@ # pieces-harvest -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-harvest` to build the library. +Run `turbo run build --filter=@activepieces/piece-harvest` to build the library. diff --git a/packages/pieces/community/harvest/package.json b/packages/pieces/community/harvest/package.json index 9ee02f7ad6f..0db3e7357a6 100644 --- a/packages/pieces/community/harvest/package.json +++ b/packages/pieces/community/harvest/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/hashi-corp-vault/README.md b/packages/pieces/community/hashi-corp-vault/README.md index 9af0260aa4a..58a5fcef1fb 100644 --- a/packages/pieces/community/hashi-corp-vault/README.md +++ b/packages/pieces/community/hashi-corp-vault/README.md @@ -1,7 +1,5 @@ # pieces-hashi-corp-vault -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-hashi-corp-vault` to build the library. +Run `turbo run build --filter=@activepieces/piece-hashi-corp-vault` to build the library. diff --git a/packages/pieces/community/hastewire/README.md b/packages/pieces/community/hastewire/README.md index 11028d2a1c2..6c6ffadbab4 100644 --- a/packages/pieces/community/hastewire/README.md +++ b/packages/pieces/community/hastewire/README.md @@ -1,7 +1,5 @@ # pieces-hastewire -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-hastewire` to build the library. +Run `turbo run build --filter=@activepieces/piece-hastewire` to build the library. diff --git a/packages/pieces/community/heartbeat/README.md b/packages/pieces/community/heartbeat/README.md index 2173d433dc3..cae774277f4 100644 --- a/packages/pieces/community/heartbeat/README.md +++ b/packages/pieces/community/heartbeat/README.md @@ -1,7 +1,5 @@ # pieces-heartbeat -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-heartbeat` to build the library. +Run `turbo run build --filter=@activepieces/piece-heartbeat` to build the library. diff --git a/packages/pieces/community/heartbeat/package.json b/packages/pieces/community/heartbeat/package.json index b99c1510bac..5e8ee59b842 100644 --- a/packages/pieces/community/heartbeat/package.json +++ b/packages/pieces/community/heartbeat/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/help-scout/README.md b/packages/pieces/community/help-scout/README.md index 547f89e0f53..b58b0614b58 100644 --- a/packages/pieces/community/help-scout/README.md +++ b/packages/pieces/community/help-scout/README.md @@ -1,7 +1,5 @@ # pieces-help-scout -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-help-scout` to build the library. +Run `turbo run build --filter=@activepieces/piece-help-scout` to build the library. diff --git a/packages/pieces/community/help-scout/package.json b/packages/pieces/community/help-scout/package.json index 1d640ccdc50..967fd242c7a 100644 --- a/packages/pieces/community/help-scout/package.json +++ b/packages/pieces/community/help-scout/package.json @@ -10,7 +10,7 @@ "@activepieces/shared": "workspace:*", "axios": "1.13.5", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/heygen/README.md b/packages/pieces/community/heygen/README.md index 149ab19cd21..887eecdb299 100644 --- a/packages/pieces/community/heygen/README.md +++ b/packages/pieces/community/heygen/README.md @@ -1,7 +1,5 @@ # pieces-heygen -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-heygen` to build the library. +Run `turbo run build --filter=@activepieces/piece-heygen` to build the library. diff --git a/packages/pieces/community/heymarket-sms/README.md b/packages/pieces/community/heymarket-sms/README.md index e69c251b840..9c8dd7720ff 100644 --- a/packages/pieces/community/heymarket-sms/README.md +++ b/packages/pieces/community/heymarket-sms/README.md @@ -1,7 +1,5 @@ # pieces-heymarket-sms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-heymarket-sms` to build the library. +Run `turbo run build --filter=@activepieces/piece-heymarket-sms` to build the library. diff --git a/packages/pieces/community/housecall-pro/README.md b/packages/pieces/community/housecall-pro/README.md index 16d8c999fca..621e280ff36 100644 --- a/packages/pieces/community/housecall-pro/README.md +++ b/packages/pieces/community/housecall-pro/README.md @@ -1,7 +1,5 @@ # pieces-housecall-pro -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-housecall-pro` to build the library. +Run `turbo run build --filter=@activepieces/piece-housecall-pro` to build the library. diff --git a/packages/pieces/community/housecall-pro/package.json b/packages/pieces/community/housecall-pro/package.json index f9b910331aa..fab2054cf98 100644 --- a/packages/pieces/community/housecall-pro/package.json +++ b/packages/pieces/community/housecall-pro/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/http-oauth2/README.md b/packages/pieces/community/http-oauth2/README.md index c237029cb4e..98304975434 100644 --- a/packages/pieces/community/http-oauth2/README.md +++ b/packages/pieces/community/http-oauth2/README.md @@ -1,7 +1,5 @@ # pieces-http-oauth2 -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-http-oauth2` to build the library. +Run `turbo run build --filter=@activepieces/piece-http-oauth2` to build the library. diff --git a/packages/pieces/community/hubspot/README.md b/packages/pieces/community/hubspot/README.md index a7df6e7407e..a833e3a2465 100644 --- a/packages/pieces/community/hubspot/README.md +++ b/packages/pieces/community/hubspot/README.md @@ -1,7 +1,5 @@ # pieces-hubspot -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-hubspot` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-hubspot` to build the library. diff --git a/packages/pieces/community/hugging-face/README.md b/packages/pieces/community/hugging-face/README.md index d2c2f99b465..a8cfc6afef2 100644 --- a/packages/pieces/community/hugging-face/README.md +++ b/packages/pieces/community/hugging-face/README.md @@ -1,7 +1,5 @@ # pieces-hugging-face -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-hugging-face` to build the library. +Run `turbo run build --filter=@activepieces/piece-hugging-face` to build the library. diff --git a/packages/pieces/community/hume-ai/README.md b/packages/pieces/community/hume-ai/README.md index 5ed18dc33bb..c5ee8072977 100644 --- a/packages/pieces/community/hume-ai/README.md +++ b/packages/pieces/community/hume-ai/README.md @@ -1,7 +1,5 @@ # pieces-hume-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-hume-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-hume-ai` to build the library. diff --git a/packages/pieces/community/hunter/README.md b/packages/pieces/community/hunter/README.md index d99e3e40bdd..bc65b3aa161 100644 --- a/packages/pieces/community/hunter/README.md +++ b/packages/pieces/community/hunter/README.md @@ -1,7 +1,5 @@ # pieces-hunter -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-hunter` to build the library. +Run `turbo run build --filter=@activepieces/piece-hunter` to build the library. diff --git a/packages/pieces/community/hystruct/README.md b/packages/pieces/community/hystruct/README.md index d8cb29d0975..534cf351484 100644 --- a/packages/pieces/community/hystruct/README.md +++ b/packages/pieces/community/hystruct/README.md @@ -1,7 +1,5 @@ # pieces-hystruct -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-hystruct` to build the library. +Run `turbo run build --filter=@activepieces/piece-hystruct` to build the library. diff --git a/packages/pieces/community/ibm-cognose/README.md b/packages/pieces/community/ibm-cognose/README.md index 01c814e1c7a..380daec2c5a 100644 --- a/packages/pieces/community/ibm-cognose/README.md +++ b/packages/pieces/community/ibm-cognose/README.md @@ -1,7 +1,5 @@ # pieces-ibm-cognose -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-ibm-cognose` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-ibm-cognose` to build the library. diff --git a/packages/pieces/community/image-router/README.md b/packages/pieces/community/image-router/README.md index 692ff24eacb..72d83e25da0 100644 --- a/packages/pieces/community/image-router/README.md +++ b/packages/pieces/community/image-router/README.md @@ -1,7 +1,5 @@ # pieces-image-router -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-image-router` to build the library. +Run `turbo run build --filter=@activepieces/piece-image-router` to build the library. diff --git a/packages/pieces/community/imap/README.md b/packages/pieces/community/imap/README.md index 467b7ee9e07..1b2f48fe40f 100644 --- a/packages/pieces/community/imap/README.md +++ b/packages/pieces/community/imap/README.md @@ -1,7 +1,5 @@ # pieces-imap -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-imap` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-imap` to build the library. diff --git a/packages/pieces/community/influencers-club/README.md b/packages/pieces/community/influencers-club/README.md index b31457d26f8..1c45919722a 100644 --- a/packages/pieces/community/influencers-club/README.md +++ b/packages/pieces/community/influencers-club/README.md @@ -1,7 +1,5 @@ # pieces-influencers-club -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-influencers-club` to build the library. +Run `turbo run build --filter=@activepieces/piece-influencers-club` to build the library. diff --git a/packages/pieces/community/insightly/README.md b/packages/pieces/community/insightly/README.md index cd972576ad7..1c907a97cab 100644 --- a/packages/pieces/community/insightly/README.md +++ b/packages/pieces/community/insightly/README.md @@ -1,7 +1,5 @@ # pieces-insightly -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-insightly` to build the library. +Run `turbo run build --filter=@activepieces/piece-insightly` to build the library. diff --git a/packages/pieces/community/insighto-ai/README.md b/packages/pieces/community/insighto-ai/README.md index 047b75c4b5e..fbe04098b29 100644 --- a/packages/pieces/community/insighto-ai/README.md +++ b/packages/pieces/community/insighto-ai/README.md @@ -1,7 +1,5 @@ # pieces-insighto-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-insighto-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-insighto-ai` to build the library. diff --git a/packages/pieces/community/insighto-ai/package.json b/packages/pieces/community/insighto-ai/package.json index 573b123106b..15888601245 100644 --- a/packages/pieces/community/insighto-ai/package.json +++ b/packages/pieces/community/insighto-ai/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/insta-charts/README.md b/packages/pieces/community/insta-charts/README.md index 34863d2f1a6..41986cde4fb 100644 --- a/packages/pieces/community/insta-charts/README.md +++ b/packages/pieces/community/insta-charts/README.md @@ -1,7 +1,5 @@ # pieces-insta-charts -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-insta-charts` to build the library. +Run `turbo run build --filter=@activepieces/piece-insta-charts` to build the library. diff --git a/packages/pieces/community/instabase/README.md b/packages/pieces/community/instabase/README.md index 47e75cd2477..64b971af818 100644 --- a/packages/pieces/community/instabase/README.md +++ b/packages/pieces/community/instabase/README.md @@ -1,7 +1,5 @@ # pieces-instabase -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-instabase` to build the library. +Run `turbo run build --filter=@activepieces/piece-instabase` to build the library. diff --git a/packages/pieces/community/instagram-business/README.md b/packages/pieces/community/instagram-business/README.md index 11e5bbd88af..502f66653a5 100644 --- a/packages/pieces/community/instagram-business/README.md +++ b/packages/pieces/community/instagram-business/README.md @@ -1,7 +1,5 @@ # pieces-instagram-business -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-instagram-business` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-instagram-business` to build the library. diff --git a/packages/pieces/community/instantly-ai/README.md b/packages/pieces/community/instantly-ai/README.md index f43c71af2e5..1aa40167e65 100644 --- a/packages/pieces/community/instantly-ai/README.md +++ b/packages/pieces/community/instantly-ai/README.md @@ -1,7 +1,5 @@ # pieces-instantly-ai -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx build pieces-instantly-ai` to build the library. \ No newline at end of file +Run `turbo run build --filter=@activepieces/piece-instantly-ai` to build the library. diff --git a/packages/pieces/community/intercom/README.md b/packages/pieces/community/intercom/README.md index d3d14a5ee6e..710020d1c09 100644 --- a/packages/pieces/community/intercom/README.md +++ b/packages/pieces/community/intercom/README.md @@ -1,7 +1,5 @@ # pieces-intercom -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-intercom` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-intercom` to build the library. diff --git a/packages/pieces/community/invoiceninja/README.md b/packages/pieces/community/invoiceninja/README.md index b4c2fb72f0c..edbf4420eb2 100644 --- a/packages/pieces/community/invoiceninja/README.md +++ b/packages/pieces/community/invoiceninja/README.md @@ -1,7 +1,5 @@ # pieces-invoiceninja -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-invoiceninja` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-invoiceninja` to build the library. diff --git a/packages/pieces/community/invoiceninja/package.json b/packages/pieces/community/invoiceninja/package.json index 6e184a27bca..a40651caa72 100644 --- a/packages/pieces/community/invoiceninja/package.json +++ b/packages/pieces/community/invoiceninja/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/jina-ai/README.md b/packages/pieces/community/jina-ai/README.md index f90d2f5a97d..70f04525618 100644 --- a/packages/pieces/community/jina-ai/README.md +++ b/packages/pieces/community/jina-ai/README.md @@ -1,7 +1,5 @@ # pieces-jina-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-jina-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-jina-ai` to build the library. diff --git a/packages/pieces/community/jira-cloud/README.md b/packages/pieces/community/jira-cloud/README.md index a256509931d..ec724a3575c 100644 --- a/packages/pieces/community/jira-cloud/README.md +++ b/packages/pieces/community/jira-cloud/README.md @@ -1,7 +1,5 @@ # pieces-jira-cloud -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-jira-cloud` to build the library. +Run `turbo run build --filter=@activepieces/piece-jira-cloud` to build the library. diff --git a/packages/pieces/community/jira-cloud/package.json b/packages/pieces/community/jira-cloud/package.json index 39efd9de667..194dde96a7e 100644 --- a/packages/pieces/community/jira-cloud/package.json +++ b/packages/pieces/community/jira-cloud/package.json @@ -12,7 +12,7 @@ "@atlaskit/editor-markdown-transformer": "5.16.6", "dayjs": "1.11.9", "form-data": "4.0.4", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/jogg-ai/README.md b/packages/pieces/community/jogg-ai/README.md index a38f3b131d2..7667e707788 100644 --- a/packages/pieces/community/jogg-ai/README.md +++ b/packages/pieces/community/jogg-ai/README.md @@ -1,7 +1,5 @@ # pieces-jogg-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-jogg-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-jogg-ai` to build the library. diff --git a/packages/pieces/community/jogg-ai/package.json b/packages/pieces/community/jogg-ai/package.json index 79c1b8d2727..63e58c89a51 100644 --- a/packages/pieces/community/jogg-ai/package.json +++ b/packages/pieces/community/jogg-ai/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/jotform/README.md b/packages/pieces/community/jotform/README.md index ff74e31e9c3..a77c7658f42 100644 --- a/packages/pieces/community/jotform/README.md +++ b/packages/pieces/community/jotform/README.md @@ -1,7 +1,5 @@ # pieces-jotform -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-jotform` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-jotform` to build the library. diff --git a/packages/pieces/community/json/README.md b/packages/pieces/community/json/README.md index e14b800cb38..340e2c68769 100644 --- a/packages/pieces/community/json/README.md +++ b/packages/pieces/community/json/README.md @@ -1,7 +1,5 @@ # pieces-json -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-json` to build the library. +Run `turbo run build --filter=@activepieces/piece-json` to build the library. diff --git a/packages/pieces/community/just-invoice/README.md b/packages/pieces/community/just-invoice/README.md index ffc08411c12..e241a66f932 100644 --- a/packages/pieces/community/just-invoice/README.md +++ b/packages/pieces/community/just-invoice/README.md @@ -1,7 +1,5 @@ # pieces-just-invoice -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-just-invoice` to build the library. +Run `turbo run build --filter=@activepieces/piece-just-invoice` to build the library. diff --git a/packages/pieces/community/kallabot-ai/README.md b/packages/pieces/community/kallabot-ai/README.md index 498bdad474b..fbe6c85da97 100644 --- a/packages/pieces/community/kallabot-ai/README.md +++ b/packages/pieces/community/kallabot-ai/README.md @@ -1,7 +1,5 @@ # pieces-kallabot-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-kallabot-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-kallabot-ai` to build the library. diff --git a/packages/pieces/community/kapso/README.md b/packages/pieces/community/kapso/README.md index 3e97f2b682a..1776d08a47d 100644 --- a/packages/pieces/community/kapso/README.md +++ b/packages/pieces/community/kapso/README.md @@ -1,7 +1,5 @@ # pieces-kapso -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-kapso` to build the library. +Run `turbo run build --filter=@activepieces/piece-kapso` to build the library. diff --git a/packages/pieces/community/katana/README.md b/packages/pieces/community/katana/README.md index 3d29b2acf30..77011131c3f 100644 --- a/packages/pieces/community/katana/README.md +++ b/packages/pieces/community/katana/README.md @@ -1,7 +1,5 @@ # pieces-katana -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-katana` to build the library. +Run `turbo run build --filter=@activepieces/piece-katana` to build the library. diff --git a/packages/pieces/community/kimai/README.md b/packages/pieces/community/kimai/README.md index 1ef85c3a3d3..27a1f95baf3 100644 --- a/packages/pieces/community/kimai/README.md +++ b/packages/pieces/community/kimai/README.md @@ -1,7 +1,5 @@ # pieces-kimai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-kimai` to build the library. +Run `turbo run build --filter=@activepieces/piece-kimai` to build the library. diff --git a/packages/pieces/community/kimai/package.json b/packages/pieces/community/kimai/package.json index f026aa2f009..0b24a3f1f49 100644 --- a/packages/pieces/community/kimai/package.json +++ b/packages/pieces/community/kimai/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/kissflow/README.md b/packages/pieces/community/kissflow/README.md index fb28909d015..61fbc31a183 100644 --- a/packages/pieces/community/kissflow/README.md +++ b/packages/pieces/community/kissflow/README.md @@ -1,7 +1,5 @@ # pieces-kissflow -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-kissflow` to build the library. +Run `turbo run build --filter=@activepieces/piece-kissflow` to build the library. diff --git a/packages/pieces/community/kizeo-forms/README.md b/packages/pieces/community/kizeo-forms/README.md index 175ec93450a..a227430a3fa 100644 --- a/packages/pieces/community/kizeo-forms/README.md +++ b/packages/pieces/community/kizeo-forms/README.md @@ -1,7 +1,5 @@ # pieces-kizeo-forms -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-kizeo-forms` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-kizeo-forms` to build the library. diff --git a/packages/pieces/community/kizeo-forms/package.json b/packages/pieces/community/kizeo-forms/package.json index 6921348f96f..cd4503f7555 100644 --- a/packages/pieces/community/kizeo-forms/package.json +++ b/packages/pieces/community/kizeo-forms/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "axios": "1.13.5", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/knack/README.md b/packages/pieces/community/knack/README.md index 7b48d98b9bc..e762f282cff 100644 --- a/packages/pieces/community/knack/README.md +++ b/packages/pieces/community/knack/README.md @@ -1,7 +1,5 @@ # pieces-knack -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-knack` to build the library. +Run `turbo run build --filter=@activepieces/piece-knack` to build the library. diff --git a/packages/pieces/community/kommo/README.md b/packages/pieces/community/kommo/README.md index 9765989b180..82b6a44a631 100644 --- a/packages/pieces/community/kommo/README.md +++ b/packages/pieces/community/kommo/README.md @@ -1,7 +1,5 @@ # pieces-kommo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-kommo` to build the library. +Run `turbo run build --filter=@activepieces/piece-kommo` to build the library. diff --git a/packages/pieces/community/krisp-call/README.md b/packages/pieces/community/krisp-call/README.md index 219ce226cb7..84049d47756 100644 --- a/packages/pieces/community/krisp-call/README.md +++ b/packages/pieces/community/krisp-call/README.md @@ -1,7 +1,5 @@ # pieces-krisp-call -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-krisp-call` to build the library. +Run `turbo run build --filter=@activepieces/piece-krisp-call` to build the library. diff --git a/packages/pieces/community/kudosity/README.md b/packages/pieces/community/kudosity/README.md index 15825d27386..a0d2da7dfd0 100644 --- a/packages/pieces/community/kudosity/README.md +++ b/packages/pieces/community/kudosity/README.md @@ -1,7 +1,5 @@ # pieces-kudosity -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-kudosity` to build the library. +Run `turbo run build --filter=@activepieces/piece-kudosity` to build the library. diff --git a/packages/pieces/community/kudosity/package.json b/packages/pieces/community/kudosity/package.json index 74150481679..9bfb3dec72f 100644 --- a/packages/pieces/community/kudosity/package.json +++ b/packages/pieces/community/kudosity/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/lead-connector/README.md b/packages/pieces/community/lead-connector/README.md index 462aac3008c..3509921a6ed 100644 --- a/packages/pieces/community/lead-connector/README.md +++ b/packages/pieces/community/lead-connector/README.md @@ -1,7 +1,5 @@ # pieces-lead-connector -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lead-connector` to build the library. +Run `turbo run build --filter=@activepieces/piece-lead-connector` to build the library. diff --git a/packages/pieces/community/lead-connector/package.json b/packages/pieces/community/lead-connector/package.json index 35ce99c794a..d0d4cc8785e 100644 --- a/packages/pieces/community/lead-connector/package.json +++ b/packages/pieces/community/lead-connector/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "jsonwebtoken": "9.0.1", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/community/leap-ai/README.md b/packages/pieces/community/leap-ai/README.md index 806005549ec..75504eb5f02 100644 --- a/packages/pieces/community/leap-ai/README.md +++ b/packages/pieces/community/leap-ai/README.md @@ -1,7 +1,5 @@ # pieces-leap-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-leap-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-leap-ai` to build the library. diff --git a/packages/pieces/community/leexi/README.md b/packages/pieces/community/leexi/README.md index bd2a5979866..7140d884267 100644 --- a/packages/pieces/community/leexi/README.md +++ b/packages/pieces/community/leexi/README.md @@ -1,7 +1,5 @@ # pieces-leexi -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-leexi` to build the library. +Run `turbo run build --filter=@activepieces/piece-leexi` to build the library. diff --git a/packages/pieces/community/lemlist/README.md b/packages/pieces/community/lemlist/README.md index b56e756353c..e51703fb340 100644 --- a/packages/pieces/community/lemlist/README.md +++ b/packages/pieces/community/lemlist/README.md @@ -1,7 +1,5 @@ # pieces-lemlist -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lemlist` to build the library. +Run `turbo run build --filter=@activepieces/piece-lemlist` to build the library. diff --git a/packages/pieces/community/lemon-squeezy/README.md b/packages/pieces/community/lemon-squeezy/README.md index 9327bc6c498..2d4c5124c73 100644 --- a/packages/pieces/community/lemon-squeezy/README.md +++ b/packages/pieces/community/lemon-squeezy/README.md @@ -1,7 +1,5 @@ # pieces-lemon-squeezy -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lemon-squeezy` to build the library. +Run `turbo run build --filter=@activepieces/piece-lemon-squeezy` to build the library. diff --git a/packages/pieces/community/lets-calendar/README.md b/packages/pieces/community/lets-calendar/README.md index 265d8ab15dd..141303a8bb4 100644 --- a/packages/pieces/community/lets-calendar/README.md +++ b/packages/pieces/community/lets-calendar/README.md @@ -1,7 +1,5 @@ # pieces-lets-calendar -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lets-calendar` to build the library. +Run `turbo run build --filter=@activepieces/piece-lets-calendar` to build the library. diff --git a/packages/pieces/community/letta/README.md b/packages/pieces/community/letta/README.md index cccd22f2c3a..50f9f3063f5 100644 --- a/packages/pieces/community/letta/README.md +++ b/packages/pieces/community/letta/README.md @@ -1,7 +1,5 @@ # pieces-letta -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-letta` to build the library. +Run `turbo run build --filter=@activepieces/piece-letta` to build the library. diff --git a/packages/pieces/community/lever/README.md b/packages/pieces/community/lever/README.md index 2e098f8e80b..356ea2a8e06 100644 --- a/packages/pieces/community/lever/README.md +++ b/packages/pieces/community/lever/README.md @@ -1,7 +1,5 @@ # pieces-lever -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lever` to build the library. +Run `turbo run build --filter=@activepieces/piece-lever` to build the library. diff --git a/packages/pieces/community/lightfunnels/README.md b/packages/pieces/community/lightfunnels/README.md index c0c97cb430a..74b5d99fe53 100644 --- a/packages/pieces/community/lightfunnels/README.md +++ b/packages/pieces/community/lightfunnels/README.md @@ -1,7 +1,5 @@ # pieces-lightfunnels -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lightfunnels` to build the library. +Run `turbo run build --filter=@activepieces/piece-lightfunnels` to build the library. diff --git a/packages/pieces/community/line/README.md b/packages/pieces/community/line/README.md index b3270b15c7d..31e10e11965 100644 --- a/packages/pieces/community/line/README.md +++ b/packages/pieces/community/line/README.md @@ -1,7 +1,5 @@ # pieces-line -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-line` to build the library. +Run `turbo run build --filter=@activepieces/piece-line` to build the library. diff --git a/packages/pieces/community/linear/README.md b/packages/pieces/community/linear/README.md index 0e905d18be9..c0cbaa21c51 100644 --- a/packages/pieces/community/linear/README.md +++ b/packages/pieces/community/linear/README.md @@ -1,7 +1,5 @@ # pieces-linear -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-linear` to build the library. +Run `turbo run build --filter=@activepieces/piece-linear` to build the library. diff --git a/packages/pieces/community/linka/README.md b/packages/pieces/community/linka/README.md index 7a7e69aa0df..08b413ccc75 100644 --- a/packages/pieces/community/linka/README.md +++ b/packages/pieces/community/linka/README.md @@ -1,7 +1,5 @@ # pieces-linka -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-linka` to build the library. +Run `turbo run build --filter=@activepieces/piece-linka` to build the library. diff --git a/packages/pieces/community/linkedin/README.md b/packages/pieces/community/linkedin/README.md index 19f62f6eb30..20eb918fc68 100644 --- a/packages/pieces/community/linkedin/README.md +++ b/packages/pieces/community/linkedin/README.md @@ -1,7 +1,5 @@ # pieces-linkedin -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-linkedin` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-linkedin` to build the library. diff --git a/packages/pieces/community/linkup/README.md b/packages/pieces/community/linkup/README.md index cd5d03108a2..2bbf0b1cd7f 100644 --- a/packages/pieces/community/linkup/README.md +++ b/packages/pieces/community/linkup/README.md @@ -1,7 +1,5 @@ # pieces-linkup -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-linkup` to build the library. +Run `turbo run build --filter=@activepieces/piece-linkup` to build the library. diff --git a/packages/pieces/community/livesession/README.md b/packages/pieces/community/livesession/README.md index 83d6eaaf42b..9016f186820 100644 --- a/packages/pieces/community/livesession/README.md +++ b/packages/pieces/community/livesession/README.md @@ -1,7 +1,5 @@ # pieces-livesession -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-livesession` to build the library. +Run `turbo run build --filter=@activepieces/piece-livesession` to build the library. diff --git a/packages/pieces/community/llmrails/README.md b/packages/pieces/community/llmrails/README.md index 78978069b6f..2378827933c 100644 --- a/packages/pieces/community/llmrails/README.md +++ b/packages/pieces/community/llmrails/README.md @@ -1,7 +1,5 @@ # pieces-llmrails -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-llmrails` to build the library. +Run `turbo run build --filter=@activepieces/piece-llmrails` to build the library. diff --git a/packages/pieces/community/localai/README.md b/packages/pieces/community/localai/README.md index 3eebdbee4a3..88c2ed3803c 100644 --- a/packages/pieces/community/localai/README.md +++ b/packages/pieces/community/localai/README.md @@ -1,7 +1,5 @@ # pieces-localai -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-localai` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-localai` to build the library. diff --git a/packages/pieces/community/lofty/README.md b/packages/pieces/community/lofty/README.md index 8fcdfbb73e3..b81efb7272e 100644 --- a/packages/pieces/community/lofty/README.md +++ b/packages/pieces/community/lofty/README.md @@ -1,7 +1,5 @@ # pieces-lofty -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lofty` to build the library. +Run `turbo run build --filter=@activepieces/piece-lofty` to build the library. diff --git a/packages/pieces/community/logrocket/README.md b/packages/pieces/community/logrocket/README.md index 563fd4defd5..5ca36e569c1 100644 --- a/packages/pieces/community/logrocket/README.md +++ b/packages/pieces/community/logrocket/README.md @@ -1,7 +1,5 @@ # pieces-logrocket -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-logrocket` to build the library. +Run `turbo run build --filter=@activepieces/piece-logrocket` to build the library. diff --git a/packages/pieces/community/logsnag/README.md b/packages/pieces/community/logsnag/README.md index 408138f4491..7c1ccc60462 100644 --- a/packages/pieces/community/logsnag/README.md +++ b/packages/pieces/community/logsnag/README.md @@ -1,7 +1,5 @@ # pieces-logsnag -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-logsnag` to build the library. +Run `turbo run build --filter=@activepieces/piece-logsnag` to build the library. diff --git a/packages/pieces/community/lokalise/README.md b/packages/pieces/community/lokalise/README.md index 5aff13eb2ab..e3848fc6aad 100644 --- a/packages/pieces/community/lokalise/README.md +++ b/packages/pieces/community/lokalise/README.md @@ -1,7 +1,5 @@ # pieces-lokalise -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lokalise` to build the library. +Run `turbo run build --filter=@activepieces/piece-lokalise` to build the library. diff --git a/packages/pieces/community/lucidya/README.md b/packages/pieces/community/lucidya/README.md index ec5e496cf6f..d65b364a21f 100644 --- a/packages/pieces/community/lucidya/README.md +++ b/packages/pieces/community/lucidya/README.md @@ -1,7 +1,5 @@ # pieces-lucidya -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lucidya` to build the library. +Run `turbo run build --filter=@activepieces/piece-lucidya` to build the library. diff --git a/packages/pieces/community/lusha/README.md b/packages/pieces/community/lusha/README.md index b972dd1b88a..d0b8b2261c7 100644 --- a/packages/pieces/community/lusha/README.md +++ b/packages/pieces/community/lusha/README.md @@ -1,7 +1,5 @@ # pieces-lusha -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-lusha` to build the library. +Run `turbo run build --filter=@activepieces/piece-lusha` to build the library. diff --git a/packages/pieces/community/luxury-presence/README.md b/packages/pieces/community/luxury-presence/README.md index 1e25402c389..f5890fab9dd 100644 --- a/packages/pieces/community/luxury-presence/README.md +++ b/packages/pieces/community/luxury-presence/README.md @@ -1,7 +1,5 @@ # pieces-luxury-presence -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-luxury-presence` to build the library. +Run `turbo run build --filter=@activepieces/piece-luxury-presence` to build the library. diff --git a/packages/pieces/community/magical-api/README.md b/packages/pieces/community/magical-api/README.md index 509a5b30c6b..1caec3a4feb 100644 --- a/packages/pieces/community/magical-api/README.md +++ b/packages/pieces/community/magical-api/README.md @@ -1,7 +1,5 @@ # pieces-magical-api -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-magical-api` to build the library. +Run `turbo run build --filter=@activepieces/piece-magical-api` to build the library. diff --git a/packages/pieces/community/magicslides/README.md b/packages/pieces/community/magicslides/README.md index 766bb375cd4..2dfe14f9891 100644 --- a/packages/pieces/community/magicslides/README.md +++ b/packages/pieces/community/magicslides/README.md @@ -1,7 +1,5 @@ # pieces-magicslides -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-magicslides` to build the library. +Run `turbo run build --filter=@activepieces/piece-magicslides` to build the library. diff --git a/packages/pieces/community/mailchain/README.md b/packages/pieces/community/mailchain/README.md index 17232f8b8f6..4ab1b922c64 100644 --- a/packages/pieces/community/mailchain/README.md +++ b/packages/pieces/community/mailchain/README.md @@ -1,7 +1,5 @@ # pieces-mailchain -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mailchain` to build the library. +Run `turbo run build --filter=@activepieces/piece-mailchain` to build the library. diff --git a/packages/pieces/community/mailchimp/README.md b/packages/pieces/community/mailchimp/README.md index b31ef27713e..e40915bc61c 100644 --- a/packages/pieces/community/mailchimp/README.md +++ b/packages/pieces/community/mailchimp/README.md @@ -1,7 +1,5 @@ # pieces-mailchimp -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-mailchimp` to execute the lint via [ESLint](https://eslint.org/). \ No newline at end of file +Run `turbo run build --filter=@activepieces/piece-mailchimp` to build the library. diff --git a/packages/pieces/community/mailer-lite/README.md b/packages/pieces/community/mailer-lite/README.md index 639b04bf772..19d269f8783 100644 --- a/packages/pieces/community/mailer-lite/README.md +++ b/packages/pieces/community/mailer-lite/README.md @@ -1,7 +1,5 @@ # pieces-mailer-lite -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-mailer-lite` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-mailer-lite` to build the library. diff --git a/packages/pieces/community/mailercheck/README.md b/packages/pieces/community/mailercheck/README.md index ecfc580b46b..b5435cb0087 100644 --- a/packages/pieces/community/mailercheck/README.md +++ b/packages/pieces/community/mailercheck/README.md @@ -1,7 +1,5 @@ # pieces-mailercheck -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mailercheck` to build the library. +Run `turbo run build --filter=@activepieces/piece-mailercheck` to build the library. diff --git a/packages/pieces/community/maileroo/README.md b/packages/pieces/community/maileroo/README.md index 37e489a833d..9fb6b2c1025 100644 --- a/packages/pieces/community/maileroo/README.md +++ b/packages/pieces/community/maileroo/README.md @@ -1,7 +1,5 @@ # pieces-maileroo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-maileroo` to build the library. +Run `turbo run build --filter=@activepieces/piece-maileroo` to build the library. diff --git a/packages/pieces/community/mailjet/README.md b/packages/pieces/community/mailjet/README.md index 7e924513ff1..a100b056670 100644 --- a/packages/pieces/community/mailjet/README.md +++ b/packages/pieces/community/mailjet/README.md @@ -1,7 +1,5 @@ # pieces-mailjet -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mailjet` to build the library. +Run `turbo run build --filter=@activepieces/piece-mailjet` to build the library. diff --git a/packages/pieces/community/manus/README.md b/packages/pieces/community/manus/README.md index 366bbc98391..2aa17f0b829 100644 --- a/packages/pieces/community/manus/README.md +++ b/packages/pieces/community/manus/README.md @@ -1,7 +1,5 @@ # pieces-manus -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-manus` to build the library. +Run `turbo run build --filter=@activepieces/piece-manus` to build the library. diff --git a/packages/pieces/community/manychat/README.md b/packages/pieces/community/manychat/README.md index 4df455d3704..43bcfdbd9e8 100644 --- a/packages/pieces/community/manychat/README.md +++ b/packages/pieces/community/manychat/README.md @@ -1,7 +1,5 @@ # pieces-manychat -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-manychat` to build the library. +Run `turbo run build --filter=@activepieces/piece-manychat` to build the library. diff --git a/packages/pieces/community/mastodon/README.md b/packages/pieces/community/mastodon/README.md index ea6f9f591e0..6c31a6b30a6 100644 --- a/packages/pieces/community/mastodon/README.md +++ b/packages/pieces/community/mastodon/README.md @@ -1,7 +1,5 @@ # pieces-mastodon -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-mastodon` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-mastodon` to build the library. diff --git a/packages/pieces/community/matomo/README.md b/packages/pieces/community/matomo/README.md index 16074159358..b7617691201 100644 --- a/packages/pieces/community/matomo/README.md +++ b/packages/pieces/community/matomo/README.md @@ -1,7 +1,5 @@ # pieces-matomo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-matomo` to build the library. +Run `turbo run build --filter=@activepieces/piece-matomo` to build the library. diff --git a/packages/pieces/community/matomo/package.json b/packages/pieces/community/matomo/package.json index a73db182bf2..9dc3444b379 100644 --- a/packages/pieces/community/matomo/package.json +++ b/packages/pieces/community/matomo/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/matrix/README.md b/packages/pieces/community/matrix/README.md index 53bb2ce34b1..5863d603623 100644 --- a/packages/pieces/community/matrix/README.md +++ b/packages/pieces/community/matrix/README.md @@ -1,7 +1,5 @@ # pieces-matrix -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-matrix` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-matrix` to build the library. diff --git a/packages/pieces/community/mattermost/README.md b/packages/pieces/community/mattermost/README.md index a7ab89376c3..f928fc47d3b 100644 --- a/packages/pieces/community/mattermost/README.md +++ b/packages/pieces/community/mattermost/README.md @@ -1,7 +1,5 @@ # pieces-mattermost -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-mattermost` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-mattermost` to build the library. diff --git a/packages/pieces/community/mautic/README.md b/packages/pieces/community/mautic/README.md index 43ab2fec987..5bda5f5eaf4 100644 --- a/packages/pieces/community/mautic/README.md +++ b/packages/pieces/community/mautic/README.md @@ -1,33 +1,5 @@ # pieces-mautic -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-mautic` to execute the lint via [ESLint](https://eslint.org/). - -## For Testing - -Create a Sandbox account by following instructions [here](https://www.mautic.org/demo) - -# List of API Used - -## Contact API - -### [Contact Creation API](https://developer.mautic.org/#create-contact) - -### [Contact Search API](https://developer.mautic.org/#list-contacts) - -### [Contact Update API](https://developer.mautic.org/#edit-contact) - -## Company API - -### [Company Creation API](https://developer.mautic.org/#create-companyhttps://developer.mautic.org/#create-company) - -### [Company Search API](https://developer.mautic.org/#list-contact-companies) - -### [Company Update API](https://developer.mautic.org/#edit-company) - -## Metadata API - -### [List Fields](https://developer.mautic.org/#list-contact-fields) +Run `turbo run build --filter=@activepieces/piece-mautic` to build the library. diff --git a/packages/pieces/community/mcp/README.md b/packages/pieces/community/mcp/README.md index 3a31bc67f96..fc618977f11 100644 --- a/packages/pieces/community/mcp/README.md +++ b/packages/pieces/community/mcp/README.md @@ -1,7 +1,5 @@ # pieces-mcp -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mcp` to build the library. +Run `turbo run build --filter=@activepieces/piece-mcp` to build the library. diff --git a/packages/pieces/community/meetgeek-ai/README.md b/packages/pieces/community/meetgeek-ai/README.md index ed755537ac1..417b0b40447 100644 --- a/packages/pieces/community/meetgeek-ai/README.md +++ b/packages/pieces/community/meetgeek-ai/README.md @@ -1,7 +1,5 @@ # pieces-meetgeek-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-meetgeek-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-meetgeek-ai` to build the library. diff --git a/packages/pieces/community/meistertask/README.md b/packages/pieces/community/meistertask/README.md index e98aa761043..cb602b526ff 100644 --- a/packages/pieces/community/meistertask/README.md +++ b/packages/pieces/community/meistertask/README.md @@ -1,7 +1,5 @@ # pieces-meistertask -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-meistertask` to build the library. +Run `turbo run build --filter=@activepieces/piece-meistertask` to build the library. diff --git a/packages/pieces/community/mem/README.md b/packages/pieces/community/mem/README.md index aa7bdae94a0..10c25bb494e 100644 --- a/packages/pieces/community/mem/README.md +++ b/packages/pieces/community/mem/README.md @@ -1,7 +1,5 @@ # pieces-mem -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mem` to build the library. +Run `turbo run build --filter=@activepieces/piece-mem` to build the library. diff --git a/packages/pieces/community/mempool-space/README.md b/packages/pieces/community/mempool-space/README.md index 5962a69b4b6..99996d9d3f0 100644 --- a/packages/pieces/community/mempool-space/README.md +++ b/packages/pieces/community/mempool-space/README.md @@ -1,7 +1,5 @@ # pieces-mempool-space -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mempool-space` to build the library. +Run `turbo run build --filter=@activepieces/piece-mempool-space` to build the library. diff --git a/packages/pieces/community/messagebird/README.md b/packages/pieces/community/messagebird/README.md index 805bcfce272..f928a9a3e1b 100644 --- a/packages/pieces/community/messagebird/README.md +++ b/packages/pieces/community/messagebird/README.md @@ -1,7 +1,5 @@ # pieces-messagebird -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-messagebird` to build the library. +Run `turbo run build --filter=@activepieces/piece-messagebird` to build the library. diff --git a/packages/pieces/community/metabase/README.md b/packages/pieces/community/metabase/README.md index 035eb4381da..9ef9dca1973 100644 --- a/packages/pieces/community/metabase/README.md +++ b/packages/pieces/community/metabase/README.md @@ -1,7 +1,5 @@ # pieces-metabase -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-metabase` to build the library. +Run `turbo run build --filter=@activepieces/piece-metabase` to build the library. diff --git a/packages/pieces/community/metatext/README.md b/packages/pieces/community/metatext/README.md index a041b242393..f89e93372a1 100644 --- a/packages/pieces/community/metatext/README.md +++ b/packages/pieces/community/metatext/README.md @@ -1,7 +1,5 @@ # pieces-metatext -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-metatext` to build the library. +Run `turbo run build --filter=@activepieces/piece-metatext` to build the library. diff --git a/packages/pieces/community/microsoft-365-people/README.md b/packages/pieces/community/microsoft-365-people/README.md index 00923d27d55..3b23e8e403e 100644 --- a/packages/pieces/community/microsoft-365-people/README.md +++ b/packages/pieces/community/microsoft-365-people/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-365-people -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-365-people` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-365-people` to build the library. diff --git a/packages/pieces/community/microsoft-365-planner/README.md b/packages/pieces/community/microsoft-365-planner/README.md index 12840247257..06e3f271410 100644 --- a/packages/pieces/community/microsoft-365-planner/README.md +++ b/packages/pieces/community/microsoft-365-planner/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-365-planner -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-365-planner` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-365-planner` to build the library. diff --git a/packages/pieces/community/microsoft-excel-365/README.md b/packages/pieces/community/microsoft-excel-365/README.md index 3929531bddb..bfe99bc66f8 100644 --- a/packages/pieces/community/microsoft-excel-365/README.md +++ b/packages/pieces/community/microsoft-excel-365/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-excel-365 -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-excel-365` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-excel-365` to build the library. diff --git a/packages/pieces/community/microsoft-onedrive/README.md b/packages/pieces/community/microsoft-onedrive/README.md index 0655b96678f..13df0a1dfba 100644 --- a/packages/pieces/community/microsoft-onedrive/README.md +++ b/packages/pieces/community/microsoft-onedrive/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-onedrive -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-onedrive` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-onedrive` to build the library. diff --git a/packages/pieces/community/microsoft-onenote/README.md b/packages/pieces/community/microsoft-onenote/README.md index a585d5e848c..ef0e809ec6d 100644 --- a/packages/pieces/community/microsoft-onenote/README.md +++ b/packages/pieces/community/microsoft-onenote/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-onenote -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-onenote` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-onenote` to build the library. diff --git a/packages/pieces/community/microsoft-outlook-calendar/README.md b/packages/pieces/community/microsoft-outlook-calendar/README.md index e0febea015b..41e53c39e62 100644 --- a/packages/pieces/community/microsoft-outlook-calendar/README.md +++ b/packages/pieces/community/microsoft-outlook-calendar/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-outlook-calendar -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-outlook-calendar` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-outlook-calendar` to build the library. diff --git a/packages/pieces/community/microsoft-outlook/README.md b/packages/pieces/community/microsoft-outlook/README.md index 3f0ecc75200..dbfcb92949f 100644 --- a/packages/pieces/community/microsoft-outlook/README.md +++ b/packages/pieces/community/microsoft-outlook/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-outlook -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-outlook` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-outlook` to build the library. diff --git a/packages/pieces/community/microsoft-power-bi/README.md b/packages/pieces/community/microsoft-power-bi/README.md index 7128c958094..0541a434207 100644 --- a/packages/pieces/community/microsoft-power-bi/README.md +++ b/packages/pieces/community/microsoft-power-bi/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-power-bi -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-power-bi` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-power-bi` to build the library. diff --git a/packages/pieces/community/microsoft-teams/README.md b/packages/pieces/community/microsoft-teams/README.md index 13e5ec360ba..381aea713bc 100644 --- a/packages/pieces/community/microsoft-teams/README.md +++ b/packages/pieces/community/microsoft-teams/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-teams -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-teams` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-teams` to build the library. diff --git a/packages/pieces/community/microsoft-todo/README.md b/packages/pieces/community/microsoft-todo/README.md index ceb8035a951..065f3f3ac99 100644 --- a/packages/pieces/community/microsoft-todo/README.md +++ b/packages/pieces/community/microsoft-todo/README.md @@ -1,7 +1,5 @@ # pieces-microsoft-todo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-microsoft-todo` to build the library. +Run `turbo run build --filter=@activepieces/piece-microsoft-todo` to build the library. diff --git a/packages/pieces/community/millionverifier/README.md b/packages/pieces/community/millionverifier/README.md index ed58fa0c575..8d2d53bf04b 100644 --- a/packages/pieces/community/millionverifier/README.md +++ b/packages/pieces/community/millionverifier/README.md @@ -1,7 +1,5 @@ # pieces-millionverifier -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-millionverifier` to build the library. +Run `turbo run build --filter=@activepieces/piece-millionverifier` to build the library. diff --git a/packages/pieces/community/mind-studio/README.md b/packages/pieces/community/mind-studio/README.md index 2a1a389a37b..4f5e725d6cf 100644 --- a/packages/pieces/community/mind-studio/README.md +++ b/packages/pieces/community/mind-studio/README.md @@ -1,7 +1,5 @@ # pieces-mind-studio -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mind-studio` to build the library. +Run `turbo run build --filter=@activepieces/piece-mind-studio` to build the library. diff --git a/packages/pieces/community/mindee/README.md b/packages/pieces/community/mindee/README.md index a6060e3f6e2..067576a11ab 100644 --- a/packages/pieces/community/mindee/README.md +++ b/packages/pieces/community/mindee/README.md @@ -1,7 +1,5 @@ # pieces-mindee -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-mindee` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-mindee` to build the library. diff --git a/packages/pieces/community/missive/README.md b/packages/pieces/community/missive/README.md index 28d0bbdacf3..07abe3685fb 100644 --- a/packages/pieces/community/missive/README.md +++ b/packages/pieces/community/missive/README.md @@ -1,7 +1,5 @@ # pieces-zoho-mail -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoho-mail` to build the library. +Run `turbo run build --filter=@activepieces/piece-missive` to build the library. diff --git a/packages/pieces/community/mistral-ai/README.md b/packages/pieces/community/mistral-ai/README.md index 6ba979f6682..bde72d3bea9 100644 --- a/packages/pieces/community/mistral-ai/README.md +++ b/packages/pieces/community/mistral-ai/README.md @@ -1,7 +1,5 @@ # pieces-mistral-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mistral-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-mistral-ai` to build the library. diff --git a/packages/pieces/community/mixpanel/README.md b/packages/pieces/community/mixpanel/README.md index 8b392af60f8..9963eedf6fb 100644 --- a/packages/pieces/community/mixpanel/README.md +++ b/packages/pieces/community/mixpanel/README.md @@ -1,7 +1,5 @@ # pieces-mixpanel -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mixpanel` to build the library. +Run `turbo run build --filter=@activepieces/piece-mixpanel` to build the library. diff --git a/packages/pieces/community/mollie/README.md b/packages/pieces/community/mollie/README.md index 4a576fa8837..774542a71f4 100644 --- a/packages/pieces/community/mollie/README.md +++ b/packages/pieces/community/mollie/README.md @@ -1,7 +1,5 @@ # pieces-mollie -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mollie` to build the library. +Run `turbo run build --filter=@activepieces/piece-mollie` to build the library. diff --git a/packages/pieces/community/monday/README.md b/packages/pieces/community/monday/README.md index ee321761311..9ba5eaf7f0b 100644 --- a/packages/pieces/community/monday/README.md +++ b/packages/pieces/community/monday/README.md @@ -1,7 +1,5 @@ # pieces-monday -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-monday` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-monday` to build the library. diff --git a/packages/pieces/community/mongodb/README.md b/packages/pieces/community/mongodb/README.md index c15658386e9..592cc1e862c 100644 --- a/packages/pieces/community/mongodb/README.md +++ b/packages/pieces/community/mongodb/README.md @@ -1,7 +1,5 @@ # pieces-mongodb -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mongodb` to build the library. +Run `turbo run build --filter=@activepieces/piece-mongodb` to build the library. diff --git a/packages/pieces/community/mongodb/package.json b/packages/pieces/community/mongodb/package.json index d4fbd76f937..d7dbd282f24 100644 --- a/packages/pieces/community/mongodb/package.json +++ b/packages/pieces/community/mongodb/package.json @@ -8,7 +8,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "mongodb": "6.15.0", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/moonclerk/README.md b/packages/pieces/community/moonclerk/README.md index 32187c32f86..3c9649f5637 100644 --- a/packages/pieces/community/moonclerk/README.md +++ b/packages/pieces/community/moonclerk/README.md @@ -1,7 +1,5 @@ # pieces-moonclerk -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-moonclerk` to build the library. +Run `turbo run build --filter=@activepieces/piece-moonclerk` to build the library. diff --git a/packages/pieces/community/mooninvoice/README.md b/packages/pieces/community/mooninvoice/README.md index 40af946d88c..10751e0d3a7 100644 --- a/packages/pieces/community/mooninvoice/README.md +++ b/packages/pieces/community/mooninvoice/README.md @@ -1,7 +1,5 @@ # pieces-mooninvoice -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mooninvoice` to build the library. +Run `turbo run build --filter=@activepieces/piece-mooninvoice` to build the library. diff --git a/packages/pieces/community/motion/README.md b/packages/pieces/community/motion/README.md index a45bb68845e..c88d74aded0 100644 --- a/packages/pieces/community/motion/README.md +++ b/packages/pieces/community/motion/README.md @@ -1,7 +1,5 @@ # pieces-motion -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-motion` to build the library. +Run `turbo run build --filter=@activepieces/piece-motion` to build the library. diff --git a/packages/pieces/community/motiontools/README.md b/packages/pieces/community/motiontools/README.md index dbdde0d84ef..eb4eab223f8 100644 --- a/packages/pieces/community/motiontools/README.md +++ b/packages/pieces/community/motiontools/README.md @@ -1,7 +1,5 @@ # pieces-motiontools -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-motiontools` to build the library. +Run `turbo run build --filter=@activepieces/piece-motiontools` to build the library. diff --git a/packages/pieces/community/moveo-ai/README.md b/packages/pieces/community/moveo-ai/README.md index 5ca463bf995..5012c8a5c9d 100644 --- a/packages/pieces/community/moveo-ai/README.md +++ b/packages/pieces/community/moveo-ai/README.md @@ -1,7 +1,5 @@ # pieces-moveo-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-moveo-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-moveo-ai` to build the library. diff --git a/packages/pieces/community/moxie-crm/README.md b/packages/pieces/community/moxie-crm/README.md index ce4717dae04..327a62d18ff 100644 --- a/packages/pieces/community/moxie-crm/README.md +++ b/packages/pieces/community/moxie-crm/README.md @@ -1,7 +1,5 @@ # pieces-moxie-crm -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-moxie-crm` to build the library. +Run `turbo run build --filter=@activepieces/piece-moxie-crm` to build the library. diff --git a/packages/pieces/community/murf-api/README.md b/packages/pieces/community/murf-api/README.md index c4a1de89d2b..def546536eb 100644 --- a/packages/pieces/community/murf-api/README.md +++ b/packages/pieces/community/murf-api/README.md @@ -1,7 +1,5 @@ # pieces-murf-api -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-murf-api` to build the library. +Run `turbo run build --filter=@activepieces/piece-murf-api` to build the library. diff --git a/packages/pieces/community/mycase-piece/README.md b/packages/pieces/community/mycase-piece/README.md index 4ceafd7be48..de4b48423f0 100644 --- a/packages/pieces/community/mycase-piece/README.md +++ b/packages/pieces/community/mycase-piece/README.md @@ -1,54 +1,5 @@ # MyCase Piece -This piece provides integration with MyCase API using OAuth 2.0 authentication. - -## Features - -### Authentication -- **OAuth 2.0**: Uses Authorization Code grant flow with refresh tokens -- **Automatic Token Management**: Handles access token and refresh token lifecycle -- **Secure**: Follows MyCase's recommended authentication practices - -### Actions -- **Get Firm Information**: Retrieve information about the authenticated firm -- **List Contacts**: Retrieve and search contacts with pagination support - -## Authentication Setup - -### Prerequisites -1. **MyCase Account**: You need an active MyCase account -2. **Client Credentials**: Contact MyCase support to obtain: - - Client ID - - Client Secret - - Redirect URI (must be pre-registered with MyCase) - -### OAuth 2.0 Flow -1. **Authorization**: Users are redirected to MyCase authorization server -2. **Code Exchange**: Authorization code is exchanged for access token -3. **API Access**: Access token is used for authenticated API requests -4. **Token Refresh**: Refresh tokens are used to obtain new access tokens - -### Configuration -- **Authorization URL**: `https://auth.mycase.com/login_sessions/new` -- **Token URL**: `https://auth.mycase.com/tokens` -- **Token Lifetime**: 24 hours (access token), 2 weeks (refresh token) -- **Rate Limits**: 25 requests per second per client - -## API Integration - -### Base URL -All API requests are made to: `https://api.mycase.com/v1` - -### Authentication Header -``` -Authorization: Bearer -``` - -### Error Handling -- **401 Unauthorized**: Access token expired (automatic refresh handled) -- **Rate Limiting**: 25 requests per second limit enforced -- **Scope Validation**: Ensures required permissions for API endpoints - ## Building -Run `nx build pieces-mycase-piece` to build the library. +Run `turbo run build --filter=@activepieces/piece-mycase-piece` to build the library. diff --git a/packages/pieces/community/mysendingbox/README.md b/packages/pieces/community/mysendingbox/README.md index 4c41a9cbde8..bc92c6c0193 100644 --- a/packages/pieces/community/mysendingbox/README.md +++ b/packages/pieces/community/mysendingbox/README.md @@ -1,7 +1,5 @@ # pieces-mysendingbox -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-mysendingbox` to build the library. +Run `turbo run build --filter=@activepieces/piece-mysendingbox` to build the library. diff --git a/packages/pieces/community/mysql/README.md b/packages/pieces/community/mysql/README.md index 8f61f47ef26..f6eaaf4b7dd 100644 --- a/packages/pieces/community/mysql/README.md +++ b/packages/pieces/community/mysql/README.md @@ -1,7 +1,5 @@ # pieces-mysql -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-mysql` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-mysql` to build the library. diff --git a/packages/pieces/community/netlify/README.md b/packages/pieces/community/netlify/README.md index 5916a8b8dcd..d3057b5daac 100644 --- a/packages/pieces/community/netlify/README.md +++ b/packages/pieces/community/netlify/README.md @@ -1,7 +1,5 @@ # pieces-netsuite -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-netsuite` to build the library. +Run `turbo run build --filter=@activepieces/piece-netlify` to build the library. diff --git a/packages/pieces/community/netsuite/README.md b/packages/pieces/community/netsuite/README.md index 5916a8b8dcd..a5e2990373b 100644 --- a/packages/pieces/community/netsuite/README.md +++ b/packages/pieces/community/netsuite/README.md @@ -1,7 +1,5 @@ # pieces-netsuite -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-netsuite` to build the library. +Run `turbo run build --filter=@activepieces/piece-netsuite` to build the library. diff --git a/packages/pieces/community/neverbounce/README.md b/packages/pieces/community/neverbounce/README.md index 6711e56af84..0425153efee 100644 --- a/packages/pieces/community/neverbounce/README.md +++ b/packages/pieces/community/neverbounce/README.md @@ -1,7 +1,5 @@ # pieces-neverbounce -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-neverbounce` to build the library. +Run `turbo run build --filter=@activepieces/piece-neverbounce` to build the library. diff --git a/packages/pieces/community/nifty/README.md b/packages/pieces/community/nifty/README.md index 01bdfb388dc..7dac38335e3 100644 --- a/packages/pieces/community/nifty/README.md +++ b/packages/pieces/community/nifty/README.md @@ -1,7 +1,5 @@ # pieces-nifty -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-nifty` to build the library. +Run `turbo run build --filter=@activepieces/piece-nifty` to build the library. diff --git a/packages/pieces/community/ninox/README.md b/packages/pieces/community/ninox/README.md index b4c9b4f97ff..fb0be2891ed 100644 --- a/packages/pieces/community/ninox/README.md +++ b/packages/pieces/community/ninox/README.md @@ -1,7 +1,5 @@ # pieces-ninox -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-ninox` to build the library. +Run `turbo run build --filter=@activepieces/piece-ninox` to build the library. diff --git a/packages/pieces/community/nocodb/README.md b/packages/pieces/community/nocodb/README.md index ed76584e7af..796345f7259 100644 --- a/packages/pieces/community/nocodb/README.md +++ b/packages/pieces/community/nocodb/README.md @@ -1,7 +1,5 @@ # pieces-nocodb -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-nocodb` to build the library. +Run `turbo run build --filter=@activepieces/piece-nocodb` to build the library. diff --git a/packages/pieces/community/notion/README.md b/packages/pieces/community/notion/README.md index 8f6e9683fd7..865a6af66a5 100644 --- a/packages/pieces/community/notion/README.md +++ b/packages/pieces/community/notion/README.md @@ -1,7 +1,5 @@ # pieces-notion -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-notion` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-notion` to build the library. diff --git a/packages/pieces/community/ntfy/README.md b/packages/pieces/community/ntfy/README.md index f6b3738ef6a..481df09f425 100644 --- a/packages/pieces/community/ntfy/README.md +++ b/packages/pieces/community/ntfy/README.md @@ -1,7 +1,5 @@ # pieces-ntfy -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-ntfy` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-ntfy` to build the library. diff --git a/packages/pieces/community/nuelink/README.md b/packages/pieces/community/nuelink/README.md index 3de29947a81..3be869eca14 100644 --- a/packages/pieces/community/nuelink/README.md +++ b/packages/pieces/community/nuelink/README.md @@ -1,7 +1,5 @@ # pieces-nuelink -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-nuelink` to build the library. +Run `turbo run build --filter=@activepieces/piece-nuelink` to build the library. diff --git a/packages/pieces/community/octopush-sms/README.md b/packages/pieces/community/octopush-sms/README.md index 06fe9aca4a6..24b6202978a 100644 --- a/packages/pieces/community/octopush-sms/README.md +++ b/packages/pieces/community/octopush-sms/README.md @@ -1,7 +1,5 @@ # pieces-octopush-sms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-octopush-sms` to build the library. +Run `turbo run build --filter=@activepieces/piece-octopush-sms` to build the library. diff --git a/packages/pieces/community/odoo/README.md b/packages/pieces/community/odoo/README.md index bd59979199b..e068452e77a 100644 --- a/packages/pieces/community/odoo/README.md +++ b/packages/pieces/community/odoo/README.md @@ -1,7 +1,5 @@ # pieces-odoo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-odoo` to build the library. +Run `turbo run build --filter=@activepieces/piece-odoo` to build the library. diff --git a/packages/pieces/community/odoo/package.json b/packages/pieces/community/odoo/package.json index 448178345a0..89a795a6700 100644 --- a/packages/pieces/community/odoo/package.json +++ b/packages/pieces/community/odoo/package.json @@ -9,7 +9,7 @@ "@activepieces/shared": "workspace:*", "url": "^0.11.3", "xmlrpc": "^1.3.2", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/community/okta/README.md b/packages/pieces/community/okta/README.md index 6186e422376..909fbe54035 100644 --- a/packages/pieces/community/okta/README.md +++ b/packages/pieces/community/okta/README.md @@ -1,7 +1,5 @@ # pieces-okta -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-okta` to build the library. +Run `turbo run build --filter=@activepieces/piece-okta` to build the library. diff --git a/packages/pieces/community/omni-co/README.md b/packages/pieces/community/omni-co/README.md index d5991f249a2..f7d18aa0498 100644 --- a/packages/pieces/community/omni-co/README.md +++ b/packages/pieces/community/omni-co/README.md @@ -1,7 +1,5 @@ # pieces-omni-co -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-omni-co` to build the library. +Run `turbo run build --filter=@activepieces/piece-omni-co` to build the library. diff --git a/packages/pieces/community/omnihr/README.md b/packages/pieces/community/omnihr/README.md index 2cdefd46d61..389f4910207 100644 --- a/packages/pieces/community/omnihr/README.md +++ b/packages/pieces/community/omnihr/README.md @@ -1,7 +1,5 @@ # pieces-omnihr -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-omnihr` to build the library. +Run `turbo run build --filter=@activepieces/piece-omnihr` to build the library. diff --git a/packages/pieces/community/oncehub/README.md b/packages/pieces/community/oncehub/README.md index 80f7b0f96a8..8bea25588da 100644 --- a/packages/pieces/community/oncehub/README.md +++ b/packages/pieces/community/oncehub/README.md @@ -1,7 +1,5 @@ # pieces-oncehub -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-oncehub` to build the library. +Run `turbo run build --filter=@activepieces/piece-oncehub` to build the library. diff --git a/packages/pieces/community/oneclickimpact/README.md b/packages/pieces/community/oneclickimpact/README.md index 744076b65ca..54cdd7f3320 100644 --- a/packages/pieces/community/oneclickimpact/README.md +++ b/packages/pieces/community/oneclickimpact/README.md @@ -1,7 +1,5 @@ # pieces-oneclickimpact -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-oneclickimpact` to build the library. +Run `turbo run build --filter=@activepieces/piece-oneclickimpact` to build the library. diff --git a/packages/pieces/community/onfleet/README.md b/packages/pieces/community/onfleet/README.md index 561f010a80c..1fa28b2dc38 100644 --- a/packages/pieces/community/onfleet/README.md +++ b/packages/pieces/community/onfleet/README.md @@ -1,7 +1,5 @@ # pieces-onfleet -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-onfleet` to build the library. +Run `turbo run build --filter=@activepieces/piece-onfleet` to build the library. diff --git a/packages/pieces/community/open-phone/README.md b/packages/pieces/community/open-phone/README.md index 51c3cbecb7f..54a1e042f09 100644 --- a/packages/pieces/community/open-phone/README.md +++ b/packages/pieces/community/open-phone/README.md @@ -1,7 +1,5 @@ # pieces-open-phone -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-open-phone` to build the library. +Run `turbo run build --filter=@activepieces/piece-open-phone` to build the library. diff --git a/packages/pieces/community/open-router/README.md b/packages/pieces/community/open-router/README.md index 8c04448c3d6..71b1e041354 100644 --- a/packages/pieces/community/open-router/README.md +++ b/packages/pieces/community/open-router/README.md @@ -1,7 +1,5 @@ # pieces-open-router -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-open-router` to build the library. +Run `turbo run build --filter=@activepieces/piece-open-router` to build the library. diff --git a/packages/pieces/community/open-router/package.json b/packages/pieces/community/open-router/package.json index b5b865720b4..05ffaed9865 100644 --- a/packages/pieces/community/open-router/package.json +++ b/packages/pieces/community/open-router/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/openai/README.md b/packages/pieces/community/openai/README.md index 3313c2e09c2..b832d6db7dd 100644 --- a/packages/pieces/community/openai/README.md +++ b/packages/pieces/community/openai/README.md @@ -1,7 +1,5 @@ # pieces-openai -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-openai` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-openai` to build the library. diff --git a/packages/pieces/community/openai/package.json b/packages/pieces/community/openai/package.json index ad5f2275bb5..f2f5850b144 100644 --- a/packages/pieces/community/openai/package.json +++ b/packages/pieces/community/openai/package.json @@ -11,7 +11,7 @@ "mime-types": "2.1.35", "openai": "4.67.1", "tiktoken": "1.0.11", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/openmic-ai/README.md b/packages/pieces/community/openmic-ai/README.md index 7ce3d5a9fd9..00c4731fc90 100644 --- a/packages/pieces/community/openmic-ai/README.md +++ b/packages/pieces/community/openmic-ai/README.md @@ -1,7 +1,5 @@ # pieces-openmic-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-openmic-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-openmic-ai` to build the library. diff --git a/packages/pieces/community/opnform/README.md b/packages/pieces/community/opnform/README.md index d2a94ea0657..0768987b8a2 100644 --- a/packages/pieces/community/opnform/README.md +++ b/packages/pieces/community/opnform/README.md @@ -1,7 +1,5 @@ # pieces-opnform -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-opnform` to build the library. +Run `turbo run build --filter=@activepieces/piece-opnform` to build the library. diff --git a/packages/pieces/community/opportify/README.md b/packages/pieces/community/opportify/README.md index 9b3da60550d..8eaa7a06fb8 100644 --- a/packages/pieces/community/opportify/README.md +++ b/packages/pieces/community/opportify/README.md @@ -1,7 +1,5 @@ # pieces-opportify -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-opportify` to build the library. +Run `turbo run build --filter=@activepieces/piece-opportify` to build the library. diff --git a/packages/pieces/community/oracle-database/README.md b/packages/pieces/community/oracle-database/README.md index e5e01596c86..686950a1e95 100644 --- a/packages/pieces/community/oracle-database/README.md +++ b/packages/pieces/community/oracle-database/README.md @@ -1,7 +1,5 @@ # pieces-oracle-database -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-oracle-database` to build the library. +Run `turbo run build --filter=@activepieces/piece-oracle-database` to build the library. diff --git a/packages/pieces/community/oracle-fusion-cloud-erp/README.md b/packages/pieces/community/oracle-fusion-cloud-erp/README.md index 789119571da..60d32c503df 100644 --- a/packages/pieces/community/oracle-fusion-cloud-erp/README.md +++ b/packages/pieces/community/oracle-fusion-cloud-erp/README.md @@ -1,7 +1,5 @@ # pieces-oracle-fusion-cloud-erp -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-oracle-fusion-cloud-erp` to build the library. +Run `turbo run build --filter=@activepieces/piece-oracle-fusion-cloud-erp` to build the library. diff --git a/packages/pieces/community/orimon/README.md b/packages/pieces/community/orimon/README.md index 722ed3912d0..45f83404693 100644 --- a/packages/pieces/community/orimon/README.md +++ b/packages/pieces/community/orimon/README.md @@ -1,7 +1,5 @@ # pieces-orimon -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-orimon` to build the library. +Run `turbo run build --filter=@activepieces/piece-orimon` to build the library. diff --git a/packages/pieces/community/outseta/.eslintrc.json b/packages/pieces/community/outseta/.eslintrc.json new file mode 100644 index 00000000000..632e9b0e222 --- /dev/null +++ b/packages/pieces/community/outseta/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["../../../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/packages/pieces/community/outseta/README.md b/packages/pieces/community/outseta/README.md new file mode 100644 index 00000000000..1872aeffd2d --- /dev/null +++ b/packages/pieces/community/outseta/README.md @@ -0,0 +1,48 @@ +# Outseta (Activepieces) + +This piece provides webhook triggers and lookup actions for Outseta CRM and Billing. + +It is designed for event-driven workflows: react to Outseta events (accounts, people, subscriptions, payments) and enrich flows with minimal read-only API calls. + +## Triggers + +The piece exposes explicit event-based triggers (one trigger = one event): + +- Account created +- Account updated +- Person created +- Person updated +- Subscription created +- Subscription updated +- Invoice paid +- Payment succeeded + +Triggers are implemented as manual webhooks. +Webhook URLs must be configured in the Outseta dashboard. + +## Actions + +Read-only lookup actions: + +- Get account +- Get person +- Get subscription + +## Authentication + +This piece uses the Outseta Admin API. + +Required credentials: +- Outseta domain (example: https://yourcompany.outseta.com) +- API Key +- API Secret + +## Webhook security + +Webhook signature verification is NOT implemented in v1. + +Security relies on the secrecy of the webhook URL. + +## Version + +v0.1.0 – initial release. diff --git a/packages/pieces/community/outseta/package.json b/packages/pieces/community/outseta/package.json new file mode 100644 index 00000000000..924edd33a7a --- /dev/null +++ b/packages/pieces/community/outseta/package.json @@ -0,0 +1,16 @@ +{ + "name": "@activepieces/piece-outseta", + "version": "0.0.1", + "main": "./dist/src/index.js", + "types": "./dist/src/index.d.ts", + "scripts": { + "build": "tsc -p tsconfig.lib.json && cp package.json dist/", + "lint": "eslint 'src/**/*.ts'" + }, + "dependencies": { + "@activepieces/pieces-common": "workspace:*", + "@activepieces/pieces-framework": "workspace:*", + "@activepieces/shared": "workspace:*", + "tslib": "2.6.2" + } +} diff --git a/packages/pieces/community/outseta/src/action/get-account.ts b/packages/pieces/community/outseta/src/action/get-account.ts new file mode 100644 index 00000000000..a98fdb29dc2 --- /dev/null +++ b/packages/pieces/community/outseta/src/action/get-account.ts @@ -0,0 +1,33 @@ +import { createAction, Property } from '@activepieces/pieces-framework'; +import { outsetaAuth } from '../auth'; +import { OutsetaClient } from '../common/client'; + +export const getAccountAction = createAction({ + name: 'get_account', + auth: outsetaAuth, + displayName: 'Get account', + description: 'Retrieve an Outseta account by its UID', + props: { + accountUid: Property.ShortText({ + displayName: 'Account UID', + required: true, + }), + }, + async run(context) { + const client = new OutsetaClient({ + domain: context.auth.props.domain, + apiKey: context.auth.props.apiKey, + apiSecret: context.auth.props.apiSecret, + }); + + const account = await client.get( + `/api/v1/crm/accounts/${context.propsValue.accountUid}` + ); + + return { + accountUid: context.propsValue.accountUid, + account, + rawResponse: account, + }; + }, +}); diff --git a/packages/pieces/community/outseta/src/action/get-person.ts b/packages/pieces/community/outseta/src/action/get-person.ts new file mode 100644 index 00000000000..f2044d484b5 --- /dev/null +++ b/packages/pieces/community/outseta/src/action/get-person.ts @@ -0,0 +1,33 @@ +import { createAction, Property } from '@activepieces/pieces-framework'; +import { outsetaAuth } from '../auth'; +import { OutsetaClient } from '../common/client'; + +export const getPersonAction = createAction({ + name: 'get_person', + auth: outsetaAuth, + displayName: 'Get person', + description: 'Retrieve an Outseta person by its UID', + props: { + personUid: Property.ShortText({ + displayName: 'Person UID', + required: true, + }), + }, + async run(context) { + const client = new OutsetaClient({ + domain: context.auth.props.domain, + apiKey: context.auth.props.apiKey, + apiSecret: context.auth.props.apiSecret, + }); + + const person = await client.get( + `/api/v1/crm/people/${context.propsValue.personUid}` + ); + + return { + personUid: context.propsValue.personUid, + person, + rawResponse: person, + }; + }, +}); diff --git a/packages/pieces/community/outseta/src/action/get-subscription.ts b/packages/pieces/community/outseta/src/action/get-subscription.ts new file mode 100644 index 00000000000..34df20a3685 --- /dev/null +++ b/packages/pieces/community/outseta/src/action/get-subscription.ts @@ -0,0 +1,33 @@ +import { createAction, Property } from '@activepieces/pieces-framework'; +import { outsetaAuth } from '../auth'; +import { OutsetaClient } from '../common/client'; + +export const getSubscriptionAction = createAction({ + name: 'get_subscription', + auth: outsetaAuth, + displayName: 'Get subscription', + description: 'Retrieve an Outseta subscription by its UID', + props: { + subscriptionUid: Property.ShortText({ + displayName: 'Subscription UID', + required: true, + }), + }, + async run(context) { + const client = new OutsetaClient({ + domain: context.auth.props.domain, + apiKey: context.auth.props.apiKey, + apiSecret: context.auth.props.apiSecret, + }); + + const subscription = await client.get( + `/api/v1/billing/subscriptions/${context.propsValue.subscriptionUid}` + ); + + return { + subscriptionUid: context.propsValue.subscriptionUid, + subscription, + rawResponse: subscription, + }; + }, +}); diff --git a/packages/pieces/community/outseta/src/auth.ts b/packages/pieces/community/outseta/src/auth.ts new file mode 100644 index 00000000000..1b748e8a012 --- /dev/null +++ b/packages/pieces/community/outseta/src/auth.ts @@ -0,0 +1,49 @@ +import { PieceAuth, Property } from '@activepieces/pieces-framework'; +import { OutsetaClient } from './common/client'; + +export const outsetaAuth = PieceAuth.CustomAuth({ + displayName: 'Outseta Admin API', + description: 'Outseta Admin API credentials', + required: true, + props: { + domain: Property.ShortText({ + displayName: 'Outseta domain', + description: 'Example: https://yourcompany.outseta.com', + required: true, + }), + apiKey: Property.ShortText({ + displayName: 'API Key', + required: true, + }), + apiSecret: Property.ShortText({ + displayName: 'API Secret', + required: true, + }), + }, + validate: async ({ auth }) => { + if (auth) { + try { + const client = new OutsetaClient({ + domain: auth.domain, + apiKey: auth.apiKey, + apiSecret: auth.apiSecret, + }); + + await client.get(`/api/v1/crm/people`); + + return { + valid: true, + }; + } catch (error) { + return { + valid: false, + error: 'Invalid Api Key or secret key', + }; + } + } + return { + valid: false, + error: 'Invalid Api Key', + }; + }, +}); diff --git a/packages/pieces/community/outseta/src/common/client.ts b/packages/pieces/community/outseta/src/common/client.ts new file mode 100644 index 00000000000..8d69f8c9192 --- /dev/null +++ b/packages/pieces/community/outseta/src/common/client.ts @@ -0,0 +1,38 @@ +import { HttpMethod, httpClient } from '@activepieces/pieces-common'; + +type OutsetaAuth = { + domain: string; + apiKey: string; + apiSecret: string; +}; + +export class OutsetaClient { + private readonly baseUrl: string; + private readonly authHeader: string; + + constructor(auth: OutsetaAuth) { + // Remove trailing slash if present + this.baseUrl = auth.domain.replace(/\/$/, ''); + // Outseta Admin API auth format + this.authHeader = `Outseta ${auth.apiKey}:${auth.apiSecret}`; + } + + async get(path: string): Promise { + const response = await httpClient.sendRequest({ + method: HttpMethod.GET, + url: `${this.baseUrl}${path}`, + headers: { + Authorization: this.authHeader, + 'Content-Type': 'application/json', + }, + }); + + if (response.status !== 200) { + throw new Error( + `Outseta API error (${response.status}): ${JSON.stringify(response.body)}` + ); + } + + return response.body as T; + } +} diff --git a/packages/pieces/community/outseta/src/index.ts b/packages/pieces/community/outseta/src/index.ts new file mode 100644 index 00000000000..7a4cc671709 --- /dev/null +++ b/packages/pieces/community/outseta/src/index.ts @@ -0,0 +1,52 @@ +import { createCustomApiCallAction } from '@activepieces/pieces-common'; +import { createPiece } from '@activepieces/pieces-framework'; +import { PieceCategory } from '@activepieces/shared'; +import { outsetaAuth } from './auth'; + +import { getAccountAction } from './action/get-account'; +import { getPersonAction } from './action/get-person'; +import { getSubscriptionAction } from './action/get-subscription'; + +import { accountCreatedTrigger } from './triggers/account-created'; +import { accountUpdatedTrigger } from './triggers/account-updated'; +import { personCreatedTrigger } from './triggers/person-created'; +import { personUpdatedTrigger } from './triggers/person-updated'; +import { subscriptionCreatedTrigger } from './triggers/subscription-created'; +import { subscriptionUpdatedTrigger } from './triggers/subscription-updated'; +import { invoicePaidTrigger } from './triggers/invoice-paid'; +import { paymentSucceededTrigger } from './triggers/payment-succeeded'; + +export const outseta = createPiece({ + displayName: 'Outseta', + description: 'Triggers and actions for Outseta CRM and Billing', + auth: outsetaAuth, + minimumSupportedRelease: '0.20.0', + logoUrl: 'https://cdn.activepieces.com/pieces/outseta.png', + authors: ['bst1n','sanket-a11y'], + categories: [PieceCategory.SALES_AND_CRM], + triggers: [ + accountCreatedTrigger, + accountUpdatedTrigger, + personCreatedTrigger, + personUpdatedTrigger, + subscriptionCreatedTrigger, + subscriptionUpdatedTrigger, + invoicePaidTrigger, + paymentSucceededTrigger, + ], + actions: [ + getAccountAction, + getPersonAction, + getSubscriptionAction, + createCustomApiCallAction({ + auth: outsetaAuth, + baseUrl: (auth) => `${auth.props.domain}/api/v1`, + authMapping: async (auth) => { + const { apiKey, apiSecret } = auth.props; + return { + Authorization: `Outseta ${apiKey}:${apiSecret}`, + }; + }, + }), + ], +}); diff --git a/packages/pieces/community/outseta/src/triggers/_manual-webhook-trigger.ts b/packages/pieces/community/outseta/src/triggers/_manual-webhook-trigger.ts new file mode 100644 index 00000000000..e4e653546cc --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/_manual-webhook-trigger.ts @@ -0,0 +1,34 @@ +import { createTrigger, Property, TriggerStrategy } from '@activepieces/pieces-framework'; +import { outsetaAuth } from '../auth'; + +type ManualWebhookTriggerArgs = { + name: string; + displayName: string; + description: string; + sampleData?: Record; +}; + +export function createManualWebhookTrigger(args: ManualWebhookTriggerArgs) { + return createTrigger({ + name: args.name, + auth: outsetaAuth, + displayName: args.displayName, + description: `${args.description}`, + type: TriggerStrategy.WEBHOOK, + props: { + instruction: Property.MarkDown({ + value : `**Setup:** In Outseta go to Settings → Notifications → Add Notification, select the matching activity type, and paste this trigger's webhook URL {{webhookUrl}} as the callback URL.` + }) + }, + sampleData: args.sampleData ?? {}, + async onEnable() { + // Manual setup required in Outseta UI (Settings → Notifications) + }, + async onDisable() { + // Manual cleanup in Outseta UI if needed + }, + async run(context) { + return [context.payload.body]; + }, + }); +} diff --git a/packages/pieces/community/outseta/src/triggers/account-created.ts b/packages/pieces/community/outseta/src/triggers/account-created.ts new file mode 100644 index 00000000000..0a781d56f49 --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/account-created.ts @@ -0,0 +1,35 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const accountCreatedTrigger = createManualWebhookTrigger({ + name: 'account_created', + displayName: 'Account Created', + description: 'Triggers when a new account is created in Outseta.', + sampleData: { + Name: 'Example Company', + IsDemo: false, + AccountStage: 2, + AccountStageLabel: 'Trialing', + PersonAccount: [ + { + Person: { + Email: 'user@example.com', + FirstName: 'Jane', + LastName: 'Doe', + FullName: 'Jane Doe', + Uid: 'per_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-01T00:00:00', + }, + IsPrimary: true, + Uid: 'pa_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-01T00:00:00', + }, + ], + Subscriptions: [], + Deals: [], + Uid: 'acc_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-01T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/src/triggers/account-updated.ts b/packages/pieces/community/outseta/src/triggers/account-updated.ts new file mode 100644 index 00000000000..e1f90939bdd --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/account-updated.ts @@ -0,0 +1,35 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const accountUpdatedTrigger = createManualWebhookTrigger({ + name: 'account_updated', + displayName: 'Account Updated', + description: 'Triggers when an existing account is updated in Outseta.', + sampleData: { + Name: 'Example Company', + IsDemo: false, + AccountStage: 3, + AccountStageLabel: 'Subscribing', + PersonAccount: [ + { + Person: { + Email: 'user@example.com', + FirstName: 'Jane', + LastName: 'Doe', + FullName: 'Jane Doe', + Uid: 'per_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-02T00:00:00', + }, + IsPrimary: true, + Uid: 'pa_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-02T00:00:00', + }, + ], + Subscriptions: [], + Deals: [], + Uid: 'acc_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-02T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/src/triggers/invoice-paid.ts b/packages/pieces/community/outseta/src/triggers/invoice-paid.ts new file mode 100644 index 00000000000..370f8a62f0c --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/invoice-paid.ts @@ -0,0 +1,26 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const invoicePaidTrigger = createManualWebhookTrigger({ + name: 'invoice_paid', + displayName: 'Invoice Paid', + description: 'Triggers when an invoice is paid in Outseta.', + sampleData: { + Number: 1001, + BillingInvoiceDate: '2024-01-01T00:00:00', + DueDate: '2024-01-01T00:00:00', + Total: 4900, + Subtotal: 4900, + Tax: 0, + AmountOutstanding: 0, + Status: 1, + Account: { + Name: 'Example Company', + AccountStage: 3, + AccountStageLabel: 'Subscribing', + Uid: 'acc_example', + }, + Uid: 'inv_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-01T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/src/triggers/payment-succeeded.ts b/packages/pieces/community/outseta/src/triggers/payment-succeeded.ts new file mode 100644 index 00000000000..95c969a1430 --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/payment-succeeded.ts @@ -0,0 +1,22 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const paymentSucceededTrigger = createManualWebhookTrigger({ + name: 'payment_succeeded', + displayName: 'Payment Succeeded', + description: 'Triggers when a payment is successfully processed in Outseta.', + sampleData: { + Amount: 4900, + PaymentDate: '2024-01-01T00:00:00', + TransactionId: 'txn_example', + Status: 1, + Account: { + Name: 'Example Company', + AccountStage: 3, + AccountStageLabel: 'Subscribing', + Uid: 'acc_example', + }, + Uid: 'pay_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-01T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/src/triggers/person-created.ts b/packages/pieces/community/outseta/src/triggers/person-created.ts new file mode 100644 index 00000000000..add387fd782 --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/person-created.ts @@ -0,0 +1,20 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const personCreatedTrigger = createManualWebhookTrigger({ + name: 'person_created', + displayName: 'Person Created', + description: 'Triggers when a new person (contact) is created in Outseta.', + sampleData: { + Email: 'user@example.com', + FirstName: 'Jane', + LastName: 'Doe', + FullName: 'Jane Doe', + PhoneMobile: '', + PhoneWork: '', + Title: '', + OAuthIntegrationStatus: 0, + Uid: 'per_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-01T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/src/triggers/person-updated.ts b/packages/pieces/community/outseta/src/triggers/person-updated.ts new file mode 100644 index 00000000000..244efc5a006 --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/person-updated.ts @@ -0,0 +1,20 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const personUpdatedTrigger = createManualWebhookTrigger({ + name: 'person_updated', + displayName: 'Person Updated', + description: 'Triggers when an existing person (contact) is updated in Outseta.', + sampleData: { + Email: 'user@example.com', + FirstName: 'Jane', + LastName: 'Doe', + FullName: 'Jane Doe', + PhoneMobile: '+1234567890', + PhoneWork: '', + Title: 'CEO', + OAuthIntegrationStatus: 0, + Uid: 'per_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-02T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/src/triggers/subscription-created.ts b/packages/pieces/community/outseta/src/triggers/subscription-created.ts new file mode 100644 index 00000000000..a7e5d8a8078 --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/subscription-created.ts @@ -0,0 +1,25 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const subscriptionCreatedTrigger = createManualWebhookTrigger({ + name: 'subscription_created', + displayName: 'Subscription Created', + description: 'Triggers when a new subscription is created in Outseta.', + sampleData: { + BillingRenewalTerm: 1, + Quantity: 1, + StartDate: '2024-01-01T00:00:00', + RenewalDate: '2024-02-01T00:00:00', + NewRequiredQuantity: 0, + IsPlanUpgradeRequired: false, + IsPlanUpgradeRequiredStatus: 0, + Account: { + Name: 'Example Company', + AccountStage: 3, + AccountStageLabel: 'Subscribing', + Uid: 'acc_example', + }, + Uid: 'sub_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-01T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/src/triggers/subscription-updated.ts b/packages/pieces/community/outseta/src/triggers/subscription-updated.ts new file mode 100644 index 00000000000..f1e0af9f635 --- /dev/null +++ b/packages/pieces/community/outseta/src/triggers/subscription-updated.ts @@ -0,0 +1,25 @@ +import { createManualWebhookTrigger } from './_manual-webhook-trigger'; + +export const subscriptionUpdatedTrigger = createManualWebhookTrigger({ + name: 'subscription_updated', + displayName: 'Subscription Updated', + description: 'Triggers when an existing subscription is updated in Outseta.', + sampleData: { + BillingRenewalTerm: 1, + Quantity: 2, + StartDate: '2024-01-01T00:00:00', + RenewalDate: '2024-02-01T00:00:00', + NewRequiredQuantity: 0, + IsPlanUpgradeRequired: false, + IsPlanUpgradeRequiredStatus: 0, + Account: { + Name: 'Example Company', + AccountStage: 3, + AccountStageLabel: 'Subscribing', + Uid: 'acc_example', + }, + Uid: 'sub_example', + Created: '2024-01-01T00:00:00', + Updated: '2024-01-15T00:00:00', + }, +}); diff --git a/packages/pieces/community/outseta/tsconfig.json b/packages/pieces/community/outseta/tsconfig.json new file mode 100644 index 00000000000..ae51a6e46cb --- /dev/null +++ b/packages/pieces/community/outseta/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "types": ["node"] + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + } + ] +} diff --git a/packages/pieces/community/outseta/tsconfig.lib.json b/packages/pieces/community/outseta/tsconfig.lib.json new file mode 100644 index 00000000000..458a988f7db --- /dev/null +++ b/packages/pieces/community/outseta/tsconfig.lib.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "rootDir": ".", + "baseUrl": ".", + "paths": {}, + "outDir": "./dist", + "declaration": true, + "types": ["node"] + }, + "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"], + "include": ["src/**/*.ts"] +} diff --git a/packages/pieces/community/pandadoc/README.md b/packages/pieces/community/pandadoc/README.md index 5bd4cc0dc5b..10f88edcbae 100644 --- a/packages/pieces/community/pandadoc/README.md +++ b/packages/pieces/community/pandadoc/README.md @@ -1,7 +1,5 @@ # pieces-pandadoc -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pandadoc` to build the library. +Run `turbo run build --filter=@activepieces/piece-pandadoc` to build the library. diff --git a/packages/pieces/community/paperform/README.md b/packages/pieces/community/paperform/README.md index b170df53ffc..907957fa0e1 100644 --- a/packages/pieces/community/paperform/README.md +++ b/packages/pieces/community/paperform/README.md @@ -1,7 +1,5 @@ # pieces-paperform -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-paperform` to build the library. +Run `turbo run build --filter=@activepieces/piece-paperform` to build the library. diff --git a/packages/pieces/community/parser-expert/README.md b/packages/pieces/community/parser-expert/README.md index 56317bfde29..e759826bc03 100644 --- a/packages/pieces/community/parser-expert/README.md +++ b/packages/pieces/community/parser-expert/README.md @@ -1,7 +1,5 @@ # pieces-parser-expert -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-parser-expert` to build the library. +Run `turbo run build --filter=@activepieces/piece-parser-expert` to build the library. diff --git a/packages/pieces/community/parseur/README.md b/packages/pieces/community/parseur/README.md index 8e0a903af37..e583b4f2745 100644 --- a/packages/pieces/community/parseur/README.md +++ b/packages/pieces/community/parseur/README.md @@ -1,7 +1,5 @@ # pieces-parseur -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-parseur` to build the library. +Run `turbo run build --filter=@activepieces/piece-parseur` to build the library. diff --git a/packages/pieces/community/pastebin/README.md b/packages/pieces/community/pastebin/README.md index d36e853f010..99819767fa2 100644 --- a/packages/pieces/community/pastebin/README.md +++ b/packages/pieces/community/pastebin/README.md @@ -1,7 +1,5 @@ # pieces-pastebin -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-pastebin` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-pastebin` to build the library. diff --git a/packages/pieces/community/pastefy/README.md b/packages/pieces/community/pastefy/README.md index ac67ee139d8..4dbfe470600 100644 --- a/packages/pieces/community/pastefy/README.md +++ b/packages/pieces/community/pastefy/README.md @@ -1,7 +1,5 @@ # pieces-pastefy -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-pastefy` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-pastefy` to build the library. diff --git a/packages/pieces/community/paywhirl/README.md b/packages/pieces/community/paywhirl/README.md index 96dc4eacb95..3480c3f6b33 100644 --- a/packages/pieces/community/paywhirl/README.md +++ b/packages/pieces/community/paywhirl/README.md @@ -1,7 +1,5 @@ # pieces-paywhirl -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-paywhirl` to build the library. +Run `turbo run build --filter=@activepieces/piece-paywhirl` to build the library. diff --git a/packages/pieces/community/paywhirl/package.json b/packages/pieces/community/paywhirl/package.json index b12a0af781f..846f07032c1 100644 --- a/packages/pieces/community/paywhirl/package.json +++ b/packages/pieces/community/paywhirl/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/pdf-co/README.md b/packages/pieces/community/pdf-co/README.md index 705b77592dd..8da3227225a 100644 --- a/packages/pieces/community/pdf-co/README.md +++ b/packages/pieces/community/pdf-co/README.md @@ -1,7 +1,5 @@ # pieces-pdf-co -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pdf-co` to build the library. +Run `turbo run build --filter=@activepieces/piece-pdf-co` to build the library. diff --git a/packages/pieces/community/pdf/README.md b/packages/pieces/community/pdf/README.md index 9c6e98052fd..43b953fb69e 100644 --- a/packages/pieces/community/pdf/README.md +++ b/packages/pieces/community/pdf/README.md @@ -1,7 +1,5 @@ # pieces-pdf -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pdf` to build the library. +Run `turbo run build --filter=@activepieces/piece-pdf` to build the library. diff --git a/packages/pieces/community/pdfcrowd/README.md b/packages/pieces/community/pdfcrowd/README.md index 27d3574637b..06045bdec2a 100644 --- a/packages/pieces/community/pdfcrowd/README.md +++ b/packages/pieces/community/pdfcrowd/README.md @@ -1,7 +1,5 @@ # pieces-pdfcrowd -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pdfcrowd` to build the library. +Run `turbo run build --filter=@activepieces/piece-pdfcrowd` to build the library. diff --git a/packages/pieces/community/pdfmonkey/README.md b/packages/pieces/community/pdfmonkey/README.md index 6ceed4584f9..29f74484a2c 100644 --- a/packages/pieces/community/pdfmonkey/README.md +++ b/packages/pieces/community/pdfmonkey/README.md @@ -1,7 +1,5 @@ # pieces-pdfmonkey -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pdfmonkey` to build the library. +Run `turbo run build --filter=@activepieces/piece-pdfmonkey` to build the library. diff --git a/packages/pieces/community/peekshot/README.md b/packages/pieces/community/peekshot/README.md index badca17febc..2274a9d651a 100644 --- a/packages/pieces/community/peekshot/README.md +++ b/packages/pieces/community/peekshot/README.md @@ -1,7 +1,5 @@ # pieces-peekshot -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-peekshot` to build the library. +Run `turbo run build --filter=@activepieces/piece-peekshot` to build the library. diff --git a/packages/pieces/community/perplexity-ai/README.md b/packages/pieces/community/perplexity-ai/README.md index 019059d0b6e..8a00822716f 100644 --- a/packages/pieces/community/perplexity-ai/README.md +++ b/packages/pieces/community/perplexity-ai/README.md @@ -1,7 +1,5 @@ # pieces-perplexity-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-perplexity-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-perplexity-ai` to build the library. diff --git a/packages/pieces/community/perplexity-ai/package.json b/packages/pieces/community/perplexity-ai/package.json index 4c207a15559..6142394d487 100644 --- a/packages/pieces/community/perplexity-ai/package.json +++ b/packages/pieces/community/perplexity-ai/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/personal-ai/README.md b/packages/pieces/community/personal-ai/README.md index f20a56dfbbf..783c640c425 100644 --- a/packages/pieces/community/personal-ai/README.md +++ b/packages/pieces/community/personal-ai/README.md @@ -1,7 +1,5 @@ # pieces-personal-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-personal-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-personal-ai` to build the library. diff --git a/packages/pieces/community/phantombuster/README.md b/packages/pieces/community/phantombuster/README.md index c46bcf1846e..48e88af0de7 100644 --- a/packages/pieces/community/phantombuster/README.md +++ b/packages/pieces/community/phantombuster/README.md @@ -1,7 +1,5 @@ # pieces-phantombuster -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-phantombuster` to build the library. +Run `turbo run build --filter=@activepieces/piece-phantombuster` to build the library. diff --git a/packages/pieces/community/phone-validator/README.md b/packages/pieces/community/phone-validator/README.md index d127f429e8d..193dd7ddaf4 100644 --- a/packages/pieces/community/phone-validator/README.md +++ b/packages/pieces/community/phone-validator/README.md @@ -1,7 +1,5 @@ # pieces-phone-validator -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-phone-validator` to build the library. +Run `turbo run build --filter=@activepieces/piece-phone-validator` to build the library. diff --git a/packages/pieces/community/photoroom/README.md b/packages/pieces/community/photoroom/README.md index a75b233318c..0b78e543c68 100644 --- a/packages/pieces/community/photoroom/README.md +++ b/packages/pieces/community/photoroom/README.md @@ -1,7 +1,5 @@ # pieces-photoroom -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-photoroom` to build the library. +Run `turbo run build --filter=@activepieces/piece-photoroom` to build the library. diff --git a/packages/pieces/community/pinch-payments/README.md b/packages/pieces/community/pinch-payments/README.md index 8d5df6a3e44..ec1cc0638e1 100644 --- a/packages/pieces/community/pinch-payments/README.md +++ b/packages/pieces/community/pinch-payments/README.md @@ -1,7 +1,5 @@ # pieces-pinch-payments -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pinch-payments` to build the library. +Run `turbo run build --filter=@activepieces/piece-pinch-payments` to build the library. diff --git a/packages/pieces/community/pinecone/README.md b/packages/pieces/community/pinecone/README.md index eba16423cf7..ddd0c12bae5 100644 --- a/packages/pieces/community/pinecone/README.md +++ b/packages/pieces/community/pinecone/README.md @@ -1,7 +1,5 @@ # pieces-pinecone -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pinecone` to build the library. +Run `turbo run build --filter=@activepieces/piece-pinecone` to build the library. diff --git a/packages/pieces/community/pinterest/README.md b/packages/pieces/community/pinterest/README.md index 86cd0b1ee6a..501cd7d54d0 100644 --- a/packages/pieces/community/pinterest/README.md +++ b/packages/pieces/community/pinterest/README.md @@ -1,7 +1,5 @@ # pieces-pinterest -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pinterest` to build the library. +Run `turbo run build --filter=@activepieces/piece-pinterest` to build the library. diff --git a/packages/pieces/community/pipedrive/README.md b/packages/pieces/community/pipedrive/README.md index 9d78b6d79b8..91270159a86 100644 --- a/packages/pieces/community/pipedrive/README.md +++ b/packages/pieces/community/pipedrive/README.md @@ -1,7 +1,5 @@ # pieces-pipedrive -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-pipedrive` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-pipedrive` to build the library. diff --git a/packages/pieces/community/plausible/README.md b/packages/pieces/community/plausible/README.md index ebd73dec8ac..4d868c3f47d 100644 --- a/packages/pieces/community/plausible/README.md +++ b/packages/pieces/community/plausible/README.md @@ -1,7 +1,5 @@ # pieces-plausible -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-plausible` to build the library. +Run `turbo run build --filter=@activepieces/piece-plausible` to build the library. diff --git a/packages/pieces/community/podio/README.md b/packages/pieces/community/podio/README.md index 9dcb0dffbf6..a02c1dd34a4 100644 --- a/packages/pieces/community/podio/README.md +++ b/packages/pieces/community/podio/README.md @@ -1,7 +1,5 @@ # pieces-podio -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-podio` to build the library. +Run `turbo run build --filter=@activepieces/piece-podio` to build the library. diff --git a/packages/pieces/community/pollybot-ai/README.md b/packages/pieces/community/pollybot-ai/README.md index af04c96a546..c5ac0290e0c 100644 --- a/packages/pieces/community/pollybot-ai/README.md +++ b/packages/pieces/community/pollybot-ai/README.md @@ -1,7 +1,5 @@ # pieces-pollybot-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pollybot-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-pollybot-ai` to build the library. diff --git a/packages/pieces/community/poper/README.md b/packages/pieces/community/poper/README.md index 9deb0c96276..74463475f5f 100644 --- a/packages/pieces/community/poper/README.md +++ b/packages/pieces/community/poper/README.md @@ -1,7 +1,5 @@ # pieces-poper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-poper` to build the library. +Run `turbo run build --filter=@activepieces/piece-poper` to build the library. diff --git a/packages/pieces/community/postgres/README.md b/packages/pieces/community/postgres/README.md index f10de204915..0ef6ef0fbc3 100644 --- a/packages/pieces/community/postgres/README.md +++ b/packages/pieces/community/postgres/README.md @@ -1,7 +1,5 @@ # pieces-postgres -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-postgres` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-postgres` to build the library. diff --git a/packages/pieces/community/posthog/README.md b/packages/pieces/community/posthog/README.md index 8080403222f..7983ea60ca3 100644 --- a/packages/pieces/community/posthog/README.md +++ b/packages/pieces/community/posthog/README.md @@ -1,7 +1,5 @@ # pieces-posthog -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-posthog` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-posthog` to build the library. diff --git a/packages/pieces/community/predict-leads/README.md b/packages/pieces/community/predict-leads/README.md index c7cef148b41..b501777cb28 100644 --- a/packages/pieces/community/predict-leads/README.md +++ b/packages/pieces/community/predict-leads/README.md @@ -1,7 +1,5 @@ # pieces-predict-leads -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-predict-leads` to build the library. +Run `turbo run build --filter=@activepieces/piece-predict-leads` to build the library. diff --git a/packages/pieces/community/predis-ai/README.md b/packages/pieces/community/predis-ai/README.md index a08ed9b43be..4de90d4048c 100644 --- a/packages/pieces/community/predis-ai/README.md +++ b/packages/pieces/community/predis-ai/README.md @@ -1,7 +1,5 @@ # pieces-predis-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-predis-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-predis-ai` to build the library. diff --git a/packages/pieces/community/presenton/README.md b/packages/pieces/community/presenton/README.md index f05e9bcf7f3..164f57be28a 100644 --- a/packages/pieces/community/presenton/README.md +++ b/packages/pieces/community/presenton/README.md @@ -1,7 +1,5 @@ # pieces-presenton -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-presenton` to build the library. +Run `turbo run build --filter=@activepieces/piece-presentation` to build the library. diff --git a/packages/pieces/community/productboard/README.md b/packages/pieces/community/productboard/README.md index d7bf9597671..43be07f2095 100644 --- a/packages/pieces/community/productboard/README.md +++ b/packages/pieces/community/productboard/README.md @@ -1,7 +1,5 @@ # pieces-productboard -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-productboard` to build the library. +Run `turbo run build --filter=@activepieces/piece-productboard` to build the library. diff --git a/packages/pieces/community/prompthub/README.md b/packages/pieces/community/prompthub/README.md index 0718c907940..a5d9b2fb999 100644 --- a/packages/pieces/community/prompthub/README.md +++ b/packages/pieces/community/prompthub/README.md @@ -1,7 +1,5 @@ # pieces-prompthub -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-prompthub` to build the library. +Run `turbo run build --filter=@activepieces/piece-prompthub` to build the library. diff --git a/packages/pieces/community/promptmate/README.md b/packages/pieces/community/promptmate/README.md index ad70982eed9..16d81da70eb 100644 --- a/packages/pieces/community/promptmate/README.md +++ b/packages/pieces/community/promptmate/README.md @@ -1,7 +1,5 @@ # pieces-promptmate -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-promptmate` to build the library. +Run `turbo run build --filter=@activepieces/piece-promptmate` to build the library. diff --git a/packages/pieces/community/pushbullet/README.md b/packages/pieces/community/pushbullet/README.md index 700b2cc7697..0c0926f50e9 100644 --- a/packages/pieces/community/pushbullet/README.md +++ b/packages/pieces/community/pushbullet/README.md @@ -1,7 +1,5 @@ # pieces-pushbullet -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pushbullet` to build the library. +Run `turbo run build --filter=@activepieces/piece-pushbullet` to build the library. diff --git a/packages/pieces/community/pushover/README.md b/packages/pieces/community/pushover/README.md index efcf4923e62..8aec068cc60 100644 --- a/packages/pieces/community/pushover/README.md +++ b/packages/pieces/community/pushover/README.md @@ -1,7 +1,5 @@ # pieces-pushover -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-pushover` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-pushover` to build the library. diff --git a/packages/pieces/community/pylon/README.md b/packages/pieces/community/pylon/README.md index 9d59dbea706..6abc953c772 100644 --- a/packages/pieces/community/pylon/README.md +++ b/packages/pieces/community/pylon/README.md @@ -1,7 +1,5 @@ # pieces-pylon -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-pylon` to build the library. +Run `turbo run build --filter=@activepieces/piece-pylon` to build the library. diff --git a/packages/pieces/community/qdrant/README.md b/packages/pieces/community/qdrant/README.md index b528aa48e1e..a0c88b376a6 100644 --- a/packages/pieces/community/qdrant/README.md +++ b/packages/pieces/community/qdrant/README.md @@ -1,7 +1,5 @@ # pieces-qdrant -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-qdrant` to build the library. +Run `turbo run build --filter=@activepieces/piece-qdrant` to build the library. diff --git a/packages/pieces/community/quaderno/README.md b/packages/pieces/community/quaderno/README.md index 33a0b65e7b4..c8812354095 100644 --- a/packages/pieces/community/quaderno/README.md +++ b/packages/pieces/community/quaderno/README.md @@ -1,7 +1,5 @@ # pieces-quaderno -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-quaderno` to build the library. +Run `turbo run build --filter=@activepieces/piece-quaderno` to build the library. diff --git a/packages/pieces/community/queue/README.md b/packages/pieces/community/queue/README.md index b7e36b18ae2..d9351c0962f 100644 --- a/packages/pieces/community/queue/README.md +++ b/packages/pieces/community/queue/README.md @@ -1,7 +1,5 @@ # pieces-queue -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-queue` to build the library. +Run `turbo run build --filter=@activepieces/piece-queue` to build the library. diff --git a/packages/pieces/community/quickbase/README.md b/packages/pieces/community/quickbase/README.md index b70b7a3e913..8f36663e123 100644 --- a/packages/pieces/community/quickbase/README.md +++ b/packages/pieces/community/quickbase/README.md @@ -1,7 +1,5 @@ # pieces-quickbase -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-quickbase` to build the library. +Run `turbo run build --filter=@activepieces/piece-quickbase` to build the library. diff --git a/packages/pieces/community/quickbooks/README.md b/packages/pieces/community/quickbooks/README.md index 62f9d5fd8ab..3ca844609ff 100644 --- a/packages/pieces/community/quickbooks/README.md +++ b/packages/pieces/community/quickbooks/README.md @@ -1,7 +1,5 @@ # pieces-quickbooks -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-quickbooks` to build the library. +Run `turbo run build --filter=@activepieces/piece-quickbooks` to build the library. diff --git a/packages/pieces/community/quickzu/README.md b/packages/pieces/community/quickzu/README.md index a9c722d76e2..baee8c10ef0 100644 --- a/packages/pieces/community/quickzu/README.md +++ b/packages/pieces/community/quickzu/README.md @@ -1,7 +1,5 @@ # pieces-quickzu -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-quickzu` to build the library. +Run `turbo run build --filter=@activepieces/piece-quickzu` to build the library. diff --git a/packages/pieces/community/qwilr/README.md b/packages/pieces/community/qwilr/README.md index b6c2f522216..8d744ef22b3 100644 --- a/packages/pieces/community/qwilr/README.md +++ b/packages/pieces/community/qwilr/README.md @@ -1,7 +1,5 @@ # pieces-qwilr -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-qwilr` to build the library. +Run `turbo run build --filter=@activepieces/piece-qwilr` to build the library. diff --git a/packages/pieces/community/rabbitmq/README.md b/packages/pieces/community/rabbitmq/README.md index f3f34fa4314..a5c1415752f 100644 --- a/packages/pieces/community/rabbitmq/README.md +++ b/packages/pieces/community/rabbitmq/README.md @@ -1,7 +1,5 @@ # pieces-rabbitmq -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-rabbitmq` to build the library. +Run `turbo run build --filter=@activepieces/piece-rabbitmq` to build the library. diff --git a/packages/pieces/community/raia-ai/README.md b/packages/pieces/community/raia-ai/README.md index daa5a2ed498..68f3efc8c93 100644 --- a/packages/pieces/community/raia-ai/README.md +++ b/packages/pieces/community/raia-ai/README.md @@ -1,7 +1,5 @@ # pieces-raia-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-raia-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-raia-ai` to build the library. diff --git a/packages/pieces/community/rapidtext-ai/README.md b/packages/pieces/community/rapidtext-ai/README.md index a28733977f0..5b60620b61f 100644 --- a/packages/pieces/community/rapidtext-ai/README.md +++ b/packages/pieces/community/rapidtext-ai/README.md @@ -1,7 +1,5 @@ # pieces-rapidtext-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-rapidtext-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-rapidtext-ai` to build the library. diff --git a/packages/pieces/community/razorpay/README.md b/packages/pieces/community/razorpay/README.md index 17ab75a4484..876692cd4f6 100644 --- a/packages/pieces/community/razorpay/README.md +++ b/packages/pieces/community/razorpay/README.md @@ -1,7 +1,5 @@ # pieces-razorpay -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-razorpay` to build the library. +Run `turbo run build --filter=@activepieces/piece-razorpay` to build the library. diff --git a/packages/pieces/community/reachinbox/README.md b/packages/pieces/community/reachinbox/README.md index 518cd107e80..11d46e91dbb 100644 --- a/packages/pieces/community/reachinbox/README.md +++ b/packages/pieces/community/reachinbox/README.md @@ -1,7 +1,5 @@ # pieces-reachinbox -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-reachinbox` to build the library. +Run `turbo run build --filter=@activepieces/piece-reachinbox` to build the library. diff --git a/packages/pieces/community/recall-ai/README.md b/packages/pieces/community/recall-ai/README.md index 6237939e09c..e57aef60648 100644 --- a/packages/pieces/community/recall-ai/README.md +++ b/packages/pieces/community/recall-ai/README.md @@ -1,7 +1,5 @@ # pieces-recall-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-recall-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-recall-ai` to build the library. diff --git a/packages/pieces/community/reddit/README.md b/packages/pieces/community/reddit/README.md index 73e043ce32a..ee471d897ee 100644 --- a/packages/pieces/community/reddit/README.md +++ b/packages/pieces/community/reddit/README.md @@ -1,7 +1,5 @@ # pieces-reddit -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-reddit` to build the library. +Run `turbo run build --filter=@activepieces/piece-reddit` to build the library. diff --git a/packages/pieces/community/reoon-verifier/README.md b/packages/pieces/community/reoon-verifier/README.md index 72b2f432bf7..3f77968412c 100644 --- a/packages/pieces/community/reoon-verifier/README.md +++ b/packages/pieces/community/reoon-verifier/README.md @@ -1,7 +1,5 @@ # pieces-reoon-verifier -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-reoon-verifier` to build the library. +Run `turbo run build --filter=@activepieces/piece-reoon-verifier` to build the library. diff --git a/packages/pieces/community/resend/README.md b/packages/pieces/community/resend/README.md index de54d89708f..57fbb1c776a 100644 --- a/packages/pieces/community/resend/README.md +++ b/packages/pieces/community/resend/README.md @@ -1,7 +1,5 @@ # pieces-resend -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-resend` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-resend` to build the library. diff --git a/packages/pieces/community/respaid/README.md b/packages/pieces/community/respaid/README.md index 1032d6a4ab8..5b900192bee 100644 --- a/packages/pieces/community/respaid/README.md +++ b/packages/pieces/community/respaid/README.md @@ -1,7 +1,5 @@ # pieces-respaid -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-respaid` to build the library. +Run `turbo run build --filter=@activepieces/piece-respaid` to build the library. diff --git a/packages/pieces/community/respond-io/README.md b/packages/pieces/community/respond-io/README.md index b555cf0540a..e0717613b7c 100644 --- a/packages/pieces/community/respond-io/README.md +++ b/packages/pieces/community/respond-io/README.md @@ -1,7 +1,5 @@ # pieces-respond-io -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-respond-io` to build the library. +Run `turbo run build --filter=@activepieces/piece-respond-io` to build the library. diff --git a/packages/pieces/community/retable/README.md b/packages/pieces/community/retable/README.md index 77b52893edc..53971a3c071 100644 --- a/packages/pieces/community/retable/README.md +++ b/packages/pieces/community/retable/README.md @@ -1,7 +1,5 @@ # pieces-retable -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-retable` to build the library. +Run `turbo run build --filter=@activepieces/piece-retable` to build the library. diff --git a/packages/pieces/community/retell-ai/README.md b/packages/pieces/community/retell-ai/README.md index 689046e23b0..1962e75405b 100644 --- a/packages/pieces/community/retell-ai/README.md +++ b/packages/pieces/community/retell-ai/README.md @@ -1,7 +1,5 @@ # pieces-retell-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-retell-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-retell-ai` to build the library. diff --git a/packages/pieces/community/retune/README.md b/packages/pieces/community/retune/README.md index 72edd14ed9e..d77b3cc867b 100644 --- a/packages/pieces/community/retune/README.md +++ b/packages/pieces/community/retune/README.md @@ -1,7 +1,5 @@ # pieces-retune -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-retune` to build the library. +Run `turbo run build --filter=@activepieces/piece-retune` to build the library. diff --git a/packages/pieces/community/returning-ai/README.md b/packages/pieces/community/returning-ai/README.md index 4bd670c44bb..b4e3364dcdd 100644 --- a/packages/pieces/community/returning-ai/README.md +++ b/packages/pieces/community/returning-ai/README.md @@ -1,7 +1,5 @@ # pieces-returning-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-returning-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-returning-ai` to build the library. diff --git a/packages/pieces/community/robolly/README.md b/packages/pieces/community/robolly/README.md index 54c6e38b180..234fe251ef5 100644 --- a/packages/pieces/community/robolly/README.md +++ b/packages/pieces/community/robolly/README.md @@ -1,7 +1,5 @@ # pieces-robolly -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-robolly` to build the library. +Run `turbo run build --filter=@activepieces/piece-robolly` to build the library. diff --git a/packages/pieces/community/roe-ai/README.md b/packages/pieces/community/roe-ai/README.md index da0a0c7fc8e..fde886adaac 100644 --- a/packages/pieces/community/roe-ai/README.md +++ b/packages/pieces/community/roe-ai/README.md @@ -1,7 +1,5 @@ # pieces-roe-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-roe-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-roe-ai` to build the library. diff --git a/packages/pieces/community/rss/README.md b/packages/pieces/community/rss/README.md index 18b00eb2a16..d77ec18eb08 100644 --- a/packages/pieces/community/rss/README.md +++ b/packages/pieces/community/rss/README.md @@ -1,7 +1,5 @@ # pieces-rss -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-rss` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-rss` to build the library. diff --git a/packages/pieces/community/runware/README.md b/packages/pieces/community/runware/README.md index bdc09d7843f..f3a4fcf6799 100644 --- a/packages/pieces/community/runware/README.md +++ b/packages/pieces/community/runware/README.md @@ -1,7 +1,5 @@ # pieces-runware -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-runware` to build the library. +Run `turbo run build --filter=@activepieces/piece-runware` to build the library. diff --git a/packages/pieces/community/runware/package.json b/packages/pieces/community/runware/package.json index b919e203f74..9bc1fa2c8ce 100644 --- a/packages/pieces/community/runware/package.json +++ b/packages/pieces/community/runware/package.json @@ -10,7 +10,7 @@ "@activepieces/shared": "workspace:*", "@runware/sdk-js": "1.1.44", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/runway/README.md b/packages/pieces/community/runway/README.md index 59c5bdeb018..6068b4df6fc 100644 --- a/packages/pieces/community/runway/README.md +++ b/packages/pieces/community/runway/README.md @@ -1,7 +1,5 @@ # pieces-runway -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-runway` to build the library. +Run `turbo run build --filter=@activepieces/piece-runway` to build the library. diff --git a/packages/pieces/community/runway/package.json b/packages/pieces/community/runway/package.json index 651d6d9edf6..267a8e0ed86 100644 --- a/packages/pieces/community/runway/package.json +++ b/packages/pieces/community/runway/package.json @@ -8,7 +8,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "@runwayml/sdk": "2.9.0", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/saastic/README.md b/packages/pieces/community/saastic/README.md index 5af9b0f1da3..81e3ae4134c 100644 --- a/packages/pieces/community/saastic/README.md +++ b/packages/pieces/community/saastic/README.md @@ -1,7 +1,5 @@ # pieces-saastic -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-saastic` to build the library. +Run `turbo run build --filter=@activepieces/piece-saastic` to build the library. diff --git a/packages/pieces/community/saastic/package.json b/packages/pieces/community/saastic/package.json index cc2d81a0a4a..625d0648084 100644 --- a/packages/pieces/community/saastic/package.json +++ b/packages/pieces/community/saastic/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/saleor/README.md b/packages/pieces/community/saleor/README.md index 03cf0fac8ed..1374b7b1ae9 100644 --- a/packages/pieces/community/saleor/README.md +++ b/packages/pieces/community/saleor/README.md @@ -1,7 +1,5 @@ # pieces-saleor -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-saleor` to build the library. +Run `turbo run build --filter=@activepieces/piece-saleor` to build the library. diff --git a/packages/pieces/community/salesforce/README.md b/packages/pieces/community/salesforce/README.md index 7596bfa7d23..d7ea026fc5c 100644 --- a/packages/pieces/community/salesforce/README.md +++ b/packages/pieces/community/salesforce/README.md @@ -1,7 +1,5 @@ # pieces-salesforce -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-salesforce` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-salesforce` to build the library. diff --git a/packages/pieces/community/sap-ariba/README.md b/packages/pieces/community/sap-ariba/README.md index 7e5bee2dc34..fa17053311e 100644 --- a/packages/pieces/community/sap-ariba/README.md +++ b/packages/pieces/community/sap-ariba/README.md @@ -1,7 +1,5 @@ # pieces-sap-ariba -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sap-ariba` to build the library. +Run `turbo run build --filter=@activepieces/piece-sap-ariba` to build the library. diff --git a/packages/pieces/community/scenario/README.md b/packages/pieces/community/scenario/README.md index d5e82dff0a1..2cf229402c3 100644 --- a/packages/pieces/community/scenario/README.md +++ b/packages/pieces/community/scenario/README.md @@ -1,7 +1,5 @@ # pieces-scenario -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-scenario` to build the library. +Run `turbo run build --filter=@activepieces/piece-scenario` to build the library. diff --git a/packages/pieces/community/scrapeless/README.md b/packages/pieces/community/scrapeless/README.md index 2a0a5dcb92d..fa6d4316ed2 100644 --- a/packages/pieces/community/scrapeless/README.md +++ b/packages/pieces/community/scrapeless/README.md @@ -1,7 +1,5 @@ # pieces-scrapeless -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-scrapeless` to build the library. +Run `turbo run build --filter=@activepieces/piece-scrapeless` to build the library. diff --git a/packages/pieces/community/seek-table/README.md b/packages/pieces/community/seek-table/README.md index 7e987d0f621..50c3968ed00 100644 --- a/packages/pieces/community/seek-table/README.md +++ b/packages/pieces/community/seek-table/README.md @@ -1,7 +1,5 @@ # pieces-seek-table -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-seek-table` to build the library. +Run `turbo run build --filter=@activepieces/piece-seek-table` to build the library. diff --git a/packages/pieces/community/segment/README.md b/packages/pieces/community/segment/README.md index aed08e29682..4575466f8cc 100644 --- a/packages/pieces/community/segment/README.md +++ b/packages/pieces/community/segment/README.md @@ -1,7 +1,5 @@ # pieces-segment -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-segment` to build the library. +Run `turbo run build --filter=@activepieces/piece-segment` to build the library. diff --git a/packages/pieces/community/sender/README.md b/packages/pieces/community/sender/README.md index e31e2aa6077..eae773bb7a3 100644 --- a/packages/pieces/community/sender/README.md +++ b/packages/pieces/community/sender/README.md @@ -1,7 +1,5 @@ # pieces-sender -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sender` to build the library. +Run `turbo run build --filter=@activepieces/piece-sender` to build the library. diff --git a/packages/pieces/community/sendfox/README.md b/packages/pieces/community/sendfox/README.md index 701bd89196c..1bd02e86fcd 100644 --- a/packages/pieces/community/sendfox/README.md +++ b/packages/pieces/community/sendfox/README.md @@ -1,7 +1,5 @@ # pieces-sendfox -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sendfox` to build the library. +Run `turbo run build --filter=@activepieces/piece-sendfox` to build the library. diff --git a/packages/pieces/community/sendgrid/README.md b/packages/pieces/community/sendgrid/README.md index 7c22160f540..890786e10b4 100644 --- a/packages/pieces/community/sendgrid/README.md +++ b/packages/pieces/community/sendgrid/README.md @@ -1,7 +1,5 @@ # pieces-sendgrid -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-sendgrid` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-sendgrid` to build the library. diff --git a/packages/pieces/community/sendinblue/README.md b/packages/pieces/community/sendinblue/README.md index 1e410303353..3e211c28f46 100644 --- a/packages/pieces/community/sendinblue/README.md +++ b/packages/pieces/community/sendinblue/README.md @@ -1,7 +1,5 @@ # pieces-sendinblue -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-sendinblue` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-sendinblue` to build the library. diff --git a/packages/pieces/community/sendpulse/README.md b/packages/pieces/community/sendpulse/README.md index 2001e583e2b..b673fa17687 100644 --- a/packages/pieces/community/sendpulse/README.md +++ b/packages/pieces/community/sendpulse/README.md @@ -1,7 +1,5 @@ # pieces-sendpulse -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sendpulse` to build the library. +Run `turbo run build --filter=@activepieces/piece-sendpulse` to build the library. diff --git a/packages/pieces/community/sendy/README.md b/packages/pieces/community/sendy/README.md index cf1842f364f..67a0ff8da99 100644 --- a/packages/pieces/community/sendy/README.md +++ b/packages/pieces/community/sendy/README.md @@ -1,7 +1,5 @@ # pieces-sendy -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sendy` to build the library. +Run `turbo run build --filter=@activepieces/piece-sendy` to build the library. diff --git a/packages/pieces/community/sendy/package.json b/packages/pieces/community/sendy/package.json index b85d4036b97..a4876170163 100644 --- a/packages/pieces/community/sendy/package.json +++ b/packages/pieces/community/sendy/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/serp-api/README.md b/packages/pieces/community/serp-api/README.md index cb635d0b3e7..bab4792ba3d 100644 --- a/packages/pieces/community/serp-api/README.md +++ b/packages/pieces/community/serp-api/README.md @@ -1,7 +1,5 @@ # pieces-serp-api -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-serp-api` to build the library. +Run `turbo run build --filter=@activepieces/piece-serp-api` to build the library. diff --git a/packages/pieces/community/serpstat/README.md b/packages/pieces/community/serpstat/README.md index 1c8575dc63d..85cd70d2d31 100644 --- a/packages/pieces/community/serpstat/README.md +++ b/packages/pieces/community/serpstat/README.md @@ -1,7 +1,5 @@ # pieces-serpstat -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-serpstat` to build the library. +Run `turbo run build --filter=@activepieces/piece-serpstat` to build the library. diff --git a/packages/pieces/community/service-now/README.md b/packages/pieces/community/service-now/README.md index dfdf57b2d50..3b07bf7722c 100644 --- a/packages/pieces/community/service-now/README.md +++ b/packages/pieces/community/service-now/README.md @@ -1,7 +1,5 @@ # pieces-service-now -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-service-now` to build the library. +Run `turbo run build --filter=@activepieces/piece-service-now` to build the library. diff --git a/packages/pieces/community/sessions-us/README.md b/packages/pieces/community/sessions-us/README.md index 5d061077a3d..268ecbc1401 100644 --- a/packages/pieces/community/sessions-us/README.md +++ b/packages/pieces/community/sessions-us/README.md @@ -1,7 +1,5 @@ # pieces-sessions-us -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sessions-us` to build the library. +Run `turbo run build --filter=@activepieces/piece-sessions-us` to build the library. diff --git a/packages/pieces/community/shippo/README.md b/packages/pieces/community/shippo/README.md index 28989de3de8..47d419ab543 100644 --- a/packages/pieces/community/shippo/README.md +++ b/packages/pieces/community/shippo/README.md @@ -1,7 +1,5 @@ # pieces-shippo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-shippo` to build the library. +Run `turbo run build --filter=@activepieces/piece-shippo` to build the library. diff --git a/packages/pieces/community/shopify/README.md b/packages/pieces/community/shopify/README.md index 0f489bde525..281593ac41f 100644 --- a/packages/pieces/community/shopify/README.md +++ b/packages/pieces/community/shopify/README.md @@ -1,7 +1,5 @@ # pieces-shopify -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-shopify` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-shopify` to build the library. diff --git a/packages/pieces/community/shopify/package.json b/packages/pieces/community/shopify/package.json index bf277d7a491..2ef95cc3e6d 100644 --- a/packages/pieces/community/shopify/package.json +++ b/packages/pieces/community/shopify/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/short-io/README.md b/packages/pieces/community/short-io/README.md index 18100d81e42..d350ffacf4e 100644 --- a/packages/pieces/community/short-io/README.md +++ b/packages/pieces/community/short-io/README.md @@ -1,7 +1,5 @@ # pieces-short-io -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-short-io` to build the library. +Run `turbo run build --filter=@activepieces/piece-short-io` to build the library. diff --git a/packages/pieces/community/signrequest/README.md b/packages/pieces/community/signrequest/README.md index 6be887c73fa..f3948239652 100644 --- a/packages/pieces/community/signrequest/README.md +++ b/packages/pieces/community/signrequest/README.md @@ -1,7 +1,5 @@ # pieces-signrequest -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-signrequest` to build the library. +Run `turbo run build --filter=@activepieces/piece-signrequest` to build the library. diff --git a/packages/pieces/community/simplepdf/README.md b/packages/pieces/community/simplepdf/README.md index 27430a1f2ab..99ea623df86 100644 --- a/packages/pieces/community/simplepdf/README.md +++ b/packages/pieces/community/simplepdf/README.md @@ -1,7 +1,5 @@ # pieces-simplepdf -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-simplepdf` to build the library. +Run `turbo run build --filter=@activepieces/piece-simplepdf` to build the library. diff --git a/packages/pieces/community/simpliroute/README.md b/packages/pieces/community/simpliroute/README.md index 506f5003d2d..fda6a6dc023 100644 --- a/packages/pieces/community/simpliroute/README.md +++ b/packages/pieces/community/simpliroute/README.md @@ -1,128 +1,5 @@ # SimpliRoute Piece for Activepieces -A comprehensive integration piece for SimpliRoute, the last-mile delivery optimization platform. This piece enables seamless automation of delivery operations within Activepieces workflows. +## Building -## Overview - -SimpliRoute is a powerful logistics optimization platform that helps businesses streamline their delivery operations. This Activepieces integration provides access to all major SimpliRoute features including client management, vehicle tracking, route optimization, visit scheduling, and fleet management. - -## Features - -### 📋 Client Management -- **Get Clients** - Retrieve all clients with optional filtering -- **Create Clients** - Add single or multiple clients -- **Bulk Delete Clients** - Remove multiple clients efficiently -- **Create Client Properties** - Add custom client attributes - -### 🚛 Vehicle Management -- **Get Vehicles** - List all registered vehicles -- **Create Vehicle** - Register new vehicles with full configuration -- **Get Vehicle** - Retrieve detailed vehicle information -- **Delete Vehicle** - Remove vehicles from fleet - -### 📍 Visit Management -- **Get Visits** - Retrieve visits by date -- **Create Visits** - Schedule single or multiple visits -- **Get Visit** - Get specific visit details -- **Update Visit** - Full or partial visit updates -- **Delete Visit** - Remove scheduled visits -- **Add Visit Items** - Attach items to existing visits -- **Get Visit Detail** - Complete visit information - -### 🗺️ Route Management -- **Get Routes** - List all routes -- **Create Route** - Manual route creation -- **Get Route** - Detailed route information -- **Delete Route** - Remove routes - -### 🎯 Planning & Optimization -- **Get Plans** - Retrieve routing plans -- **Create Plan** - Generate optimization plans -- **Get Plan Vehicles** - List plan-assigned vehicles -- **Create Full Plan** - Complete plan with visits and vehicles - -### 👥 User Management -- **Get Drivers** - List all drivers -- **Create Users** - Add drivers and users -- **Get User** - Retrieve user information -- **Update User** - Modify user details -- **Delete User** - Remove users - -### 🏷️ Metadata Management -- **Get Skills** - Available vehicle/driver skills -- **Get Observations** - System observations -- **Get Tags** - Available tags -- **Get Zones** - Delivery zones -- **Get Fleets** - Fleet information -- **Get Sellers** - Sales representatives - -### ⚡ Advanced Features -- **Custom API Call** - Direct SimpliRoute API access for advanced use cases -- **Multi-language Support** - Full Spanish (es) localization -- **Comprehensive Error Handling** - Robust error management -- **Flexible Authentication** - Secure API token validation - -## Authentication - -This piece uses SimpliRoute API tokens for authentication: - -1. Log in to your SimpliRoute account. -2. Go to the **Profile** section. -3. Copy your API token. -4. Use the token in your ActivePieces connection settings. - -The piece automatically validates your token against SimpliRoute's authentication endpoint. - -## Supported Languages - -- **English** (default) -- **Spanish** (es) - Complete translation including all actions and properties - -## Installation - -This piece is part of the Activepieces community pieces collection. To use it: - -1. Create a new flow in Activepieces -2. Add a SimpliRoute step -3. Configure your API authentication -4. Select the desired action -5. Configure action parameters - -## API Endpoints - -All actions connect to the official SimpliRoute API at `https://api.simpliroute.com/v1/` - - -## Development - -### Building - -```bash -nx build pieces-simpliroute -``` - -### Linting - -```bash -nx lint pieces-simpliroute -``` - -## Contributing - -This piece is part of the Activepieces community project. Contributions are welcome! - -1. Follow Activepieces coding standards -2. Update documentation -3. Ensure all linting passes - -## Support - -For issues related to this piece: -- [Activepieces GitHub Issues](https://github.com/activepieces/activepieces/issues) - - -## Version - -Current version: 0.0.1 - -Built with ❤️ for the Activepieces community. +Run `turbo run build --filter=@activepieces/piece-simpliroute` to build the library. diff --git a/packages/pieces/community/simplybookme/README.md b/packages/pieces/community/simplybookme/README.md index dda1bedd27f..4a4cd8e0c1f 100644 --- a/packages/pieces/community/simplybookme/README.md +++ b/packages/pieces/community/simplybookme/README.md @@ -1,7 +1,5 @@ # pieces-simplybookme -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-simplybookme` to build the library. +Run `turbo run build --filter=@activepieces/piece-simplybookme` to build the library. diff --git a/packages/pieces/community/sitespeakai/README.md b/packages/pieces/community/sitespeakai/README.md index a7b2e359548..3398cceccf6 100644 --- a/packages/pieces/community/sitespeakai/README.md +++ b/packages/pieces/community/sitespeakai/README.md @@ -1,7 +1,5 @@ # pieces-sitespeakai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sitespeakai` to build the library. +Run `turbo run build --filter=@activepieces/piece-sitespeakai` to build the library. diff --git a/packages/pieces/community/skyprep/README.md b/packages/pieces/community/skyprep/README.md index 9ca16bc02c9..a022fbde351 100644 --- a/packages/pieces/community/skyprep/README.md +++ b/packages/pieces/community/skyprep/README.md @@ -1,7 +1,5 @@ # pieces-skyprep -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-skyprep` to build the library. +Run `turbo run build --filter=@activepieces/piece-skyprep` to build the library. diff --git a/packages/pieces/community/skyvern/README.md b/packages/pieces/community/skyvern/README.md index 7704583c102..948e7d7b4df 100644 --- a/packages/pieces/community/skyvern/README.md +++ b/packages/pieces/community/skyvern/README.md @@ -1,7 +1,5 @@ # pieces-skyvern -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-skyvern` to build the library. +Run `turbo run build --filter=@activepieces/piece-skyvern` to build the library. diff --git a/packages/pieces/community/slack/README.md b/packages/pieces/community/slack/README.md index 6f1545e843d..05e16e8ed1a 100644 --- a/packages/pieces/community/slack/README.md +++ b/packages/pieces/community/slack/README.md @@ -1,7 +1,5 @@ # pieces-slack -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-slack` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-slack` to build the library. diff --git a/packages/pieces/community/slack/package.json b/packages/pieces/community/slack/package.json index a956251a4dd..4f6652f2775 100644 --- a/packages/pieces/community/slack/package.json +++ b/packages/pieces/community/slack/package.json @@ -9,7 +9,7 @@ "@activepieces/shared": "workspace:*", "@slack/web-api": "7.9.0", "slackify-markdown": "4.4.0", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/slidespeak/README.md b/packages/pieces/community/slidespeak/README.md index 925057a98b8..258c95e2655 100644 --- a/packages/pieces/community/slidespeak/README.md +++ b/packages/pieces/community/slidespeak/README.md @@ -1,7 +1,5 @@ # pieces-slidespeak -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-slidespeak` to build the library. +Run `turbo run build --filter=@activepieces/piece-slidespeak` to build the library. diff --git a/packages/pieces/community/smaily/README.md b/packages/pieces/community/smaily/README.md index fbe73c66c8b..615fcdef08b 100644 --- a/packages/pieces/community/smaily/README.md +++ b/packages/pieces/community/smaily/README.md @@ -1,7 +1,5 @@ # pieces-smaily -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-smaily` to build the library. +Run `turbo run build --filter=@activepieces/piece-smaily` to build the library. diff --git a/packages/pieces/community/smartsheet/README.md b/packages/pieces/community/smartsheet/README.md index 7dfdc1a24c0..e78c9920875 100644 --- a/packages/pieces/community/smartsheet/README.md +++ b/packages/pieces/community/smartsheet/README.md @@ -1,7 +1,5 @@ # pieces-smartsheet -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-smartsheet` to build the library. +Run `turbo run build --filter=@activepieces/piece-smartsheet` to build the library. diff --git a/packages/pieces/community/smartsuite/README.md b/packages/pieces/community/smartsuite/README.md index 19996ee3174..d2cb24ba91a 100644 --- a/packages/pieces/community/smartsuite/README.md +++ b/packages/pieces/community/smartsuite/README.md @@ -1,7 +1,5 @@ # pieces-smartsuite -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-smartsuite` to build the library. +Run `turbo run build --filter=@activepieces/piece-smartsuite` to build the library. diff --git a/packages/pieces/community/smoove/README.md b/packages/pieces/community/smoove/README.md index 73c689336d3..5d083b1c780 100644 --- a/packages/pieces/community/smoove/README.md +++ b/packages/pieces/community/smoove/README.md @@ -1,7 +1,5 @@ # pieces-smoove -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-smoove` to build the library. +Run `turbo run build --filter=@activepieces/piece-smoove` to build the library. diff --git a/packages/pieces/community/smsmode/README.md b/packages/pieces/community/smsmode/README.md index d75030f457f..c2959759323 100644 --- a/packages/pieces/community/smsmode/README.md +++ b/packages/pieces/community/smsmode/README.md @@ -1,7 +1,5 @@ # pieces-smsmode -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-smsmode` to build the library. +Run `turbo run build --filter=@activepieces/piece-smsmode` to build the library. diff --git a/packages/pieces/community/soap/README.md b/packages/pieces/community/soap/README.md index aef20084aa3..16d45a74091 100644 --- a/packages/pieces/community/soap/README.md +++ b/packages/pieces/community/soap/README.md @@ -1,7 +1,5 @@ # pieces-soap -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-soap` to build the library. +Run `turbo run build --filter=@activepieces/piece-soap` to build the library. diff --git a/packages/pieces/community/socialkit/README.md b/packages/pieces/community/socialkit/README.md index 8ddb7d7dda9..5353bf123d4 100644 --- a/packages/pieces/community/socialkit/README.md +++ b/packages/pieces/community/socialkit/README.md @@ -1,7 +1,5 @@ # pieces-socialkit -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-socialkit` to build the library. +Run `turbo run build --filter=@activepieces/piece-socialkit` to build the library. diff --git a/packages/pieces/community/softr/README.md b/packages/pieces/community/softr/README.md index a77ccc97d64..c1a29ed67d7 100644 --- a/packages/pieces/community/softr/README.md +++ b/packages/pieces/community/softr/README.md @@ -1,7 +1,5 @@ # pieces-softr -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-softr` to build the library. +Run `turbo run build --filter=@activepieces/piece-softr` to build the library. diff --git a/packages/pieces/community/sperse/README.md b/packages/pieces/community/sperse/README.md index bdce84edbad..3a7b876e123 100644 --- a/packages/pieces/community/sperse/README.md +++ b/packages/pieces/community/sperse/README.md @@ -1,7 +1,5 @@ # pieces-sperse -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-sperse` to build the library. +Run `turbo run build --filter=@activepieces/piece-sperse` to build the library. diff --git a/packages/pieces/community/splitwise/README.md b/packages/pieces/community/splitwise/README.md index e9173f8a1c4..8885a51f3dd 100644 --- a/packages/pieces/community/splitwise/README.md +++ b/packages/pieces/community/splitwise/README.md @@ -1,7 +1,5 @@ # pieces-splitwise -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-splitwise` to build the library. +Run `turbo run build --filter=@activepieces/piece-splitwise` to build the library. diff --git a/packages/pieces/community/spotify/README.md b/packages/pieces/community/spotify/README.md index ba8f240b4c4..6cbb9f419cc 100644 --- a/packages/pieces/community/spotify/README.md +++ b/packages/pieces/community/spotify/README.md @@ -1,7 +1,5 @@ # pieces-spotify -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-spotify` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-spotify` to build the library. diff --git a/packages/pieces/community/square/README.md b/packages/pieces/community/square/README.md index 72a12d91a30..651e77ef50b 100644 --- a/packages/pieces/community/square/README.md +++ b/packages/pieces/community/square/README.md @@ -1,7 +1,5 @@ # pieces-square -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-square` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-square` to build the library. diff --git a/packages/pieces/community/stability-ai/README.md b/packages/pieces/community/stability-ai/README.md index a4b72708dc9..8be5722d7cd 100644 --- a/packages/pieces/community/stability-ai/README.md +++ b/packages/pieces/community/stability-ai/README.md @@ -1,7 +1,5 @@ # pieces-stability-ai -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-stability-ai` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-stability-ai` to build the library. diff --git a/packages/pieces/community/stable-diffusion-webui/README.md b/packages/pieces/community/stable-diffusion-webui/README.md index a1f9ed117f2..6e8bca93514 100644 --- a/packages/pieces/community/stable-diffusion-webui/README.md +++ b/packages/pieces/community/stable-diffusion-webui/README.md @@ -1,9 +1,5 @@ # pieces-stable-diffusion-webui -This library was generated with [Nx](https://nx.dev). - -Integration with [Stable Diffusion web UI](https://github.com/AUTOMATIC1111/stable-diffusion-webui) - ## Building -Run `nx build pieces-stable-diffusion-webui` to build the library. +Run `turbo run build --filter=@activepieces/piece-stable-diffusion-webui` to build the library. diff --git a/packages/pieces/community/straico/README.md b/packages/pieces/community/straico/README.md index 50a3fea5b3b..a28d24b533e 100644 --- a/packages/pieces/community/straico/README.md +++ b/packages/pieces/community/straico/README.md @@ -1,7 +1,5 @@ # pieces-straico -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-straico` to build the library. +Run `turbo run build --filter=@activepieces/piece-straico` to build the library. diff --git a/packages/pieces/community/straico/package.json b/packages/pieces/community/straico/package.json index 3190df83d55..9129aaa5e53 100644 --- a/packages/pieces/community/straico/package.json +++ b/packages/pieces/community/straico/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "form-data": "4.0.4", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/stripe/README.md b/packages/pieces/community/stripe/README.md index 066a036cfa5..aa3527e989a 100644 --- a/packages/pieces/community/stripe/README.md +++ b/packages/pieces/community/stripe/README.md @@ -1,7 +1,5 @@ # pieces-stripe -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-stripe` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-stripe` to build the library. diff --git a/packages/pieces/community/supabase/README.md b/packages/pieces/community/supabase/README.md index 7bbe8293f16..ef6bca941cc 100644 --- a/packages/pieces/community/supabase/README.md +++ b/packages/pieces/community/supabase/README.md @@ -1,7 +1,5 @@ # pieces-supabase -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-supabase` to build the library. +Run `turbo run build --filter=@activepieces/piece-supabase` to build the library. diff --git a/packages/pieces/community/surrealdb/README.md b/packages/pieces/community/surrealdb/README.md index b69c85d30da..6a76d40f73b 100644 --- a/packages/pieces/community/surrealdb/README.md +++ b/packages/pieces/community/surrealdb/README.md @@ -1,7 +1,5 @@ # pieces-surrealdb -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-surrealdb` to build the library. +Run `turbo run build --filter=@activepieces/piece-surrealdb` to build the library. diff --git a/packages/pieces/community/surveymonkey/README.md b/packages/pieces/community/surveymonkey/README.md index c3fa05a4eff..507f060bd4b 100644 --- a/packages/pieces/community/surveymonkey/README.md +++ b/packages/pieces/community/surveymonkey/README.md @@ -1,7 +1,5 @@ # pieces-surveymonkey -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-surveymonkey` to build the library. +Run `turbo run build --filter=@activepieces/piece-surveymonkey` to build the library. diff --git a/packages/pieces/community/swarmnode/README.md b/packages/pieces/community/swarmnode/README.md index a996f299925..459f3f60aad 100644 --- a/packages/pieces/community/swarmnode/README.md +++ b/packages/pieces/community/swarmnode/README.md @@ -1,7 +1,5 @@ # pieces-swarmnode -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-swarmnode` to build the library. +Run `turbo run build --filter=@activepieces/piece-swarmnode` to build the library. diff --git a/packages/pieces/community/synthesia/README.md b/packages/pieces/community/synthesia/README.md index 9f92829cd7c..288ce9d47e0 100644 --- a/packages/pieces/community/synthesia/README.md +++ b/packages/pieces/community/synthesia/README.md @@ -1,7 +1,5 @@ # pieces-synthesia -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-synthesia` to build the library. +Run `turbo run build --filter=@activepieces/piece-synthesia` to build the library. diff --git a/packages/pieces/community/systeme-io/README.md b/packages/pieces/community/systeme-io/README.md index 72a23ff4b3b..8c607532b1d 100644 --- a/packages/pieces/community/systeme-io/README.md +++ b/packages/pieces/community/systeme-io/README.md @@ -1,7 +1,5 @@ # pieces-systeme-io -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-systeme-io` to build the library. +Run `turbo run build --filter=@activepieces/piece-systeme-io` to build the library. diff --git a/packages/pieces/community/tableau/README.md b/packages/pieces/community/tableau/README.md index 680bf1589a7..68ea942bffd 100644 --- a/packages/pieces/community/tableau/README.md +++ b/packages/pieces/community/tableau/README.md @@ -1,7 +1,5 @@ # pieces-tableau -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tableau` to build the library. +Run `turbo run build --filter=@activepieces/piece-tableau` to build the library. diff --git a/packages/pieces/community/talkable/README.md b/packages/pieces/community/talkable/README.md index 7ff960576ed..1ef0674a729 100644 --- a/packages/pieces/community/talkable/README.md +++ b/packages/pieces/community/talkable/README.md @@ -1,35 +1,5 @@ # Talkable piece -====================== - -Talkable’s marketing technology empowers e-commerce brands to acquire & retain high-value customers through referral & loyalty marketing programs. As a single-source solution for your referral marketing and loyalty marketing needs, brands are able to create seamless user experiences designed to increase brand engagement and build brand affinity. - -## Website - -[https://www.talkable.com/](https://www.talkable.com/) - -## API documentation - -[https://docs.talkable.com/api_v2.html](https://docs.talkable.com/api_v2.html) - -## Actions: - -- Find coupon -- Get Loyalty actions -- Create Event -- Create batch of events -- Create Purchase -- Create batch of purchases -- Refund origin -- Find Person -- Update Person data -- Anonymize Person (GDPR) -- Unsubscribe Person - ---- - -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-talkable` to build the library. +Run `turbo run build --filter=@activepieces/piece-talkable` to build the library. diff --git a/packages/pieces/community/tally/README.md b/packages/pieces/community/tally/README.md index ac9f0a8bdb9..95911404144 100644 --- a/packages/pieces/community/tally/README.md +++ b/packages/pieces/community/tally/README.md @@ -1,7 +1,5 @@ # pieces-tally -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tally` to build the library. +Run `turbo run build --filter=@activepieces/piece-tally` to build the library. diff --git a/packages/pieces/community/tarvent/README.md b/packages/pieces/community/tarvent/README.md index 8288313d5f9..949d9f00f25 100644 --- a/packages/pieces/community/tarvent/README.md +++ b/packages/pieces/community/tarvent/README.md @@ -1,7 +1,5 @@ # pieces-tarvent -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tarvent` to build the library. +Run `turbo run build --filter=@activepieces/piece-tarvent` to build the library. diff --git a/packages/pieces/community/tarvent/package.json b/packages/pieces/community/tarvent/package.json index 06f4053beb6..e8c465df1e6 100644 --- a/packages/pieces/community/tarvent/package.json +++ b/packages/pieces/community/tarvent/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/taskade/README.md b/packages/pieces/community/taskade/README.md index 32ad3fcc9f9..591b614fbb4 100644 --- a/packages/pieces/community/taskade/README.md +++ b/packages/pieces/community/taskade/README.md @@ -1,7 +1,5 @@ # pieces-taskade -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-taskade` to build the library. +Run `turbo run build --filter=@activepieces/piece-taskade` to build the library. diff --git a/packages/pieces/community/teamleader/README.md b/packages/pieces/community/teamleader/README.md index 917f5a4e5ca..2efca4d2bef 100644 --- a/packages/pieces/community/teamleader/README.md +++ b/packages/pieces/community/teamleader/README.md @@ -1,7 +1,5 @@ # pieces-teamleader -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-teamleader` to build the library. +Run `turbo run build --filter=@activepieces/piece-teamleader` to build the library. diff --git a/packages/pieces/community/teamwork/README.md b/packages/pieces/community/teamwork/README.md index 8091d5ebb3a..451cf728143 100644 --- a/packages/pieces/community/teamwork/README.md +++ b/packages/pieces/community/teamwork/README.md @@ -1,7 +1,5 @@ # pieces-teamwork -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-teamwork` to build the library. +Run `turbo run build --filter=@activepieces/piece-teamwork` to build the library. diff --git a/packages/pieces/community/telegram-bot/README.md b/packages/pieces/community/telegram-bot/README.md index c18eb741c06..3340bf17f67 100644 --- a/packages/pieces/community/telegram-bot/README.md +++ b/packages/pieces/community/telegram-bot/README.md @@ -1,7 +1,5 @@ # pieces-telegram-bot -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-telegram-bot` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-telegram-bot` to build the library. diff --git a/packages/pieces/community/tenzo/README.md b/packages/pieces/community/tenzo/README.md index c6442ba8e39..e9b1a6680a2 100644 --- a/packages/pieces/community/tenzo/README.md +++ b/packages/pieces/community/tenzo/README.md @@ -1,7 +1,5 @@ # pieces-tenzo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tenzo` to build the library. +Run `turbo run build --filter=@activepieces/piece-tenzo` to build the library. diff --git a/packages/pieces/community/textcortex-ai/README.md b/packages/pieces/community/textcortex-ai/README.md index c9c7349ecdd..b8d0c214179 100644 --- a/packages/pieces/community/textcortex-ai/README.md +++ b/packages/pieces/community/textcortex-ai/README.md @@ -1,7 +1,5 @@ # pieces-textcortex-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-thankster` to build the library. +Run `turbo run build --filter=@activepieces/piece-textcortex-ai` to build the library. diff --git a/packages/pieces/community/thankster/README.md b/packages/pieces/community/thankster/README.md index c94e37ae357..6100c9056fd 100644 --- a/packages/pieces/community/thankster/README.md +++ b/packages/pieces/community/thankster/README.md @@ -1,7 +1,5 @@ # pieces-thankster -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-thankster` to build the library. +Run `turbo run build --filter=@activepieces/piece-thankster` to build the library. diff --git a/packages/pieces/community/ticktick/README.md b/packages/pieces/community/ticktick/README.md index 33216d41cc1..a54cd3ee85d 100644 --- a/packages/pieces/community/ticktick/README.md +++ b/packages/pieces/community/ticktick/README.md @@ -1,7 +1,5 @@ # pieces-ticktick -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-ticktick` to build the library. +Run `turbo run build --filter=@activepieces/piece-ticktick` to build the library. diff --git a/packages/pieces/community/tidely/README.md b/packages/pieces/community/tidely/README.md index 55a818cfd98..a62f6a71a18 100644 --- a/packages/pieces/community/tidely/README.md +++ b/packages/pieces/community/tidely/README.md @@ -1,7 +1,5 @@ # pieces-tidely -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tidely` to build the library. +Run `turbo run build --filter=@activepieces/piece-tidely` to build the library. diff --git a/packages/pieces/community/tidycal/README.md b/packages/pieces/community/tidycal/README.md index 64c06353169..e7bbdb6924f 100644 --- a/packages/pieces/community/tidycal/README.md +++ b/packages/pieces/community/tidycal/README.md @@ -1,7 +1,5 @@ # pieces-tidycal -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tidycal` to build the library. +Run `turbo run build --filter=@activepieces/piece-tidycal` to build the library. diff --git a/packages/pieces/community/time-ops/README.md b/packages/pieces/community/time-ops/README.md index 51de39c04b0..ae7321c68c7 100644 --- a/packages/pieces/community/time-ops/README.md +++ b/packages/pieces/community/time-ops/README.md @@ -1,7 +1,5 @@ # pieces-time-ops -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-time-ops` to build the library. +Run `turbo run build --filter=@activepieces/piece-time-ops` to build the library. diff --git a/packages/pieces/community/timelines-ai/README.md b/packages/pieces/community/timelines-ai/README.md index 4b09da24414..9674ad7625f 100644 --- a/packages/pieces/community/timelines-ai/README.md +++ b/packages/pieces/community/timelines-ai/README.md @@ -1,7 +1,5 @@ # pieces-timelines-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-timelines-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-timelines-ai` to build the library. diff --git a/packages/pieces/community/tiny-talk-ai/README.md b/packages/pieces/community/tiny-talk-ai/README.md index 63d705f9170..9afba3cfeb8 100644 --- a/packages/pieces/community/tiny-talk-ai/README.md +++ b/packages/pieces/community/tiny-talk-ai/README.md @@ -1,7 +1,5 @@ # pieces-tiny-talk-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tiny-talk-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-tiny-talk-ai` to build the library. diff --git a/packages/pieces/community/tl-dv/README.md b/packages/pieces/community/tl-dv/README.md index f47c715321a..32c880dc1cd 100644 --- a/packages/pieces/community/tl-dv/README.md +++ b/packages/pieces/community/tl-dv/README.md @@ -1,7 +1,5 @@ # pieces-tl-dv -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tl-dv` to build the library. +Run `turbo run build --filter=@activepieces/piece-tl-dv` to build the library. diff --git a/packages/pieces/community/todoist/README.md b/packages/pieces/community/todoist/README.md index ad8e874f536..25b9983c8c9 100644 --- a/packages/pieces/community/todoist/README.md +++ b/packages/pieces/community/todoist/README.md @@ -1,7 +1,5 @@ # pieces-todoist -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-todoist` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-todoist` to build the library. diff --git a/packages/pieces/community/toggl-track/README.md b/packages/pieces/community/toggl-track/README.md index 8c2992e3456..42f1ffa2e03 100644 --- a/packages/pieces/community/toggl-track/README.md +++ b/packages/pieces/community/toggl-track/README.md @@ -1,7 +1,5 @@ # pieces-toggl-track -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-toggl-track` to build the library. +Run `turbo run build --filter=@activepieces/piece-toggl-track` to build the library. diff --git a/packages/pieces/community/totalcms/README.md b/packages/pieces/community/totalcms/README.md index cd32ecd8e59..b017e737981 100644 --- a/packages/pieces/community/totalcms/README.md +++ b/packages/pieces/community/totalcms/README.md @@ -1,7 +1,5 @@ # pieces-totalcms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-totalcms` to build the library. +Run `turbo run build --filter=@activepieces/piece-totalcms` to build the library. diff --git a/packages/pieces/community/totalcms/package.json b/packages/pieces/community/totalcms/package.json index ab7327ff252..f9ca3ac677f 100644 --- a/packages/pieces/community/totalcms/package.json +++ b/packages/pieces/community/totalcms/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "form-data": "4.0.4", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/trello/README.md b/packages/pieces/community/trello/README.md index 1ae0cbe086e..1ce088b680a 100644 --- a/packages/pieces/community/trello/README.md +++ b/packages/pieces/community/trello/README.md @@ -1,7 +1,5 @@ # pieces-trello -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-trello` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-trello` to build the library. diff --git a/packages/pieces/community/truelayer/README.md b/packages/pieces/community/truelayer/README.md index c5de492a699..1df91d8149b 100644 --- a/packages/pieces/community/truelayer/README.md +++ b/packages/pieces/community/truelayer/README.md @@ -1,7 +1,5 @@ # pieces-truelayer -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-truelayer` to build the library. +Run `turbo run build --filter=@activepieces/piece-truelayer` to build the library. diff --git a/packages/pieces/community/twilio/README.md b/packages/pieces/community/twilio/README.md index c569c9fcc21..dc53a345e7a 100644 --- a/packages/pieces/community/twilio/README.md +++ b/packages/pieces/community/twilio/README.md @@ -1,7 +1,5 @@ # pieces-twilio -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-twilio` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-twilio` to build the library. diff --git a/packages/pieces/community/twin-labs/README.md b/packages/pieces/community/twin-labs/README.md index 76107902d9a..7a35cdc3efd 100644 --- a/packages/pieces/community/twin-labs/README.md +++ b/packages/pieces/community/twin-labs/README.md @@ -1,7 +1,5 @@ # pieces-twin-labs -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-twin-labs` to build the library. +Run `turbo run build --filter=@activepieces/piece-twin-labs` to build the library. diff --git a/packages/pieces/community/twitch/README.md b/packages/pieces/community/twitch/README.md index 01755f959f5..28da9ab1f06 100644 --- a/packages/pieces/community/twitch/README.md +++ b/packages/pieces/community/twitch/README.md @@ -1,7 +1,5 @@ # pieces-twitch -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-twitch` to build the library. +Run `turbo run build --filter=@activepieces/piece-twitch` to build the library. diff --git a/packages/pieces/community/twitter/README.md b/packages/pieces/community/twitter/README.md index 6822724ca78..dd287e25e4d 100644 --- a/packages/pieces/community/twitter/README.md +++ b/packages/pieces/community/twitter/README.md @@ -1,7 +1,5 @@ # pieces-twitter -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-twitter` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-twitter` to build the library. diff --git a/packages/pieces/community/twitter/package.json b/packages/pieces/community/twitter/package.json index 28a6e63bb58..9d3ced9551d 100644 --- a/packages/pieces/community/twitter/package.json +++ b/packages/pieces/community/twitter/package.json @@ -9,7 +9,7 @@ "@activepieces/shared": "workspace:*", "mime-types": "2.1.35", "twitter-api-v2": "1.15.1", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/community/typeform/README.md b/packages/pieces/community/typeform/README.md index e7d54ae340e..cbc468b9d36 100644 --- a/packages/pieces/community/typeform/README.md +++ b/packages/pieces/community/typeform/README.md @@ -1,7 +1,5 @@ # pieces-typeform -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-typeform` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-typeform` to build the library. diff --git a/packages/pieces/community/upgradechat/README.md b/packages/pieces/community/upgradechat/README.md index 3b2b1a5c89b..56cdd6c552c 100644 --- a/packages/pieces/community/upgradechat/README.md +++ b/packages/pieces/community/upgradechat/README.md @@ -1,7 +1,5 @@ # pieces-upgradechat -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-upgradechat` to build the library. +Run `turbo run build --filter=@activepieces/piece-upgradechat` to build the library. diff --git a/packages/pieces/community/uscreen/README.md b/packages/pieces/community/uscreen/README.md index cca3631b1c6..eebaac4729e 100644 --- a/packages/pieces/community/uscreen/README.md +++ b/packages/pieces/community/uscreen/README.md @@ -1,7 +1,5 @@ # pieces-uscreen -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-uscreen` to build the library. +Run `turbo run build --filter=@activepieces/piece-uscreen` to build the library. diff --git a/packages/pieces/community/vadoo-ai/README.md b/packages/pieces/community/vadoo-ai/README.md index 49e06b24390..9e5bc7e0d4e 100644 --- a/packages/pieces/community/vadoo-ai/README.md +++ b/packages/pieces/community/vadoo-ai/README.md @@ -1,7 +1,5 @@ # pieces-vadoo-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vadoo-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-vadoo-ai` to build the library. diff --git a/packages/pieces/community/vadoo-ai/package.json b/packages/pieces/community/vadoo-ai/package.json index 241dc6da362..87f5c5ab5ce 100644 --- a/packages/pieces/community/vadoo-ai/package.json +++ b/packages/pieces/community/vadoo-ai/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/valyu/README.md b/packages/pieces/community/valyu/README.md index dd0acc8916a..d4502d48936 100644 --- a/packages/pieces/community/valyu/README.md +++ b/packages/pieces/community/valyu/README.md @@ -1,7 +1,5 @@ # pieces-valyu -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-valyu` to build the library. +Run `turbo run build --filter=@activepieces/piece-valyu` to build the library. diff --git a/packages/pieces/community/vbout/README.md b/packages/pieces/community/vbout/README.md index 85915d9f8e6..66d494ec094 100644 --- a/packages/pieces/community/vbout/README.md +++ b/packages/pieces/community/vbout/README.md @@ -1,7 +1,5 @@ # pieces-vbout -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vbout` to build the library. +Run `turbo run build --filter=@activepieces/piece-vbout` to build the library. diff --git a/packages/pieces/community/vero/README.md b/packages/pieces/community/vero/README.md index 055c9724914..1b984747ca6 100644 --- a/packages/pieces/community/vero/README.md +++ b/packages/pieces/community/vero/README.md @@ -1,7 +1,5 @@ # pieces-vero -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vero` to build the library. +Run `turbo run build --filter=@activepieces/piece-vero` to build the library. diff --git a/packages/pieces/community/videoask/README.md b/packages/pieces/community/videoask/README.md index 73003f7af43..d90c181a327 100644 --- a/packages/pieces/community/videoask/README.md +++ b/packages/pieces/community/videoask/README.md @@ -1,7 +1,5 @@ # pieces-videoask -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-videoask` to build the library. +Run `turbo run build --filter=@activepieces/piece-videoask` to build the library. diff --git a/packages/pieces/community/vidlab7/README.md b/packages/pieces/community/vidlab7/README.md index 9ed22f91f8e..87569115528 100644 --- a/packages/pieces/community/vidlab7/README.md +++ b/packages/pieces/community/vidlab7/README.md @@ -1,7 +1,5 @@ # pieces-vidlab7 -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vidlab7` to build the library. +Run `turbo run build --filter=@activepieces/piece-vidlab7` to build the library. diff --git a/packages/pieces/community/vidnoz/README.md b/packages/pieces/community/vidnoz/README.md index a8be50e66d3..66183246be3 100644 --- a/packages/pieces/community/vidnoz/README.md +++ b/packages/pieces/community/vidnoz/README.md @@ -1,7 +1,5 @@ # pieces-vidnoz -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vidnoz` to build the library. +Run `turbo run build --filter=@activepieces/piece-vidnoz` to build the library. diff --git a/packages/pieces/community/village/README.md b/packages/pieces/community/village/README.md index 029d4605b5c..dd9123f31c3 100644 --- a/packages/pieces/community/village/README.md +++ b/packages/pieces/community/village/README.md @@ -1,7 +1,5 @@ # pieces-village -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-village` to build the library. +Run `turbo run build --filter=@activepieces/piece-village` to build the library. diff --git a/packages/pieces/community/visible/README.md b/packages/pieces/community/visible/README.md index 22c90138f74..5439ada4658 100644 --- a/packages/pieces/community/visible/README.md +++ b/packages/pieces/community/visible/README.md @@ -1,7 +1,5 @@ # pieces-visible -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-visible` to build the library. +Run `turbo run build --filter=@activepieces/piece-visible` to build the library. diff --git a/packages/pieces/community/vlm-run/README.md b/packages/pieces/community/vlm-run/README.md index 35f35a4f7cd..2a6c7fda67c 100644 --- a/packages/pieces/community/vlm-run/README.md +++ b/packages/pieces/community/vlm-run/README.md @@ -1,7 +1,5 @@ # pieces-vlm-run -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vlm-run` to build the library. +Run `turbo run build --filter=@activepieces/piece-vlm-run` to build the library. diff --git a/packages/pieces/community/vlm-run/package.json b/packages/pieces/community/vlm-run/package.json index 8c039b14b60..32975ee4c49 100644 --- a/packages/pieces/community/vlm-run/package.json +++ b/packages/pieces/community/vlm-run/package.json @@ -10,7 +10,7 @@ "@activepieces/shared": "workspace:*", "form-data": "4.0.4", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/voipstudio/README.md b/packages/pieces/community/voipstudio/README.md index 03604ed1cc6..0671d07a475 100644 --- a/packages/pieces/community/voipstudio/README.md +++ b/packages/pieces/community/voipstudio/README.md @@ -1,7 +1,5 @@ # pieces-voipstudio -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-voipstudio` to build the library. +Run `turbo run build --filter=@activepieces/piece-voipstudio` to build the library. diff --git a/packages/pieces/community/vouchery-io/README.md b/packages/pieces/community/vouchery-io/README.md index 7931e2b8a0c..6273368734d 100644 --- a/packages/pieces/community/vouchery-io/README.md +++ b/packages/pieces/community/vouchery-io/README.md @@ -1,7 +1,5 @@ # pieces-vouchery-io -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vouchery-io` to build the library. +Run `turbo run build --filter=@activepieces/piece-vouchery-io` to build the library. diff --git a/packages/pieces/community/vouchery-io/package.json b/packages/pieces/community/vouchery-io/package.json index c8cde081aff..12c0a11e240 100644 --- a/packages/pieces/community/vouchery-io/package.json +++ b/packages/pieces/community/vouchery-io/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/vtex/README.md b/packages/pieces/community/vtex/README.md index 8aae1be11b9..f5cc7fbbbf3 100644 --- a/packages/pieces/community/vtex/README.md +++ b/packages/pieces/community/vtex/README.md @@ -1,7 +1,5 @@ # pieces-vtex -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-vtex` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-vtex` to build the library. diff --git a/packages/pieces/community/vtiger/README.md b/packages/pieces/community/vtiger/README.md index e6dff9909b1..ffb05209c9f 100644 --- a/packages/pieces/community/vtiger/README.md +++ b/packages/pieces/community/vtiger/README.md @@ -1,7 +1,5 @@ # pieces-vtiger -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-vtiger` to build the library. +Run `turbo run build --filter=@activepieces/piece-vtiger` to build the library. diff --git a/packages/pieces/community/waitwhile/README.md b/packages/pieces/community/waitwhile/README.md index 4cac932366d..ea59e7fff6f 100644 --- a/packages/pieces/community/waitwhile/README.md +++ b/packages/pieces/community/waitwhile/README.md @@ -1,7 +1,5 @@ # pieces-waitwhile -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-waitwhile` to build the library. +Run `turbo run build --filter=@activepieces/piece-waitwhile` to build the library. diff --git a/packages/pieces/community/wealthbox/README.md b/packages/pieces/community/wealthbox/README.md index 1bf674b80e4..cf640fff9b0 100644 --- a/packages/pieces/community/wealthbox/README.md +++ b/packages/pieces/community/wealthbox/README.md @@ -1,7 +1,5 @@ # pieces-wealthbox -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-wealthbox` to build the library. +Run `turbo run build --filter=@activepieces/piece-wealthbox` to build the library. diff --git a/packages/pieces/community/webflow/README.md b/packages/pieces/community/webflow/README.md index ab13bfa46fa..788c9c8de46 100644 --- a/packages/pieces/community/webflow/README.md +++ b/packages/pieces/community/webflow/README.md @@ -1,7 +1,5 @@ # pieces-webflow -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-webflow` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-webflow` to build the library. diff --git a/packages/pieces/community/webling/README.md b/packages/pieces/community/webling/README.md index 540c817d57d..47c0d0eaada 100644 --- a/packages/pieces/community/webling/README.md +++ b/packages/pieces/community/webling/README.md @@ -1,7 +1,5 @@ # pieces-webling -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-webling` to build the library. +Run `turbo run build --filter=@activepieces/piece-webling` to build the library. diff --git a/packages/pieces/community/webling/package.json b/packages/pieces/community/webling/package.json index 1129891efce..022d1b38a95 100644 --- a/packages/pieces/community/webling/package.json +++ b/packages/pieces/community/webling/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/webscraping-ai/README.md b/packages/pieces/community/webscraping-ai/README.md index 54a17c10c4f..a95f4011fb4 100644 --- a/packages/pieces/community/webscraping-ai/README.md +++ b/packages/pieces/community/webscraping-ai/README.md @@ -1,7 +1,5 @@ # pieces-webscraping-ai -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-webscraping-ai` to build the library. +Run `turbo run build --filter=@activepieces/piece-webscraping-ai` to build the library. diff --git a/packages/pieces/community/wedof/README.md b/packages/pieces/community/wedof/README.md index 889e9c5abec..2017f10d428 100644 --- a/packages/pieces/community/wedof/README.md +++ b/packages/pieces/community/wedof/README.md @@ -1,7 +1,5 @@ # pieces-wedof -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-wedof` to build the library. +Run `turbo run build --filter=@activepieces/piece-wedof` to build the library. diff --git a/packages/pieces/community/week-done/README.md b/packages/pieces/community/week-done/README.md index cee75570da6..138b77c79c7 100644 --- a/packages/pieces/community/week-done/README.md +++ b/packages/pieces/community/week-done/README.md @@ -1,7 +1,5 @@ # pieces-week-done -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-week-done` to build the library. +Run `turbo run build --filter=@activepieces/piece-week-done` to build the library. diff --git a/packages/pieces/community/what-converts/README.md b/packages/pieces/community/what-converts/README.md index d290b285ac8..95f219fe781 100644 --- a/packages/pieces/community/what-converts/README.md +++ b/packages/pieces/community/what-converts/README.md @@ -1,7 +1,5 @@ # pieces-what-converts -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-what-converts` to build the library. +Run `turbo run build --filter=@activepieces/piece-what-converts` to build the library. diff --git a/packages/pieces/community/whatsable/README.md b/packages/pieces/community/whatsable/README.md index 270a58ba208..ff185a75582 100644 --- a/packages/pieces/community/whatsable/README.md +++ b/packages/pieces/community/whatsable/README.md @@ -1,7 +1,5 @@ # pieces-whatsable -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-whatsable` to build the library. +Run `turbo run build --filter=@activepieces/piece-whatsable` to build the library. diff --git a/packages/pieces/community/whatsapp/README.md b/packages/pieces/community/whatsapp/README.md index 85a4a45abf9..716cf0b2180 100644 --- a/packages/pieces/community/whatsapp/README.md +++ b/packages/pieces/community/whatsapp/README.md @@ -1,7 +1,5 @@ # pieces-whatsapp -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-whatsapp` to build the library. +Run `turbo run build --filter=@activepieces/piece-whatsapp` to build the library. diff --git a/packages/pieces/community/wonderchat/README.md b/packages/pieces/community/wonderchat/README.md index 708850a1d92..5da3b4cfc97 100644 --- a/packages/pieces/community/wonderchat/README.md +++ b/packages/pieces/community/wonderchat/README.md @@ -1,7 +1,5 @@ # pieces-wonderchat -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-wonderchat` to build the library. +Run `turbo run build --filter=@activepieces/piece-wonderchat` to build the library. diff --git a/packages/pieces/community/woocommerce/README.md b/packages/pieces/community/woocommerce/README.md index bba95fc22e0..27a880fe1a7 100644 --- a/packages/pieces/community/woocommerce/README.md +++ b/packages/pieces/community/woocommerce/README.md @@ -1,7 +1,5 @@ # pieces-woocommerce -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-woocommerce` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-woocommerce` to build the library. diff --git a/packages/pieces/community/woocommerce/package.json b/packages/pieces/community/woocommerce/package.json index 75556f155e2..fd7dc93dab8 100644 --- a/packages/pieces/community/woocommerce/package.json +++ b/packages/pieces/community/woocommerce/package.json @@ -11,7 +11,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/community/woodpecker/README.md b/packages/pieces/community/woodpecker/README.md index 18d648348db..1d759a034c1 100644 --- a/packages/pieces/community/woodpecker/README.md +++ b/packages/pieces/community/woodpecker/README.md @@ -1,7 +1,5 @@ # pieces-woodpecker -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-woodpecker` to build the library. +Run `turbo run build --filter=@activepieces/piece-woodpecker` to build the library. diff --git a/packages/pieces/community/wootric/README.md b/packages/pieces/community/wootric/README.md index 1eae3c28f95..faf1f113007 100644 --- a/packages/pieces/community/wootric/README.md +++ b/packages/pieces/community/wootric/README.md @@ -1,7 +1,5 @@ # pieces-wootric -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-wootric` to build the library. +Run `turbo run build --filter=@activepieces/piece-wootric` to build the library. diff --git a/packages/pieces/community/wordpress/README.md b/packages/pieces/community/wordpress/README.md index 63b74a9cd61..efc05cff736 100644 --- a/packages/pieces/community/wordpress/README.md +++ b/packages/pieces/community/wordpress/README.md @@ -1,7 +1,5 @@ # pieces-wordpress -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-wordpress` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-wordpress` to build the library. diff --git a/packages/pieces/community/workable/README.md b/packages/pieces/community/workable/README.md index 8e44e18dd9b..f3aa65eaecf 100644 --- a/packages/pieces/community/workable/README.md +++ b/packages/pieces/community/workable/README.md @@ -1,7 +1,5 @@ # pieces-workable -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-workable` to build the library. +Run `turbo run build --filter=@activepieces/piece-workable` to build the library. diff --git a/packages/pieces/community/wrike/README.md b/packages/pieces/community/wrike/README.md index f67ef03d6bb..b23375397bc 100644 --- a/packages/pieces/community/wrike/README.md +++ b/packages/pieces/community/wrike/README.md @@ -1,7 +1,5 @@ # pieces-wrike -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-wrike` to build the library. +Run `turbo run build --filter=@activepieces/piece-wrike` to build the library. diff --git a/packages/pieces/community/writesonic-bulk/README.md b/packages/pieces/community/writesonic-bulk/README.md index 33164a46143..2476ef51301 100644 --- a/packages/pieces/community/writesonic-bulk/README.md +++ b/packages/pieces/community/writesonic-bulk/README.md @@ -1,7 +1,5 @@ # pieces-writesonic-bulk -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-writesonic-bulk` to build the library. +Run `turbo run build --filter=@activepieces/piece-writesonic-bulk` to build the library. diff --git a/packages/pieces/community/wufoo/README.md b/packages/pieces/community/wufoo/README.md index 495381f6ff3..e5e2667330c 100644 --- a/packages/pieces/community/wufoo/README.md +++ b/packages/pieces/community/wufoo/README.md @@ -1,7 +1,5 @@ # pieces-wufoo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-wufoo` to build the library. +Run `turbo run build --filter=@activepieces/piece-wufoo` to build the library. diff --git a/packages/pieces/community/xero/README.md b/packages/pieces/community/xero/README.md index 633b69a787d..ceed3e9c600 100644 --- a/packages/pieces/community/xero/README.md +++ b/packages/pieces/community/xero/README.md @@ -1,7 +1,5 @@ # pieces-xero -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-xero` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-xero` to build the library. diff --git a/packages/pieces/community/youcanbookme/README.md b/packages/pieces/community/youcanbookme/README.md index efba7e943c2..f1a58dfbf39 100644 --- a/packages/pieces/community/youcanbookme/README.md +++ b/packages/pieces/community/youcanbookme/README.md @@ -1,7 +1,5 @@ # pieces-youcanbookme -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-youcanbookme` to build the library. +Run `turbo run build --filter=@activepieces/piece-youcanbookme` to build the library. diff --git a/packages/pieces/community/youform/README.md b/packages/pieces/community/youform/README.md index ae67f0823b4..38295f2b364 100644 --- a/packages/pieces/community/youform/README.md +++ b/packages/pieces/community/youform/README.md @@ -1,7 +1,5 @@ # pieces-youform -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-youform` to build the library. +Run `turbo run build --filter=@activepieces/piece-youform` to build the library. diff --git a/packages/pieces/community/youtube/README.md b/packages/pieces/community/youtube/README.md index 1470f231a5d..18cf10ce17e 100644 --- a/packages/pieces/community/youtube/README.md +++ b/packages/pieces/community/youtube/README.md @@ -1,7 +1,5 @@ # pieces-youtube -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-youtube` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-youtube` to build the library. diff --git a/packages/pieces/community/zagomail/README.md b/packages/pieces/community/zagomail/README.md index 180df2adbc9..edf46bbb32d 100644 --- a/packages/pieces/community/zagomail/README.md +++ b/packages/pieces/community/zagomail/README.md @@ -1,7 +1,5 @@ # pieces-zagomail -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zagomail` to build the library. +Run `turbo run build --filter=@activepieces/piece-zagomail` to build the library. diff --git a/packages/pieces/community/zendesk-sell/README.md b/packages/pieces/community/zendesk-sell/README.md index e8e87089fc0..1f5cdee0da8 100644 --- a/packages/pieces/community/zendesk-sell/README.md +++ b/packages/pieces/community/zendesk-sell/README.md @@ -1,7 +1,5 @@ # pieces-zendesk-sell -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zendesk-sell` to build the library. +Run `turbo run build --filter=@activepieces/piece-zendesk-sell` to build the library. diff --git a/packages/pieces/community/zendesk/README.md b/packages/pieces/community/zendesk/README.md index 04783cee3fb..ecfff61c117 100644 --- a/packages/pieces/community/zendesk/README.md +++ b/packages/pieces/community/zendesk/README.md @@ -1,7 +1,5 @@ # pieces-zendesk -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-zendesk` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-zendesk` to build the library. diff --git a/packages/pieces/community/zeplin/README.md b/packages/pieces/community/zeplin/README.md index 6cbe04eaa99..8804b5ca053 100644 --- a/packages/pieces/community/zeplin/README.md +++ b/packages/pieces/community/zeplin/README.md @@ -1,7 +1,5 @@ # pieces-zeplin -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zeplin` to build the library. +Run `turbo run build --filter=@activepieces/piece-zeplin` to build the library. diff --git a/packages/pieces/community/zerobounce/README.md b/packages/pieces/community/zerobounce/README.md index facaf23fca2..ed6841e50fd 100644 --- a/packages/pieces/community/zerobounce/README.md +++ b/packages/pieces/community/zerobounce/README.md @@ -1,7 +1,5 @@ # pieces-zerobounce -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zerobounce` to build the library. +Run `turbo run build --filter=@activepieces/piece-zerobounce` to build the library. diff --git a/packages/pieces/community/zoho-bookings/README.md b/packages/pieces/community/zoho-bookings/README.md index 55053b328c7..6ed8b3f07e5 100644 --- a/packages/pieces/community/zoho-bookings/README.md +++ b/packages/pieces/community/zoho-bookings/README.md @@ -1,7 +1,5 @@ # pieces-zoho-bookings -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoho-bookings` to build the library. +Run `turbo run build --filter=@activepieces/piece-zoho-bookings` to build the library. diff --git a/packages/pieces/community/zoho-bookings/package.json b/packages/pieces/community/zoho-bookings/package.json index 1c8d1e2a48b..e88384a9e3d 100644 --- a/packages/pieces/community/zoho-bookings/package.json +++ b/packages/pieces/community/zoho-bookings/package.json @@ -9,7 +9,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/zoho-books/README.md b/packages/pieces/community/zoho-books/README.md index 1066082a329..2d79b1fe42d 100644 --- a/packages/pieces/community/zoho-books/README.md +++ b/packages/pieces/community/zoho-books/README.md @@ -1,7 +1,5 @@ # pieces-zoho-books -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoho-books` to build the library. +Run `turbo run build --filter=@activepieces/piece-zoho-books` to build the library. diff --git a/packages/pieces/community/zoho-campaigns/README.md b/packages/pieces/community/zoho-campaigns/README.md index c5919b72164..d340feeff82 100644 --- a/packages/pieces/community/zoho-campaigns/README.md +++ b/packages/pieces/community/zoho-campaigns/README.md @@ -1,7 +1,5 @@ # pieces-zoho-campaigns -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoho-campaigns` to build the library. +Run `turbo run build --filter=@activepieces/piece-zoho-campaigns` to build the library. diff --git a/packages/pieces/community/zoho-campaigns/package.json b/packages/pieces/community/zoho-campaigns/package.json index 00bd0f244b3..4456f5fa827 100644 --- a/packages/pieces/community/zoho-campaigns/package.json +++ b/packages/pieces/community/zoho-campaigns/package.json @@ -10,7 +10,7 @@ "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", "tslib": "^2.3.0", - "zod": "4.1.13" + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/pieces/community/zoho-crm/README.md b/packages/pieces/community/zoho-crm/README.md index 7e9eaaff188..8669e6acb64 100644 --- a/packages/pieces/community/zoho-crm/README.md +++ b/packages/pieces/community/zoho-crm/README.md @@ -1,7 +1,5 @@ # pieces-zoho-crm -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-zoho-crm` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-zoho-crm` to build the library. diff --git a/packages/pieces/community/zoho-desk/README.md b/packages/pieces/community/zoho-desk/README.md index b42ef31f990..cb7fded8707 100644 --- a/packages/pieces/community/zoho-desk/README.md +++ b/packages/pieces/community/zoho-desk/README.md @@ -1,7 +1,5 @@ # pieces-zoho-desk -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoho-desk` to build the library. +Run `turbo run build --filter=@activepieces/piece-zoho-desk` to build the library. diff --git a/packages/pieces/community/zoho-invoice/README.md b/packages/pieces/community/zoho-invoice/README.md index 9426caee657..b43c42a3531 100644 --- a/packages/pieces/community/zoho-invoice/README.md +++ b/packages/pieces/community/zoho-invoice/README.md @@ -1,7 +1,5 @@ # pieces-zoho-invoice -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoho-invoice` to build the library. +Run `turbo run build --filter=@activepieces/piece-zoho-invoice` to build the library. diff --git a/packages/pieces/community/zoho-mail/README.md b/packages/pieces/community/zoho-mail/README.md index 28d0bbdacf3..506d6ee0c55 100644 --- a/packages/pieces/community/zoho-mail/README.md +++ b/packages/pieces/community/zoho-mail/README.md @@ -1,7 +1,5 @@ # pieces-zoho-mail -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoho-mail` to build the library. +Run `turbo run build --filter=@activepieces/piece-zoho-mail` to build the library. diff --git a/packages/pieces/community/zoo/README.md b/packages/pieces/community/zoo/README.md index d12d7a0e527..8093d2736b0 100644 --- a/packages/pieces/community/zoo/README.md +++ b/packages/pieces/community/zoo/README.md @@ -1,7 +1,5 @@ # pieces-zoo -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-zoo` to build the library. +Run `turbo run build --filter=@activepieces/piece-zoo` to build the library. diff --git a/packages/pieces/community/zoom/README.md b/packages/pieces/community/zoom/README.md index 634d25d8b61..3d0a31da08f 100644 --- a/packages/pieces/community/zoom/README.md +++ b/packages/pieces/community/zoom/README.md @@ -1,7 +1,5 @@ # pieces-zoom -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-zoom` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-zoom` to build the library. diff --git a/packages/pieces/core/approval/README.md b/packages/pieces/core/approval/README.md index a55ed1ddf61..4c1b20f2d7d 100644 --- a/packages/pieces/core/approval/README.md +++ b/packages/pieces/core/approval/README.md @@ -1,7 +1,5 @@ # pieces-approval -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-approval` to build the library. +Run `turbo run build --filter=@activepieces/piece-approval` to build the library. diff --git a/packages/pieces/core/connections/README.md b/packages/pieces/core/connections/README.md index aebcb54be56..b7e35fbfafb 100644 --- a/packages/pieces/core/connections/README.md +++ b/packages/pieces/core/connections/README.md @@ -1,7 +1,5 @@ # pieces-connections -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-connections` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-connections` to build the library. diff --git a/packages/pieces/core/crypto/README.md b/packages/pieces/core/crypto/README.md index fcec32fc75a..e9dbd103a26 100644 --- a/packages/pieces/core/crypto/README.md +++ b/packages/pieces/core/crypto/README.md @@ -1,7 +1,5 @@ # pieces-crypto -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-crypto` to build the library. +Run `turbo run build --filter=@activepieces/piece-crypto` to build the library. diff --git a/packages/pieces/core/crypto/package.json b/packages/pieces/core/crypto/package.json index 89040176a36..b0ed91adacd 100644 --- a/packages/pieces/core/crypto/package.json +++ b/packages/pieces/core/crypto/package.json @@ -9,7 +9,7 @@ "@activepieces/shared": "workspace:*", "buffer": "6.0.3", "openpgp": "^6.2.0", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/core/csv/README.md b/packages/pieces/core/csv/README.md index edd1582d79d..c5c4acfdb53 100644 --- a/packages/pieces/core/csv/README.md +++ b/packages/pieces/core/csv/README.md @@ -1,7 +1,5 @@ # pieces-csv -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-csv` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-csv` to build the library. diff --git a/packages/pieces/core/data-mapper/README.md b/packages/pieces/core/data-mapper/README.md index f14b0aa942d..ab140d8bdb0 100644 --- a/packages/pieces/core/data-mapper/README.md +++ b/packages/pieces/core/data-mapper/README.md @@ -1,7 +1,5 @@ # pieces-data-mapper -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-data-mapper` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-data-mapper` to build the library. diff --git a/packages/pieces/core/data-summarizer/README.md b/packages/pieces/core/data-summarizer/README.md index e3c70e9d8d9..085276665f2 100644 --- a/packages/pieces/core/data-summarizer/README.md +++ b/packages/pieces/core/data-summarizer/README.md @@ -1,7 +1,5 @@ # pieces-data-summarizer -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-data-summarizer` to build the library. +Run `turbo run build --filter=@activepieces/piece-data-summarizer` to build the library. diff --git a/packages/pieces/core/date-helper/README.md b/packages/pieces/core/date-helper/README.md index 742ee0a9081..66ec6769d8a 100644 --- a/packages/pieces/core/date-helper/README.md +++ b/packages/pieces/core/date-helper/README.md @@ -1,7 +1,5 @@ # pieces-date-helper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-date-helper` to build the library. +Run `turbo run build --filter=@activepieces/piece-date-helper` to build the library. diff --git a/packages/pieces/core/date-helper/package.json b/packages/pieces/core/date-helper/package.json index e1058598ffa..aba1c5b0d84 100644 --- a/packages/pieces/core/date-helper/package.json +++ b/packages/pieces/core/date-helper/package.json @@ -16,7 +16,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/core/delay/README.md b/packages/pieces/core/delay/README.md index 3bb85101522..49f00759cdc 100644 --- a/packages/pieces/core/delay/README.md +++ b/packages/pieces/core/delay/README.md @@ -1,7 +1,5 @@ # pieces-delay -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-delay` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-delay` to build the library. diff --git a/packages/pieces/core/delay/package.json b/packages/pieces/core/delay/package.json index 8dfbca4fdff..54b0303ab49 100644 --- a/packages/pieces/core/delay/package.json +++ b/packages/pieces/core/delay/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "dayjs": "1.11.9", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" } } diff --git a/packages/pieces/core/file-helper/README.md b/packages/pieces/core/file-helper/README.md index 32ce35ca654..6da114c0d87 100644 --- a/packages/pieces/core/file-helper/README.md +++ b/packages/pieces/core/file-helper/README.md @@ -1,7 +1,5 @@ # pieces-fileshelper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-fileshelper` to build the library. +Run `turbo run build --filter=@activepieces/piece-file-helper` to build the library. diff --git a/packages/pieces/core/forms/README.md b/packages/pieces/core/forms/README.md index 8f480b07314..102ee7fc041 100644 --- a/packages/pieces/core/forms/README.md +++ b/packages/pieces/core/forms/README.md @@ -1,7 +1,5 @@ # pieces-forms -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-forms` to build the library. +Run `turbo run build --filter=@activepieces/piece-forms` to build the library. diff --git a/packages/pieces/core/graphql/README.md b/packages/pieces/core/graphql/README.md index 0ea2ad677f9..2a8c3d9a0d2 100644 --- a/packages/pieces/core/graphql/README.md +++ b/packages/pieces/core/graphql/README.md @@ -1,7 +1,5 @@ # pieces-graphql -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-graphql` to build the library. +Run `turbo run build --filter=@activepieces/piece-graphql` to build the library. diff --git a/packages/pieces/core/http/README.md b/packages/pieces/core/http/README.md index efad839c7ca..e6a9a450438 100644 --- a/packages/pieces/core/http/README.md +++ b/packages/pieces/core/http/README.md @@ -1,7 +1,5 @@ # pieces-http -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-http` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-http` to build the library. diff --git a/packages/pieces/core/image-helper/README.md b/packages/pieces/core/image-helper/README.md index 04112d4458a..32085b2b021 100644 --- a/packages/pieces/core/image-helper/README.md +++ b/packages/pieces/core/image-helper/README.md @@ -1,7 +1,5 @@ # pieces-image-helper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-image-helper` to build the library. +Run `turbo run build --filter=@activepieces/piece-image-helper` to build the library. diff --git a/packages/pieces/core/manual-trigger/README.md b/packages/pieces/core/manual-trigger/README.md index 020316db920..8d495a3daba 100644 --- a/packages/pieces/core/manual-trigger/README.md +++ b/packages/pieces/core/manual-trigger/README.md @@ -1,7 +1,5 @@ # pieces-manual-trigger -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-manual-trigger` to build the library. +Run `turbo run build --filter=@activepieces/piece-manual-trigger` to build the library. diff --git a/packages/pieces/core/math-helper/README.md b/packages/pieces/core/math-helper/README.md index 7fc6955ff61..7a8da15742a 100644 --- a/packages/pieces/core/math-helper/README.md +++ b/packages/pieces/core/math-helper/README.md @@ -1,7 +1,5 @@ # pieces-math-helper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-math-helper` to build the library. +Run `turbo run build --filter=@activepieces/piece-math-helper` to build the library. diff --git a/packages/pieces/core/math-helper/package.json b/packages/pieces/core/math-helper/package.json index deaaf970397..32b442b24a6 100644 --- a/packages/pieces/core/math-helper/package.json +++ b/packages/pieces/core/math-helper/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-common": "workspace:*", "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/core/qrcode/README.md b/packages/pieces/core/qrcode/README.md index e6436480873..a19cebe62f6 100644 --- a/packages/pieces/core/qrcode/README.md +++ b/packages/pieces/core/qrcode/README.md @@ -1,7 +1,5 @@ # pieces-qrcode -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-qrcode` to build the library. +Run `turbo run build --filter=@activepieces/piece-qrcode` to build the library. diff --git a/packages/pieces/core/schedule/README.md b/packages/pieces/core/schedule/README.md index 0ec3b5cb503..148cb96635e 100644 --- a/packages/pieces/core/schedule/README.md +++ b/packages/pieces/core/schedule/README.md @@ -1,7 +1,5 @@ # pieces-schedule -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-schedule` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-schedule` to build the library. diff --git a/packages/pieces/core/sftp/README.md b/packages/pieces/core/sftp/README.md index 859cf8c37e1..8a648eef8a2 100644 --- a/packages/pieces/core/sftp/README.md +++ b/packages/pieces/core/sftp/README.md @@ -1,7 +1,5 @@ # pieces-sftp -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-sftp` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-sftp` to build the library. diff --git a/packages/pieces/core/sftp/package.json b/packages/pieces/core/sftp/package.json index 1fa19f41e88..2a47c0263b9 100644 --- a/packages/pieces/core/sftp/package.json +++ b/packages/pieces/core/sftp/package.json @@ -11,7 +11,7 @@ "dayjs": "1.11.9", "ssh2": "1.16.0", "ssh2-sftp-client": "9.1.0", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/core/smtp/README.md b/packages/pieces/core/smtp/README.md index 61f38c5c971..e62d502c340 100644 --- a/packages/pieces/core/smtp/README.md +++ b/packages/pieces/core/smtp/README.md @@ -1,7 +1,5 @@ # pieces-smtp -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-smtp` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-smtp` to build the library. diff --git a/packages/pieces/core/store/README.md b/packages/pieces/core/store/README.md index 6287f91cf16..8245d9e6bfa 100644 --- a/packages/pieces/core/store/README.md +++ b/packages/pieces/core/store/README.md @@ -1,7 +1,5 @@ # pieces-store -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-store` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-store` to build the library. diff --git a/packages/pieces/core/store/package.json b/packages/pieces/core/store/package.json index e1e31aef780..7b65a53ff71 100644 --- a/packages/pieces/core/store/package.json +++ b/packages/pieces/core/store/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "deep-equal": "2.2.2", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/core/subflows/README.md b/packages/pieces/core/subflows/README.md index 9b5f47c8d3a..fea84e91b1a 100644 --- a/packages/pieces/core/subflows/README.md +++ b/packages/pieces/core/subflows/README.md @@ -1,7 +1,5 @@ # pieces-subflows -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-subflows` to build the library. +Run `turbo run build --filter=@activepieces/piece-subflows` to build the library. diff --git a/packages/pieces/core/tables/README.md b/packages/pieces/core/tables/README.md index 094905c3e06..e2bb5a9415d 100644 --- a/packages/pieces/core/tables/README.md +++ b/packages/pieces/core/tables/README.md @@ -1,7 +1,5 @@ # pieces-tables -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tables` to build the library. +Run `turbo run build --filter=@activepieces/piece-tables` to build the library. diff --git a/packages/pieces/core/tables/package.json b/packages/pieces/core/tables/package.json index 75edb07b5b9..358c1fdd9c4 100644 --- a/packages/pieces/core/tables/package.json +++ b/packages/pieces/core/tables/package.json @@ -12,7 +12,7 @@ "@activepieces/pieces-framework": "workspace:*", "@activepieces/shared": "workspace:*", "qs": "6.14.2", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "devDependencies": { diff --git a/packages/pieces/core/tags/README.md b/packages/pieces/core/tags/README.md index b93889ee639..23d367b38ce 100644 --- a/packages/pieces/core/tags/README.md +++ b/packages/pieces/core/tags/README.md @@ -1,7 +1,5 @@ # pieces-tags -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-tags` to build the library. +Run `turbo run build --filter=@activepieces/piece-tags` to build the library. diff --git a/packages/pieces/core/text-helper/README.md b/packages/pieces/core/text-helper/README.md index 40795a1ebdf..10dafdd6fd4 100644 --- a/packages/pieces/core/text-helper/README.md +++ b/packages/pieces/core/text-helper/README.md @@ -1,7 +1,5 @@ # pieces-text-helper -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-text-helper` to build the library. +Run `turbo run build --filter=@activepieces/piece-text-helper` to build the library. diff --git a/packages/pieces/core/text-helper/package.json b/packages/pieces/core/text-helper/package.json index 31f66c86554..1d4675950a0 100644 --- a/packages/pieces/core/text-helper/package.json +++ b/packages/pieces/core/text-helper/package.json @@ -11,7 +11,7 @@ "slugify": "1.6.6", "string-strip-html": "8.5.0", "turndown": "7.2.0", - "zod": "4.1.13", + "zod": "4.3.6", "tslib": "2.6.2" }, "scripts": { diff --git a/packages/pieces/core/webhook/README.md b/packages/pieces/core/webhook/README.md index 8b3dda2c080..163d1876ced 100644 --- a/packages/pieces/core/webhook/README.md +++ b/packages/pieces/core/webhook/README.md @@ -1,7 +1,5 @@ # pieces-webhook -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-webhook` to build the library. +Run `turbo run build --filter=@activepieces/piece-webhook` to build the library. diff --git a/packages/pieces/core/xml/README.md b/packages/pieces/core/xml/README.md index e238886dcfc..0dae89a65ae 100644 --- a/packages/pieces/core/xml/README.md +++ b/packages/pieces/core/xml/README.md @@ -1,7 +1,5 @@ # pieces-xml -This library was generated with [Nx](https://nx.dev). +## Building -## Running lint - -Run `nx lint pieces-xml` to execute the lint via [ESLint](https://eslint.org/). +Run `turbo run build --filter=@activepieces/piece-xml` to build the library. diff --git a/packages/pieces/framework/README.md b/packages/pieces/framework/README.md index 1a12cec90bf..c93fd5983c3 100644 --- a/packages/pieces/framework/README.md +++ b/packages/pieces/framework/README.md @@ -1,11 +1,5 @@ # pieces-framework -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build pieces-framework` to build the library. - -## Running unit tests - -Run `nx test pieces-framework` to execute the unit tests via [Jest](https://jestjs.io). +Run `turbo run build --filter=@activepieces/pieces-framework` to build the library. diff --git a/packages/pieces/framework/package.json b/packages/pieces/framework/package.json index 02e4b01a83e..b1778cc3094 100644 --- a/packages/pieces/framework/package.json +++ b/packages/pieces/framework/package.json @@ -1,6 +1,6 @@ { "name": "@activepieces/pieces-framework", - "version": "0.25.6", + "version": "0.26.0", "type": "commonjs", "main": "./dist/src/index.js", "types": "./dist/src/index.d.ts", @@ -11,7 +11,7 @@ }, "dependencies": { "@activepieces/shared": "workspace:*", - "@sinclair/typebox": "0.34.11", + "zod": "4.3.6", "ai": "^6.0.0", "semver": "7.6.0", "tslib": "2.6.2" diff --git a/packages/pieces/framework/src/lib/action/action.ts b/packages/pieces/framework/src/lib/action/action.ts index c0bd2b02348..5f6b00ab2e3 100644 --- a/packages/pieces/framework/src/lib/action/action.ts +++ b/packages/pieces/framework/src/lib/action/action.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { ActionContext } from '../context'; import { ActionBase } from '../piece-metadata'; import { InputPropertyMap } from '../property'; @@ -7,17 +7,17 @@ import { ExtractPieceAuthPropertyTypeForMethods, PieceAuthProperty } from '../pr export type ActionRunner = (ctx: ActionContext) => Promise -export const ErrorHandlingOptionsParam = Type.Object({ - retryOnFailure: Type.Object({ - defaultValue: Type.Optional(Type.Boolean()), - hide: Type.Optional(Type.Boolean()), +export const ErrorHandlingOptionsParam = z.object({ + retryOnFailure: z.object({ + defaultValue: z.boolean().optional(), + hide: z.boolean().optional(), }), - continueOnFailure: Type.Object({ - defaultValue: Type.Optional(Type.Boolean()), - hide: Type.Optional(Type.Boolean()), + continueOnFailure: z.object({ + defaultValue: z.boolean().optional(), + hide: z.boolean().optional(), }), }) -export type ErrorHandlingOptionsParam = Static +export type ErrorHandlingOptionsParam = z.infer type CreateActionParams = { /** @@ -37,6 +37,7 @@ type CreateActionParams implements ActionBase { constructor( public readonly name: string, @@ -50,6 +51,7 @@ export class IAction( params: CreateActionParams, diff --git a/packages/pieces/framework/src/lib/piece-metadata.ts b/packages/pieces/framework/src/lib/piece-metadata.ts index cb941d2ba98..147df2d850f 100644 --- a/packages/pieces/framework/src/lib/piece-metadata.ts +++ b/packages/pieces/framework/src/lib/piece-metadata.ts @@ -2,27 +2,27 @@ import { PiecePropertyMap } from "./property"; import { WebhookRenewConfiguration } from "./trigger/trigger"; import { ErrorHandlingOptionsParam } from "./action/action"; import { PieceAuthProperty } from "./property/authentication"; -import { Static, Type } from "@sinclair/typebox"; -import { LocalesEnum, PackageType, PieceCategory, PieceType, ProjectId, TriggerStrategy, TriggerTestStrategy, WebhookHandshakeConfiguration } from "@activepieces/shared"; +import { z } from "zod"; +import { LocalesEnum, PackageType, PieceCategory, PieceType, TriggerStrategy, TriggerTestStrategy, WebhookHandshakeConfiguration } from "@activepieces/shared"; import { ContextVersion } from "./context/versioning"; -const I18nForPiece = Type.Optional(Type.Partial(Type.Record(Type.Enum(LocalesEnum), Type.Record(Type.String(), Type.String())))); -export type I18nForPiece = Static -export const PieceBase = Type.Object({ - id: Type.Optional(Type.String()), - name: Type.String(), - displayName: Type.String(), - logoUrl: Type.String(), - description: Type.String(), - authors: Type.Array(Type.String()), - platformId: Type.Optional(Type.String()), - directoryPath: Type.Optional(Type.String()), - auth: Type.Optional(Type.Union([PieceAuthProperty, Type.Array(PieceAuthProperty)])), - version: Type.String(), - categories: Type.Optional(Type.Array(Type.Enum(PieceCategory))), - minimumSupportedRelease: Type.Optional(Type.String()), - maximumSupportedRelease: Type.Optional(Type.String()), - i18n:I18nForPiece, +const I18nForPiece = z.record(z.string(), z.record(z.string(), z.string())).optional(); +export type I18nForPiece = Partial>> | undefined +export const PieceBase = z.object({ + id: z.string().optional(), + name: z.string(), + displayName: z.string(), + logoUrl: z.string(), + description: z.string(), + authors: z.array(z.string()), + platformId: z.string().optional(), + directoryPath: z.string().optional(), + auth: z.union([PieceAuthProperty, z.array(PieceAuthProperty)]).optional(), + version: z.string(), + categories: z.array(z.nativeEnum(PieceCategory)).optional(), + minimumSupportedRelease: z.string().optional(), + maximumSupportedRelease: z.string().optional(), + i18n: I18nForPiece, }) export type PieceBase = { @@ -45,13 +45,13 @@ export type PieceBase = { } -export const ActionBase = Type.Object({ - name: Type.String(), - displayName: Type.String(), - description: Type.String(), +export const ActionBase = z.object({ + name: z.string(), + displayName: z.string(), + description: z.string(), props: PiecePropertyMap, - requireAuth: Type.Boolean(), - errorHandlingOptions: Type.Optional(ErrorHandlingOptionsParam), + requireAuth: z.boolean(), + errorHandlingOptions: ErrorHandlingOptionsParam.optional(), }) export type ActionBase = { @@ -63,16 +63,18 @@ export type ActionBase = { errorHandlingOptions?: ErrorHandlingOptionsParam; } -export const TriggerBase = Type.Composite([ - Type.Omit(ActionBase, ["requireAuth"]), - Type.Object({ - type: Type.Enum(TriggerStrategy), - sampleData: Type.Unknown(), - handshakeConfiguration: Type.Optional(WebhookHandshakeConfiguration), - renewConfiguration: Type.Optional(WebhookRenewConfiguration), - testStrategy: Type.Enum(TriggerTestStrategy), - }) -]) +export const TriggerBase = z.object({ + name: z.string(), + displayName: z.string(), + description: z.string(), + props: PiecePropertyMap, + errorHandlingOptions: ErrorHandlingOptionsParam.optional(), + type: z.nativeEnum(TriggerStrategy), + sampleData: z.unknown(), + handshakeConfiguration: z.custom().optional(), + renewConfiguration: WebhookRenewConfiguration.optional(), + testStrategy: z.nativeEnum(TriggerTestStrategy), +}) export type TriggerBase = ActionBase & { type: TriggerStrategy; sampleData: unknown, @@ -81,13 +83,11 @@ export type TriggerBase = ActionBase & { testStrategy: TriggerTestStrategy; }; -export const PieceMetadata = Type.Composite([ - PieceBase, - Type.Object({ - actions: Type.Record(Type.String(), ActionBase), - triggers: Type.Record(Type.String(), TriggerBase), - }) -]) +export const PieceMetadata = z.object({ + ...PieceBase.shape, + actions: z.record(z.string(), ActionBase), + triggers: z.record(z.string(), TriggerBase), +}) export type PieceMetadata = Omit & { actions: Record; @@ -96,15 +96,13 @@ export type PieceMetadata = Omit & { contextInfo: { version: ContextVersion } | undefined; }; -export const PieceMetadataSummary = Type.Composite([ - Type.Omit(PieceMetadata, ["actions", "triggers"]), - Type.Object({ - actions: Type.Number(), - triggers: Type.Number(), - suggestedActions: Type.Optional(Type.Array(TriggerBase)), - suggestedTriggers: Type.Optional(Type.Array(ActionBase)), - }) -]) +export const PieceMetadataSummary = z.object({ + ...PieceBase.shape, + actions: z.number(), + triggers: z.number(), + suggestedActions: z.array(TriggerBase).optional(), + suggestedTriggers: z.array(ActionBase).optional(), +}) export type PieceMetadataSummary = Omit & { actions: number; triggers: number; @@ -113,30 +111,30 @@ export type PieceMetadataSummary = Omit & } -const PiecePackageMetadata = Type.Object({ - projectUsage: Type.Number(), - tags: Type.Optional(Type.Array(Type.String())), - pieceType: Type.Enum(PieceType), - packageType: Type.Enum(PackageType), - platformId: Type.Optional(Type.String()), - archiveId: Type.Optional(Type.String()), +const PiecePackageMetadata = z.object({ + projectUsage: z.number(), + tags: z.array(z.string()).optional(), + pieceType: z.nativeEnum(PieceType), + packageType: z.nativeEnum(PackageType), + platformId: z.string().optional(), + archiveId: z.string().optional(), }) -type PiecePackageMetadata = Static +type PiecePackageMetadata = z.infer -export const PieceMetadataModel = Type.Composite([ - PieceMetadata, - PiecePackageMetadata -]) +export const PieceMetadataModel = z.object({ + ...PieceMetadata.shape, + ...PiecePackageMetadata.shape, +}) export type PieceMetadataModel = PieceMetadata & PiecePackageMetadata -export const PieceMetadataModelSummary = Type.Composite([ - PieceMetadataSummary, - PiecePackageMetadata -]) +export const PieceMetadataModelSummary = z.object({ + ...PieceMetadataSummary.shape, + ...PiecePackageMetadata.shape, +}) export type PieceMetadataModelSummary = PieceMetadataSummary & PiecePackageMetadata; -export const PiecePackageInformation = Type.Object({ - name: Type.String(), - version: Type.String(), +export const PiecePackageInformation = z.object({ + name: z.string(), + version: z.string(), }) -export type PiecePackageInformation = Static \ No newline at end of file +export type PiecePackageInformation = z.infer diff --git a/packages/pieces/framework/src/lib/property/authentication/basic-auth-prop.ts b/packages/pieces/framework/src/lib/property/authentication/basic-auth-prop.ts index 9ff60676974..ccea5e9e1f2 100644 --- a/packages/pieces/framework/src/lib/property/authentication/basic-auth-prop.ts +++ b/packages/pieces/framework/src/lib/property/authentication/basic-auth-prop.ts @@ -1,29 +1,27 @@ -import { Static, Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { TPropertyValue } from '../input/common'; import { PropertyType } from '../input/property-type'; import { BasePieceAuthSchema } from './common'; -export const BasicAuthPropertyValue = Type.Object({ - username: Type.String(), - password: Type.String(), +export const BasicAuthPropertyValue = z.object({ + username: z.string(), + password: z.string(), }) -export type BasicAuthPropertyValue = Static +export type BasicAuthPropertyValue = z.infer -export const BasicAuthProperty = Type.Composite([ - BasePieceAuthSchema, - Type.Object({ - username: Type.Object({ - displayName: Type.String(), - description: Type.Optional(Type.String()) - }), - password: Type.Object({ - displayName: Type.String(), - description: Type.Optional(Type.String()) - }) +export const BasicAuthProperty = z.object({ + ...BasePieceAuthSchema.shape, + username: z.object({ + displayName: z.string(), + description: z.string().optional() }), - TPropertyValue(BasicAuthPropertyValue, PropertyType.BASIC_AUTH) -]) + password: z.object({ + displayName: z.string(), + description: z.string().optional() + }), + ...TPropertyValue(BasicAuthPropertyValue, PropertyType.BASIC_AUTH).shape, +}) export type BasicAuthProperty = BasePieceAuthSchema & { @@ -41,4 +39,3 @@ export type BasicAuthProperty = PropertyType.BASIC_AUTH, true >; - diff --git a/packages/pieces/framework/src/lib/property/authentication/common.ts b/packages/pieces/framework/src/lib/property/authentication/common.ts index 445d1b04f05..b8b05c2f43a 100644 --- a/packages/pieces/framework/src/lib/property/authentication/common.ts +++ b/packages/pieces/framework/src/lib/property/authentication/common.ts @@ -1,9 +1,9 @@ -import { Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { ServerContext } from '../../context'; -export const BasePieceAuthSchema = Type.Object({ - displayName: Type.String(), - description: Type.Optional(Type.String()) +export const BasePieceAuthSchema = z.object({ + displayName: z.string(), + description: z.string().optional() }); export type BasePieceAuthSchema = { diff --git a/packages/pieces/framework/src/lib/property/authentication/custom-auth-prop.ts b/packages/pieces/framework/src/lib/property/authentication/custom-auth-prop.ts index 04f3be422cf..1c792712616 100644 --- a/packages/pieces/framework/src/lib/property/authentication/custom-auth-prop.ts +++ b/packages/pieces/framework/src/lib/property/authentication/custom-auth-prop.ts @@ -1,4 +1,4 @@ -import { Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { TPropertyValue } from '../input/common'; import { PropertyType } from '../input/property-type'; import { LongTextProperty, ShortTextProperty } from '../input/text-property'; @@ -10,7 +10,7 @@ import { SecretTextProperty } from './secret-text-property'; import { BasePieceAuthSchema } from './common'; import { MarkDownProperty } from '../input/markdown-property'; -const CustomAuthProps = Type.Record(Type.String(), Type.Union([ +const CustomAuthProps = z.record(z.string(), z.union([ ShortTextProperty, LongTextProperty, NumberProperty, @@ -30,13 +30,11 @@ export type CustomAuthProps = Record< | StaticMultiSelectDropdownProperty >; -export const CustomAuthProperty = Type.Composite([ - BasePieceAuthSchema, - Type.Object({ - props: CustomAuthProps, - }), - TPropertyValue(Type.Unknown(), PropertyType.CUSTOM_AUTH) -]) +export const CustomAuthProperty = z.object({ + ...BasePieceAuthSchema.shape, + props: CustomAuthProps, + ...TPropertyValue(z.unknown(), PropertyType.CUSTOM_AUTH).shape, +}) export type CustomAuthProperty< T extends CustomAuthProps @@ -48,4 +46,3 @@ export type CustomAuthProperty< PropertyType.CUSTOM_AUTH, true >; - diff --git a/packages/pieces/framework/src/lib/property/authentication/index.ts b/packages/pieces/framework/src/lib/property/authentication/index.ts index 90d03e14181..b74635f09ac 100644 --- a/packages/pieces/framework/src/lib/property/authentication/index.ts +++ b/packages/pieces/framework/src/lib/property/authentication/index.ts @@ -1,5 +1,5 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasicAuthProperty } from "./basic-auth-prop"; import { CustomAuthProperty, CustomAuthProps } from "./custom-auth-prop"; import { SecretTextProperty } from "./secret-text-property"; @@ -7,13 +7,14 @@ import { PropertyType } from "../input/property-type"; import { OAuth2Property, OAuth2Props } from "./oauth2-prop"; import { AppConnectionType, isNil } from "@activepieces/shared"; -export const PieceAuthProperty = Type.Union([ +export const PieceAuthProperty = z.union([ BasicAuthProperty, CustomAuthProperty, OAuth2Property, SecretTextProperty, ]) +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type PieceAuthProperty = BasicAuthProperty | CustomAuthProperty | OAuth2Property | SecretTextProperty; type AuthProperties = Omit, 'displayName'> & { diff --git a/packages/pieces/framework/src/lib/property/authentication/oauth2-prop.ts b/packages/pieces/framework/src/lib/property/authentication/oauth2-prop.ts index 6606af5571c..dab217609ad 100644 --- a/packages/pieces/framework/src/lib/property/authentication/oauth2-prop.ts +++ b/packages/pieces/framework/src/lib/property/authentication/oauth2-prop.ts @@ -1,5 +1,5 @@ import { BOTH_CLIENT_CREDENTIALS_AND_AUTHORIZATION_CODE, OAuth2GrantType } from '@activepieces/shared'; -import { Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { ShortTextProperty } from '../input/text-property'; import { SecretTextProperty } from './secret-text-property'; import { BasePieceAuthSchema } from './common'; @@ -13,19 +13,20 @@ export enum OAuth2AuthorizationMethod { BODY = 'BODY', } -const OAuthProp = Type.Union([ +const OAuthProp = z.union([ ShortTextProperty, SecretTextProperty, StaticDropdownProperty, ]) +// eslint-disable-next-line @typescript-eslint/no-explicit-any type OAuthProp = | ShortTextProperty | SecretTextProperty | StaticDropdownProperty; -export const OAuth2Props = Type.Record(Type.String(), OAuthProp); +export const OAuth2Props = z.record(z.string(), OAuthProp); export type OAuth2Props = { [key: string]: OAuthProp; @@ -34,17 +35,17 @@ export type OAuth2Props = { type OAuthPropsValue = StaticPropsValue; -const OAuth2ExtraProps = Type.Object({ - props: Type.Optional(Type.Record(Type.String(), OAuthProp)), - authUrl: Type.String(), - tokenUrl: Type.String(), - scope: Type.Array(Type.String()), - prompt: Type.Optional(Type.Union([Type.Literal('none'), Type.Literal('consent'), Type.Literal('login'), Type.Literal('omit')])), - pkce: Type.Optional(Type.Boolean()), - pkceMethod: Type.Optional(Type.Union([Type.Literal('plain'), Type.Literal('S256')])), - authorizationMethod: Type.Optional(Type.Enum(OAuth2AuthorizationMethod)), - grantType: Type.Optional(Type.Union([Type.Enum(OAuth2GrantType), Type.Literal(BOTH_CLIENT_CREDENTIALS_AND_AUTHORIZATION_CODE)])), - extra: Type.Optional(Type.Record(Type.String(), Type.String())), +const OAuth2ExtraProps = z.object({ + props: z.record(z.string(), OAuthProp).optional(), + authUrl: z.string(), + tokenUrl: z.string(), + scope: z.array(z.string()), + prompt: z.union([z.literal('none'), z.literal('consent'), z.literal('login'), z.literal('omit')]).optional(), + pkce: z.boolean().optional(), + pkceMethod: z.union([z.literal('plain'), z.literal('S256')]).optional(), + authorizationMethod: z.nativeEnum(OAuth2AuthorizationMethod).optional(), + grantType: z.union([z.nativeEnum(OAuth2GrantType), z.literal(BOTH_CLIENT_CREDENTIALS_AND_AUTHORIZATION_CODE)]).optional(), + extra: z.record(z.string(), z.string()).optional(), }) type OAuth2ExtraProps = { @@ -52,7 +53,7 @@ type OAuth2ExtraProps = { authUrl: string tokenUrl: string scope: string[] - prompt?: 'none' | 'consent' | 'login' | 'omit' + prompt?: 'none' | 'consent' | 'login' | 'omit' pkce?: boolean pkceMethod?: 'plain' | 'S256' authorizationMethod?: OAuth2AuthorizationMethod @@ -60,23 +61,25 @@ type OAuth2ExtraProps = { extra?: Record, } -export const OAuth2PropertyValue = Type.Object({ - access_token: Type.String(), - props: Type.Optional(OAuth2Props), - data: Type.Record(Type.String(), Type.Any()) +export const OAuth2PropertyValue = z.object({ + access_token: z.string(), + props: OAuth2Props.optional(), + data: z.record(z.string(), z.any()) }) +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type OAuth2PropertyValue = { access_token: string; props?: OAuthPropsValue; + // eslint-disable-next-line @typescript-eslint/no-explicit-any data: Record; }; -export const OAuth2Property = Type.Composite([ - BasePieceAuthSchema, - OAuth2ExtraProps, - TPropertyValue(OAuth2PropertyValue, PropertyType.OAUTH2) -]) +export const OAuth2Property = z.object({ + ...BasePieceAuthSchema.shape, + ...OAuth2ExtraProps.shape, + ...TPropertyValue(OAuth2PropertyValue, PropertyType.OAUTH2).shape, +}) export type OAuth2Property< T extends OAuth2Props @@ -87,4 +90,3 @@ export type OAuth2Property< PropertyType.OAUTH2, true >; - diff --git a/packages/pieces/framework/src/lib/property/authentication/secret-text-property.ts b/packages/pieces/framework/src/lib/property/authentication/secret-text-property.ts index 8b80997d651..8f16c5e393c 100644 --- a/packages/pieces/framework/src/lib/property/authentication/secret-text-property.ts +++ b/packages/pieces/framework/src/lib/property/authentication/secret-text-property.ts @@ -1,14 +1,14 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePieceAuthSchema } from "./common"; import { TPropertyValue } from "../input/common"; import { PropertyType } from "../input/property-type"; -export const SecretTextProperty = Type.Composite([ - BasePieceAuthSchema, - TPropertyValue(Type.Object({ - auth: Type.String() - }), PropertyType.SECRET_TEXT) -]) +export const SecretTextProperty = z.object({ + ...BasePieceAuthSchema.shape, + ...TPropertyValue(z.object({ + auth: z.string() + }), PropertyType.SECRET_TEXT).shape, +}) export type SecretTextProperty = @@ -17,4 +17,4 @@ export type SecretTextProperty = string, PropertyType.SECRET_TEXT, R - >; \ No newline at end of file + >; diff --git a/packages/pieces/framework/src/lib/property/index.ts b/packages/pieces/framework/src/lib/property/index.ts index c16d4ab3acb..ea38719be31 100644 --- a/packages/pieces/framework/src/lib/property/index.ts +++ b/packages/pieces/framework/src/lib/property/index.ts @@ -1,9 +1,8 @@ import { InputProperty } from './input'; import { PieceAuthProperty } from './authentication'; -import { TSchema, Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { PropertyType } from './input/property-type'; import { DropdownState } from './input/dropdown/common'; -import { AUTHENTICATION_PROPERTY_NAME, isEmpty, isNil } from '@activepieces/shared'; // EXPORTED export { ApFile } from './input/file-property'; @@ -38,16 +37,16 @@ export { SecretTextProperty } from './authentication/secret-text-property' export { CustomAuthProperty } from './authentication/custom-auth-prop'; export { JsonProperty } from './input/json-property' -export const PieceProperty = Type.Union([InputProperty, PieceAuthProperty]) +export const PieceProperty = z.union([InputProperty, PieceAuthProperty]) export type PieceProperty = InputProperty | PieceAuthProperty; export {CustomProperty} from './input/custom-property' export type {CustomPropertyCodeFunctionParams} from './input/custom-property' -export const PiecePropertyMap = Type.Record(Type.String(), PieceProperty) +export const PiecePropertyMap = z.record(z.string(), PieceProperty) export interface PiecePropertyMap { [name: string]: PieceProperty; } export type { InputProperty } from './input'; -export const InputPropertyMap = Type.Record(Type.String(), InputProperty) +export const InputPropertyMap = z.record(z.string(), InputProperty) export interface InputPropertyMap { [name: string]: InputProperty; } @@ -65,8 +64,8 @@ export type StaticPropsValue = { }; - + export type ExecutePropsResult = { type: T options: T extends PropertyType.DROPDOWN ? DropdownState : T extends PropertyType.MULTI_SELECT_DROPDOWN ? DropdownState : InputPropertyMap -} \ No newline at end of file +} diff --git a/packages/pieces/framework/src/lib/property/input/array-property.ts b/packages/pieces/framework/src/lib/property/input/array-property.ts index cb7473c8d14..631e20c12e4 100644 --- a/packages/pieces/framework/src/lib/property/input/array-property.ts +++ b/packages/pieces/framework/src/lib/property/input/array-property.ts @@ -1,4 +1,4 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; import { LongTextProperty, ShortTextProperty } from "./text-property"; @@ -11,7 +11,7 @@ import { JsonProperty } from './json-property'; import { ColorProperty } from "./color-property"; import { DateTimeProperty } from './date-time-property'; -export const ArraySubProps = Type.Record(Type.String(), Type.Union([ +export const ArraySubProps = z.record(z.string(), z.union([ ShortTextProperty, LongTextProperty, StaticDropdownProperty, @@ -23,21 +23,19 @@ export const ArraySubProps = Type.Record(Type.String(), Type.Union([ DateTimeProperty, ])) -export const ArrayProperty = Type.Composite([ - BasePropertySchema, - Type.Object({ - properties: ArraySubProps - }), - TPropertyValue(Type.Array(Type.Unknown()), PropertyType.ARRAY) -]) +export const ArrayProperty = z.object({ + ...BasePropertySchema.shape, + properties: ArraySubProps, + ...TPropertyValue(z.array(z.unknown()), PropertyType.ARRAY).shape, +}) export type ArraySubProps = Record< string, | ShortTextProperty | LongTextProperty - | StaticDropdownProperty - | MultiSelectDropdownProperty - | StaticMultiSelectDropdownProperty + | StaticDropdownProperty + | MultiSelectDropdownProperty + | StaticMultiSelectDropdownProperty | CheckboxProperty | NumberProperty | FileProperty diff --git a/packages/pieces/framework/src/lib/property/input/checkbox-property.ts b/packages/pieces/framework/src/lib/property/input/checkbox-property.ts index 01605576b8b..c734adb0256 100644 --- a/packages/pieces/framework/src/lib/property/input/checkbox-property.ts +++ b/packages/pieces/framework/src/lib/property/input/checkbox-property.ts @@ -1,11 +1,11 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -export const CheckboxProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.Boolean(), PropertyType.CHECKBOX) -]) +export const CheckboxProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.boolean(), PropertyType.CHECKBOX).shape, +}) export type CheckboxProperty = BasePropertySchema & TPropertyValue; diff --git a/packages/pieces/framework/src/lib/property/input/color-property.ts b/packages/pieces/framework/src/lib/property/input/color-property.ts index 8b1403a8793..39152565f35 100644 --- a/packages/pieces/framework/src/lib/property/input/color-property.ts +++ b/packages/pieces/framework/src/lib/property/input/color-property.ts @@ -1,12 +1,12 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -export const ColorProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.String(), PropertyType.COLOR) -]) +export const ColorProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.string(), PropertyType.COLOR).shape, +}) export type ColorProperty = BasePropertySchema & - TPropertyValue; \ No newline at end of file + TPropertyValue; diff --git a/packages/pieces/framework/src/lib/property/input/common.ts b/packages/pieces/framework/src/lib/property/input/common.ts index 3896a57ec30..61d42873757 100644 --- a/packages/pieces/framework/src/lib/property/input/common.ts +++ b/packages/pieces/framework/src/lib/property/input/common.ts @@ -1,20 +1,24 @@ -import { Static, TObject, TSchema, Type } from "@sinclair/typebox"; +import { z } from "zod"; import { ApFile } from "./file-property"; import { PropertyType } from "./property-type"; -export const BasePropertySchema = Type.Object({ - displayName: Type.String(), - description: Type.Optional(Type.String()) +export const BasePropertySchema = z.object({ + displayName: z.string(), + description: z.string().optional() }) -export type BasePropertySchema = Static +export type BasePropertySchema = z.infer -export const TPropertyValue = (T: T, propertyType: U): TObject => Type.Object({ - type: Type.Literal(propertyType), - required: Type.Boolean(), - defaultValue: Type.Optional(Type.Any()), +export const TPropertyValue = (_T: T, propertyType: U): z.ZodObject<{ + type: z.ZodLiteral, + required: z.ZodBoolean, + defaultValue: z.ZodOptional, +}> => z.object({ + type: z.literal(propertyType), + required: z.boolean(), + defaultValue: z.any().optional(), }) export type TPropertyValue< @@ -54,4 +58,3 @@ export type TPropertyValue< ? string : unknown; }; - diff --git a/packages/pieces/framework/src/lib/property/input/custom-property.ts b/packages/pieces/framework/src/lib/property/input/custom-property.ts index c204955484d..1fa5539e2dc 100644 --- a/packages/pieces/framework/src/lib/property/input/custom-property.ts +++ b/packages/pieces/framework/src/lib/property/input/custom-property.ts @@ -1,27 +1,25 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -// Code should be a valid javascript function that takes a single argument which is an object +// Code should be a valid javascript function that takes a single argument which is an object /* (ctx: {containerId:string, value: unknown, onChange: (value: unknown) => void, isEmbeded: boolean, projectId:string}) => void */ -export const CustomProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.Unknown(), PropertyType.CUSTOM), - Type.Object({ - code: Type.String(), - }) -]) +export const CustomProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.unknown(), PropertyType.CUSTOM).shape, + code: z.string(), +}) export type CustomProperty = BasePropertySchema & TPropertyValue & { code:string; } -export type CustomPropertyCodeFunctionParams = - { +export type CustomPropertyCodeFunctionParams = + { containerId:string, value: unknown, onChange: (value: unknown) => void, diff --git a/packages/pieces/framework/src/lib/property/input/date-time-property.ts b/packages/pieces/framework/src/lib/property/input/date-time-property.ts index 9a01447f898..0d463cb757e 100644 --- a/packages/pieces/framework/src/lib/property/input/date-time-property.ts +++ b/packages/pieces/framework/src/lib/property/input/date-time-property.ts @@ -1,11 +1,11 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -export const DateTimeProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.String(), PropertyType.DATE_TIME) -]) +export const DateTimeProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.string(), PropertyType.DATE_TIME).shape, +}) export type DateTimeProperty = BasePropertySchema & - TPropertyValue; \ No newline at end of file + TPropertyValue; diff --git a/packages/pieces/framework/src/lib/property/input/dropdown/common.ts b/packages/pieces/framework/src/lib/property/input/dropdown/common.ts index 62119b0e116..2664c423925 100644 --- a/packages/pieces/framework/src/lib/property/input/dropdown/common.ts +++ b/packages/pieces/framework/src/lib/property/input/dropdown/common.ts @@ -1,9 +1,9 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; -export const DropdownOption = Type.Object({ - label: Type.String(), - value: Type.Unknown(), +export const DropdownOption = z.object({ + label: z.string(), + value: z.unknown(), }) export type DropdownOption = { @@ -11,10 +11,10 @@ export type DropdownOption = { value: T; } -export const DropdownState = Type.Object({ - disabled: Type.Optional(Type.Boolean()), - placeholder: Type.Optional(Type.String()), - options: Type.Array(DropdownOption) +export const DropdownState = z.object({ + disabled: z.boolean().optional(), + placeholder: z.string().optional(), + options: z.array(DropdownOption) }) export type DropdownState = { @@ -23,4 +23,3 @@ export type DropdownState = { options: DropdownOption[]; } - diff --git a/packages/pieces/framework/src/lib/property/input/dropdown/dropdown-prop.ts b/packages/pieces/framework/src/lib/property/input/dropdown/dropdown-prop.ts index 602895dee87..34e072e3784 100644 --- a/packages/pieces/framework/src/lib/property/input/dropdown/dropdown-prop.ts +++ b/packages/pieces/framework/src/lib/property/input/dropdown/dropdown-prop.ts @@ -1,7 +1,7 @@ import { BasePropertySchema, TPropertyValue } from "../common"; import { DropdownState } from "./common"; import { AppConnectionValueForAuthProperty, PropertyContext } from "../../../context"; -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { PropertyType } from "../property-type"; import { PieceAuthProperty } from "../../authentication"; @@ -12,13 +12,11 @@ type DynamicDropdownOptions Promise>; -export const DropdownProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.Unknown(), PropertyType.DROPDOWN), - Type.Object({ - refreshers: Type.Array(Type.String()), - }), -]); +export const DropdownProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.unknown(), PropertyType.DROPDOWN).shape, + refreshers: z.array(z.string()), +}); export type DropdownProperty = BasePropertySchema & { /** @@ -31,13 +29,11 @@ export type DropdownProperty; -export const MultiSelectDropdownProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.Array(Type.Unknown()), PropertyType.MULTI_SELECT_DROPDOWN), - Type.Object({ - refreshers: Type.Array(Type.String()), - }), -]); +export const MultiSelectDropdownProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.array(z.unknown()), PropertyType.MULTI_SELECT_DROPDOWN).shape, + refreshers: z.array(z.string()), +}); export type MultiSelectDropdownProperty< T, diff --git a/packages/pieces/framework/src/lib/property/input/dropdown/static-dropdown.ts b/packages/pieces/framework/src/lib/property/input/dropdown/static-dropdown.ts index b02b79e35df..927a98f4cfe 100644 --- a/packages/pieces/framework/src/lib/property/input/dropdown/static-dropdown.ts +++ b/packages/pieces/framework/src/lib/property/input/dropdown/static-dropdown.ts @@ -1,15 +1,13 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "../common"; import { DropdownState } from "./common"; import { PropertyType } from "../property-type"; -export const StaticDropdownProperty = Type.Composite([ - BasePropertySchema, - Type.Object({ - options: DropdownState - }), - TPropertyValue(Type.Unknown(), PropertyType.STATIC_DROPDOWN) -]) +export const StaticDropdownProperty = z.object({ + ...BasePropertySchema.shape, + options: DropdownState, + ...TPropertyValue(z.unknown(), PropertyType.STATIC_DROPDOWN).shape, +}) export type StaticDropdownProperty< T, @@ -19,13 +17,11 @@ export type StaticDropdownProperty< } & TPropertyValue; -export const StaticMultiSelectDropdownProperty = Type.Composite([ - BasePropertySchema, - Type.Object({ - options: DropdownState - }), - TPropertyValue(Type.Array(Type.Unknown()), PropertyType.STATIC_MULTI_SELECT_DROPDOWN) -]) +export const StaticMultiSelectDropdownProperty = z.object({ + ...BasePropertySchema.shape, + options: DropdownState, + ...TPropertyValue(z.array(z.unknown()), PropertyType.STATIC_MULTI_SELECT_DROPDOWN).shape, +}) export type StaticMultiSelectDropdownProperty< T, @@ -36,4 +32,4 @@ export type StaticMultiSelectDropdownProperty< T[], PropertyType.STATIC_MULTI_SELECT_DROPDOWN, R ->; \ No newline at end of file +>; diff --git a/packages/pieces/framework/src/lib/property/input/dynamic-prop.ts b/packages/pieces/framework/src/lib/property/input/dynamic-prop.ts index 07b9568e72e..fbb2422be29 100644 --- a/packages/pieces/framework/src/lib/property/input/dynamic-prop.ts +++ b/packages/pieces/framework/src/lib/property/input/dynamic-prop.ts @@ -1,4 +1,4 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { StaticDropdownProperty, StaticMultiSelectDropdownProperty } from "./dropdown/static-dropdown"; import { ShortTextProperty } from "./text-property"; import { BasePropertySchema, TPropertyValue } from "./common"; @@ -8,7 +8,7 @@ import { JsonProperty } from "./json-property"; import { ArrayProperty } from "./array-property"; import { ExtractPieceAuthPropertyTypeForMethods, InputPropertyMap, PieceAuthProperty } from ".."; -export const DynamicProp = Type.Union([ +export const DynamicProp = z.union([ ShortTextProperty, StaticDropdownProperty, JsonProperty, @@ -16,6 +16,7 @@ export const DynamicProp = Type.Union([ StaticMultiSelectDropdownProperty, ]) +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type DynamicProp = | ShortTextProperty | StaticDropdownProperty @@ -23,17 +24,15 @@ export type DynamicProp = | ArrayProperty | StaticMultiSelectDropdownProperty; -export const DynamicPropsValue = Type.Record(Type.String(), DynamicProp); +export const DynamicPropsValue = z.record(z.string(), DynamicProp); export type DynamicPropsValue = Record; -export const DynamicProperties = Type.Composite([ - Type.Object({ - refreshers: Type.Array(Type.String()), - }), - BasePropertySchema, - TPropertyValue(Type.Unknown(), PropertyType.DYNAMIC), -]) +export const DynamicProperties = z.object({ + refreshers: z.array(z.string()), + ...BasePropertySchema.shape, + ...TPropertyValue(z.unknown(), PropertyType.DYNAMIC).shape, +}) export type DynamicProperties = BasePropertySchema & { diff --git a/packages/pieces/framework/src/lib/property/input/file-property.ts b/packages/pieces/framework/src/lib/property/input/file-property.ts index de4341c8ab2..10353102e5c 100644 --- a/packages/pieces/framework/src/lib/property/input/file-property.ts +++ b/packages/pieces/framework/src/lib/property/input/file-property.ts @@ -1,4 +1,4 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; @@ -14,10 +14,10 @@ export class ApFile { } } -export const FileProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.Unknown(), PropertyType.FILE) -]) - +export const FileProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.unknown(), PropertyType.FILE).shape, +}) + export type FileProperty = BasePropertySchema & TPropertyValue; diff --git a/packages/pieces/framework/src/lib/property/input/index.ts b/packages/pieces/framework/src/lib/property/input/index.ts index 851e89bfc54..bba3968e89a 100644 --- a/packages/pieces/framework/src/lib/property/input/index.ts +++ b/packages/pieces/framework/src/lib/property/input/index.ts @@ -1,4 +1,4 @@ -import { Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { ArrayProperty } from './array-property'; import { CheckboxProperty } from './checkbox-property'; import { DateTimeProperty } from './date-time-property'; @@ -23,7 +23,7 @@ import { CustomProperty, CustomPropertyCodeFunctionParams } from './custom-prope import { ColorProperty } from './color-property'; import { PieceAuthProperty } from '../authentication'; -export const InputProperty = Type.Union([ +export const InputProperty = z.union([ ShortTextProperty, LongTextProperty, MarkDownProperty, @@ -42,6 +42,7 @@ export const InputProperty = Type.Union([ ColorProperty, ]); +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type InputProperty = | ShortTextProperty | LongTextProperty @@ -53,8 +54,8 @@ export type InputProperty = | ArrayProperty | ObjectProperty | JsonProperty - | MultiSelectDropdownProperty - | StaticMultiSelectDropdownProperty + | MultiSelectDropdownProperty + | StaticMultiSelectDropdownProperty | DynamicProperties | DateTimeProperty | FileProperty @@ -238,11 +239,11 @@ export const Property = { }, Custom( request: Omit>, 'code'> & { - /** + /** * This is designed to be self-contained and operates independently of any * external libraries or imported dependencies. All necessary logic and * functionality are implemented within this function itself. - * + * * You can return a cleanup function that will be called when the component is unmounted in the frontend. * */ code: ((ctx: CustomPropertyCodeFunctionParams) => (()=>void) | void) @@ -268,4 +269,3 @@ export const Property = { : ColorProperty; }, }; - diff --git a/packages/pieces/framework/src/lib/property/input/json-property.ts b/packages/pieces/framework/src/lib/property/input/json-property.ts index 36fe307df35..b5a43e6b9c7 100644 --- a/packages/pieces/framework/src/lib/property/input/json-property.ts +++ b/packages/pieces/framework/src/lib/property/input/json-property.ts @@ -1,14 +1,14 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -export const JsonProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue( - Type.Union([Type.Record(Type.String(), Type.Unknown())]), +export const JsonProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue( + z.union([z.record(z.string(), z.unknown())]), PropertyType.JSON, - ), -]); + ).shape, +}); export type JsonProperty = BasePropertySchema & TPropertyValue< Record, diff --git a/packages/pieces/framework/src/lib/property/input/markdown-property.ts b/packages/pieces/framework/src/lib/property/input/markdown-property.ts index f1de314c7b8..34a4c5ab427 100644 --- a/packages/pieces/framework/src/lib/property/input/markdown-property.ts +++ b/packages/pieces/framework/src/lib/property/input/markdown-property.ts @@ -1,12 +1,12 @@ -import { Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { BasePropertySchema, TPropertyValue } from './common'; import { PropertyType } from './property-type'; import { MarkdownVariant } from '@activepieces/shared'; -export const MarkDownProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.Void(), PropertyType.MARKDOWN), -]); +export const MarkDownProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.void(), PropertyType.MARKDOWN).shape, +}); export type MarkDownProperty = BasePropertySchema & TPropertyValue< diff --git a/packages/pieces/framework/src/lib/property/input/number-property.ts b/packages/pieces/framework/src/lib/property/input/number-property.ts index edd6c6b640e..b5f386d399e 100644 --- a/packages/pieces/framework/src/lib/property/input/number-property.ts +++ b/packages/pieces/framework/src/lib/property/input/number-property.ts @@ -1,11 +1,11 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -export const NumberProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.Number(), PropertyType.NUMBER) -]) +export const NumberProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.number(), PropertyType.NUMBER).shape, +}) export type NumberProperty = BasePropertySchema & - TPropertyValue; \ No newline at end of file + TPropertyValue; diff --git a/packages/pieces/framework/src/lib/property/input/object-property.ts b/packages/pieces/framework/src/lib/property/input/object-property.ts index 5310065a7af..0a7499a9c47 100644 --- a/packages/pieces/framework/src/lib/property/input/object-property.ts +++ b/packages/pieces/framework/src/lib/property/input/object-property.ts @@ -1,18 +1,18 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -export const ObjectProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue( - Type.Record(Type.String(), Type.Unknown()), +export const ObjectProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue( + z.record(z.string(), z.unknown()), PropertyType.OBJECT, - ) -]) + ).shape, +}) export type ObjectProperty = BasePropertySchema & TPropertyValue< Record, PropertyType.OBJECT, R - >; \ No newline at end of file + >; diff --git a/packages/pieces/framework/src/lib/property/input/text-property.ts b/packages/pieces/framework/src/lib/property/input/text-property.ts index 256e1b34138..bae42d2f166 100644 --- a/packages/pieces/framework/src/lib/property/input/text-property.ts +++ b/packages/pieces/framework/src/lib/property/input/text-property.ts @@ -1,22 +1,22 @@ -import { Type } from "@sinclair/typebox"; +import { z } from "zod"; import { BasePropertySchema, TPropertyValue } from "./common"; import { PropertyType } from "./property-type"; -export const ShortTextProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.String(), PropertyType.SHORT_TEXT) -]) +export const ShortTextProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.string(), PropertyType.SHORT_TEXT).shape, +}) export type ShortTextProperty = BasePropertySchema & TPropertyValue; -export const LongTextProperty = Type.Composite([ - BasePropertySchema, - TPropertyValue(Type.String(), PropertyType.LONG_TEXT) -]) +export const LongTextProperty = z.object({ + ...BasePropertySchema.shape, + ...TPropertyValue(z.string(), PropertyType.LONG_TEXT).shape, +}) export type LongTextProperty = BasePropertySchema & TPropertyValue; diff --git a/packages/pieces/framework/src/lib/property/util.ts b/packages/pieces/framework/src/lib/property/util.ts index d9dbb3a192b..8ed641c1c3b 100644 --- a/packages/pieces/framework/src/lib/property/util.ts +++ b/packages/pieces/framework/src/lib/property/util.ts @@ -1,50 +1,44 @@ import { PiecePropertyMap } from "."; import { PieceAuthProperty } from "./authentication"; import { PropertyType } from "./input/property-type"; -import { Type, TSchema } from "@sinclair/typebox"; +import { z } from "zod"; import { AUTHENTICATION_PROPERTY_NAME, isEmpty, isNil } from "@activepieces/shared"; function buildSchema(props: PiecePropertyMap, auth: PieceAuthProperty | PieceAuthProperty[] | undefined, requireAuth: boolean | undefined = true) { const entries = Object.entries(props); - const nullableType = [Type.Null(), Type.Undefined()]; - const nonNullableUnknownPropType = Type.Not( - Type.Union(nullableType), - Type.Unknown(), - ); - const propsSchema: Record = {}; + const propsSchema: Record = {}; for (const [name, property] of entries) { switch (property.type) { case PropertyType.MARKDOWN: - propsSchema[name] = Type.Optional( - Type.Union([Type.Null(), Type.Undefined(), Type.Never(), Type.Unknown()]), - ); + propsSchema[name] = z.union([z.null(), z.undefined(), z.never(), z.unknown()]).optional(); break; case PropertyType.DATE_TIME: case PropertyType.SHORT_TEXT: case PropertyType.LONG_TEXT: case PropertyType.COLOR: case PropertyType.FILE: - propsSchema[name] = Type.String({ - minLength: property.required ? 1 : undefined, - }); + propsSchema[name] = property.required + ? z.string().min(1) + : z.string(); break; case PropertyType.CHECKBOX: - propsSchema[name] = Type.Union([ - Type.Boolean({ defaultValue: false }), - Type.String({}), + propsSchema[name] = z.union([ + z.boolean(), + z.string(), ]); break; case PropertyType.NUMBER: - propsSchema[name] = Type.Union([ - Type.String({ - minLength: property.required ? 1 : undefined, - }), - Type.Number(), + propsSchema[name] = z.union([ + property.required ? z.string().min(1) : z.string(), + z.number(), ]); break; case PropertyType.STATIC_DROPDOWN: case PropertyType.DROPDOWN: - propsSchema[name] = nonNullableUnknownPropType; + propsSchema[name] = z.unknown().refine( + (val) => val !== null && val !== undefined, + { message: 'Value must not be null or undefined' }, + ); break; case PropertyType.BASIC_AUTH: case PropertyType.CUSTOM_AUTH: @@ -53,79 +47,65 @@ function buildSchema(props: PiecePropertyMap, auth: PieceAuthProperty | PieceAut break; case PropertyType.ARRAY: { const arrayItemSchema = isNil(property.properties) - ? Type.String({ - minLength: property.required ? 1 : undefined, - }) - : buildSchema(property.properties,undefined); - propsSchema[name] = Type.Union([ - Type.Array(arrayItemSchema, { - minItems: property.required ? 1 : undefined, - }), + ? (property.required ? z.string().min(1) : z.string()) + : buildSchema(property.properties, undefined); + propsSchema[name] = z.union([ + property.required + ? z.array(arrayItemSchema).min(1) + : z.array(arrayItemSchema), //for inline items mode - Type.Record(Type.String(), Type.Unknown()), + z.record(z.string(), z.unknown()), //for normal dynamic input mode - Type.String({ - minLength: property.required ? 1 : undefined, - }), + property.required ? z.string().min(1) : z.string(), ]); break; } case PropertyType.OBJECT: - propsSchema[name] = Type.Union([ - Type.Record(Type.String(), Type.Any()), - Type.String({ - minLength: property.required ? 1 : undefined, - }), + propsSchema[name] = z.union([ + z.record(z.string(), z.any()), + property.required ? z.string().min(1) : z.string(), ]); break; case PropertyType.JSON: - propsSchema[name] = Type.Union([ - Type.Record(Type.String(), Type.Any()), - Type.Array(Type.Any()), - Type.String({ - minLength: property.required ? 1 : undefined, - }), + propsSchema[name] = z.union([ + z.record(z.string(), z.any()), + z.array(z.any()), + property.required ? z.string().min(1) : z.string(), ]); break; case PropertyType.MULTI_SELECT_DROPDOWN: case PropertyType.STATIC_MULTI_SELECT_DROPDOWN: - propsSchema[name] = Type.Union([ - Type.Array(Type.Any(), { - minItems: property.required ? 1 : undefined, - }), - Type.String({ - minLength: property.required ? 1 : undefined, - }), + propsSchema[name] = z.union([ + property.required + ? z.array(z.any()).min(1) + : z.array(z.any()), + property.required ? z.string().min(1) : z.string(), ]); break; case PropertyType.DYNAMIC: - propsSchema[name] = Type.Record(Type.String(), Type.Any()); + propsSchema[name] = z.record(z.string(), z.any()); break; case PropertyType.CUSTOM: - propsSchema[name] = Type.Unknown(); + propsSchema[name] = z.unknown(); break; } - + //optional array is checked against its children if (!property.required && property.type !== PropertyType.ARRAY) { - propsSchema[name] = Type.Optional( - Type.Union( - isEmpty(propsSchema[name]) - ? [Type.Any(), ...nullableType] - : [propsSchema[name], ...nullableType], - ), - ); + propsSchema[name] = z.union( + isEmpty(propsSchema[name]) + ? [z.any(), z.null(), z.undefined()] as [z.ZodType, z.ZodType, z.ZodType] + : [propsSchema[name], z.null(), z.undefined()] as [z.ZodType, z.ZodType, z.ZodType], + ).optional(); } } if(auth && requireAuth) { - propsSchema[AUTHENTICATION_PROPERTY_NAME] = Type.String({ - minLength: 1 - }) + propsSchema[AUTHENTICATION_PROPERTY_NAME] = z.string().min(1) } - return Type.Object(propsSchema); - } + return z.object(propsSchema); + } export const piecePropertiesUtils = { buildSchema - } \ No newline at end of file + } diff --git a/packages/pieces/framework/src/lib/trigger/trigger.ts b/packages/pieces/framework/src/lib/trigger/trigger.ts index ee263975e60..94ba97b0f46 100644 --- a/packages/pieces/framework/src/lib/trigger/trigger.ts +++ b/packages/pieces/framework/src/lib/trigger/trigger.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox'; +import { z } from 'zod'; import { OnStartContext, TestOrRunHookContext, TriggerHookContext } from '../context'; import { TriggerBase } from '../piece-metadata'; import { InputPropertyMap } from '../property'; @@ -19,20 +19,20 @@ type OnStartRunner +export type WebhookRenewConfiguration = z.infer export interface WebhookResponse { status: number, - body?: any, + body?: unknown, headers?: Record } @@ -101,6 +101,7 @@ export class ITrigger< ) { } } +// eslint-disable-next-line @typescript-eslint/no-explicit-any export type Trigger< PieceAuth extends PieceAuthProperty | PieceAuthProperty[] | undefined = any, TriggerProps extends InputPropertyMap = any, diff --git a/packages/server/api/package.json b/packages/server/api/package.json index 3a33da24743..edad330f984 100644 --- a/packages/server/api/package.json +++ b/packages/server/api/package.json @@ -33,8 +33,7 @@ "@fastify/otel": "0.9.3", "@fastify/rate-limit": "10.3.0", "@fastify/swagger": "9.5.1", - "@fastify/type-provider-typebox": "5.1.0", - "@modelcontextprotocol/sdk": "1.26.0", + "@modelcontextprotocol/sdk": "1.27.1", "@openrouter/ai-sdk-provider": "2.1.1", "@openrouter/sdk": "0.2.9", "@opentelemetry/api": "1.9.0", @@ -51,7 +50,7 @@ "@opentelemetry/semantic-conventions": "1.37.0", "@segment/analytics-next": "1.72.0", "@segment/analytics-node": "2.2.0", - "@sinclair/typebox": "0.34.11", + "fastify-type-provider-zod": "4.0.2", "@socket.io/redis-adapter": "8.3.0", "ai": "^6.0.0", "ai-gateway-provider": "3.1.1", @@ -100,7 +99,7 @@ "typeorm": "0.3.26", "typeorm-pglite": "0.3.2", "worker": "workspace:*", - "zod": "4.1.13" + "zod": "4.3.6" }, "devDependencies": { "@activepieces/piece-facebook-leads": "workspace:*", diff --git a/packages/server/api/src/app/ai/ai-provider-controller.ts b/packages/server/api/src/app/ai/ai-provider-controller.ts index 389e8452499..940e86f2472 100644 --- a/packages/server/api/src/app/ai/ai-provider-controller.ts +++ b/packages/server/api/src/app/ai/ai-provider-controller.ts @@ -1,10 +1,11 @@ import { securityAccess } from '@activepieces/server-common' import { AIProviderModel, AIProviderName, CreateAIProviderRequest, PrincipalType, UpdateAIProviderRequest } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { aiProviderService } from './ai-provider-service' -export const aiProviderController: FastifyPluginAsyncTypebox = async (app) => { +export const aiProviderController: FastifyPluginAsyncZod = async (app) => { app.get('/', ListAIProviders, async (request) => { const platformId = request.principal.platform.id return aiProviderService(app.log).listProviders(platformId) @@ -43,8 +44,8 @@ const GetAIProviderConfig = { security: securityAccess.engine(), }, schema: { - params: Type.Object({ - provider: Type.Enum(AIProviderName), + params: z.object({ + provider: z.nativeEnum(AIProviderName), }), }, } @@ -54,11 +55,11 @@ const ListModels = { security: securityAccess.publicPlatform([PrincipalType.USER, PrincipalType.ENGINE]), }, schema: { - params: Type.Object({ - provider: Type.Enum(AIProviderName), + params: z.object({ + provider: z.nativeEnum(AIProviderName), }), response: { - [StatusCodes.OK]: Type.Array(AIProviderModel), + [StatusCodes.OK]: z.array(AIProviderModel), }, }, } @@ -77,8 +78,8 @@ const UpdateAIProvider = { security: securityAccess.publicPlatform([PrincipalType.USER]), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: UpdateAIProviderRequest, }, @@ -89,8 +90,8 @@ const DeleteAIProvider = { security: securityAccess.publicPlatform([PrincipalType.USER]), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } diff --git a/packages/server/api/src/app/ai/ai-provider-entity.ts b/packages/server/api/src/app/ai/ai-provider-entity.ts index 87c83ca350e..4b6436a0262 100644 --- a/packages/server/api/src/app/ai/ai-provider-entity.ts +++ b/packages/server/api/src/app/ai/ai-provider-entity.ts @@ -1,14 +1,18 @@ -import { AIProvider, AIProviderConfig, AIProviderName, Platform } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' +import { AIProviderConfig, AIProviderName, BaseModelSchema, Platform } from '@activepieces/shared' import { EntitySchema } from 'typeorm' +import { z } from 'zod' import { ApIdSchema, BaseColumnSchemaPart } from '../database/database-common' import { EncryptedObject } from '../helper/encryption' -const AIProviderEncrypted = Type.Composite([Type.Omit(AIProvider, ['auth']), Type.Object({ +const AIProviderEncrypted = z.object({ + ...BaseModelSchema, + displayName: z.string().min(1), + platformId: z.string(), + provider: z.nativeEnum(AIProviderName), auth: EncryptedObject, config: AIProviderConfig, -})]) -type AIProviderEncrypted = Static +}) +type AIProviderEncrypted = z.infer export type AIProviderSchema = AIProviderEncrypted & { platform: Platform diff --git a/packages/server/api/src/app/ai/ai-provider.module.ts b/packages/server/api/src/app/ai/ai-provider.module.ts index 039f9e23bfb..568dbdd0aca 100644 --- a/packages/server/api/src/app/ai/ai-provider.module.ts +++ b/packages/server/api/src/app/ai/ai-provider.module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { aiProviderController } from './ai-provider-controller' -export const aiProviderModule: FastifyPluginAsyncTypebox = async (app) => { +export const aiProviderModule: FastifyPluginAsyncZod = async (app) => { await app.register(aiProviderController, { prefix: '/v1/ai-providers' }) } diff --git a/packages/server/api/src/app/analytics/platform-analytics.module.ts b/packages/server/api/src/app/analytics/platform-analytics.module.ts index 1ee5e12df4f..ce135fd5ca9 100644 --- a/packages/server/api/src/app/analytics/platform-analytics.module.ts +++ b/packages/server/api/src/app/analytics/platform-analytics.module.ts @@ -1,20 +1,20 @@ import { securityAccess } from '@activepieces/server-common' import { ActivepiecesError, AnalyticsReportRequest, ErrorCode, LeaderboardRequest, PrincipalType, UserIdentityProvider } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { FastifyBaseLogger } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { userIdentityService } from '../authentication/user-identity/user-identity-service' import { platformMustHaveFeatureEnabled } from '../ee/authentication/ee-authorization' import { userService } from '../user/user-service' import { piecesAnalyticsService } from './pieces-analytics.service' import { platformAnalyticsReportService } from './platform-analytics-report.service' -export const platformAnalyticsModule: FastifyPluginAsyncTypebox = async (app) => { +export const platformAnalyticsModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.analyticsEnabled)) await piecesAnalyticsService(app.log).init() await app.register(platformAnalyticsController, { prefix: '/v1/analytics' }) } -const platformAnalyticsController: FastifyPluginAsyncTypebox = async (app) => { +const platformAnalyticsController: FastifyPluginAsyncZod = async (app) => { app.get('/', PlatformAnalyticsRequest, async (request) => { const { platform, id } = request.principal diff --git a/packages/server/api/src/app/app-connection/app-connection-worker-controller.ts b/packages/server/api/src/app/app-connection/app-connection-worker-controller.ts index 2beac8405df..ec0f231ce2d 100644 --- a/packages/server/api/src/app/app-connection/app-connection-worker-controller.ts +++ b/packages/server/api/src/app/app-connection/app-connection-worker-controller.ts @@ -9,13 +9,11 @@ import { GetAppConnectionForWorkerRequestQuery, isNil, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { secretManagersService } from '../ee/secret-managers/secret-managers.service' import { appConnectionService } from './app-connection-service/app-connection-service' -export const appConnectionWorkerController: FastifyPluginAsyncTypebox = async (app) => { +export const appConnectionWorkerController: FastifyPluginAsyncZod = async (app) => { app.get('/:externalId', GetAppConnectionRequest, async (request): Promise => { const enginePrincipal = (request.principal as EnginePrincipal) diff --git a/packages/server/api/src/app/app-connection/app-connection.controller.ts b/packages/server/api/src/app/app-connection/app-connection.controller.ts index cc198f87daf..8a33c692859 100644 --- a/packages/server/api/src/app/app-connection/app-connection.controller.ts +++ b/packages/server/api/src/app/app-connection/app-connection.controller.ts @@ -14,17 +14,15 @@ import { ApId, UpdateConnectionValueRequestBody, UpsertAppConnectionRequestBody, } from '@activepieces/shared' -import { - FastifyPluginCallbackTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginCallbackZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { applicationEvents } from '../helper/application-events' import { securityHelper } from '../helper/security-helper' import { appConnectionService } from './app-connection-service/app-connection-service' import { AppConnectionEntity } from './app-connection.entity' -export const appConnectionController: FastifyPluginCallbackTypebox = (app, _opts, done) => { +export const appConnectionController: FastifyPluginCallbackZod = (app, _opts, done) => { app.post('/', UpsertAppConnectionRequest, async (request, reply) => { const appConnection = await appConnectionService(request.log).upsert({ platformId: request.principal.platform.id, @@ -176,7 +174,7 @@ const UpdateConnectionValueRequest = { security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Update an app connection value', body: UpdateConnectionValueRequestBody, - params: Type.Object({ + params: z.object({ id: ApId, }), }, @@ -198,7 +196,7 @@ const ReplaceAppConnectionsRequest = { description: 'Replace app connections', body: ReplaceAppConnectionsRequestBody, response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } @@ -259,11 +257,11 @@ const DeleteAppConnectionRequest = { tags: ['app-connections'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Delete an app connection', - params: Type.Object({ + params: z.object({ id: ApId, }), response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } diff --git a/packages/server/api/src/app/app-connection/app-connection.module.ts b/packages/server/api/src/app/app-connection/app-connection.module.ts index d5a0b8ee4dd..48baba44991 100644 --- a/packages/server/api/src/app/app-connection/app-connection.module.ts +++ b/packages/server/api/src/app/app-connection/app-connection.module.ts @@ -1,9 +1,9 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { entitiesMustBeOwnedByCurrentProject } from '../authentication/authorization' import { appConnectionWorkerController } from './app-connection-worker-controller' import { appConnectionController } from './app-connection.controller' -export const appConnectionModule: FastifyPluginAsyncTypebox = async (app) => { +export const appConnectionModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) await app.register(appConnectionController, { prefix: '/v1/app-connections', diff --git a/packages/server/api/src/app/app.ts b/packages/server/api/src/app/app.ts index 6373efe75a6..6d4f001f516 100644 --- a/packages/server/api/src/app/app.ts +++ b/packages/server/api/src/app/app.ts @@ -95,7 +95,8 @@ export const setupApp = async (app: FastifyInstance): Promise = return payload as Buffer }) - await app.register(swagger, { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + await app.register(swagger as any, { hideUntagged: true, openapi: { servers: [ diff --git a/packages/server/api/src/app/authentication/authentication.controller.ts b/packages/server/api/src/app/authentication/authentication.controller.ts index bc6e5978a83..fa46ef49681 100644 --- a/packages/server/api/src/app/authentication/authentication.controller.ts +++ b/packages/server/api/src/app/authentication/authentication.controller.ts @@ -8,14 +8,14 @@ import { ApplicationEventName, UserIdentityProvider, } from '@activepieces/shared' import { RateLimitOptions } from '@fastify/rate-limit' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { applicationEvents } from '../helper/application-events' import { system } from '../helper/system/system' import { platformUtils } from '../platform/platform.utils' import { userService } from '../user/user-service' import { authenticationService } from './authentication.service' -export const authenticationController: FastifyPluginAsyncTypebox = async ( +export const authenticationController: FastifyPluginAsyncZod = async ( app, ) => { app.post('/sign-up', SignUpRequestOptions, async (request) => { diff --git a/packages/server/api/src/app/authentication/authentication.module.ts b/packages/server/api/src/app/authentication/authentication.module.ts index d6906b7badc..244c0795651 100644 --- a/packages/server/api/src/app/authentication/authentication.module.ts +++ b/packages/server/api/src/app/authentication/authentication.module.ts @@ -1,7 +1,7 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { authenticationController } from './authentication.controller' -export const authenticationModule: FastifyPluginAsyncTypebox = async (app) => { +export const authenticationModule: FastifyPluginAsyncZod = async (app) => { await app.register(authenticationController, { prefix: '/v1/authentication', }) diff --git a/packages/server/api/src/app/core/security/rate-limit.ts b/packages/server/api/src/app/core/security/rate-limit.ts index 36da80d53b3..2e977f5df25 100644 --- a/packages/server/api/src/app/core/security/rate-limit.ts +++ b/packages/server/api/src/app/core/security/rate-limit.ts @@ -1,7 +1,7 @@ import { AppSystemProp, networkUtils } from '@activepieces/server-common' import RateLimitPlugin from '@fastify/rate-limit' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import FastifyPlugin from 'fastify-plugin' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { redisConnections } from '../../database/redis-connections' import { system } from '../../helper/system/system' @@ -9,7 +9,7 @@ const API_RATE_LIMIT_AUTHN_ENABLED = system.getBoolean( AppSystemProp.API_RATE_LIMIT_AUTHN_ENABLED, ) -export const rateLimitModule: FastifyPluginAsyncTypebox = FastifyPlugin( +export const rateLimitModule: FastifyPluginAsyncZod = FastifyPlugin( async (app) => { if (API_RATE_LIMIT_AUTHN_ENABLED) { await app.register(RateLimitPlugin, { diff --git a/packages/server/api/src/app/database/migration/postgres/1761668284685-AddRunUsageForPlatformAnalyticsReport.ts b/packages/server/api/src/app/database/migration/postgres/1761668284685-AddRunUsageForPlatformAnalyticsReport.ts index dba5ecfe3d2..658265d643b 100644 --- a/packages/server/api/src/app/database/migration/postgres/1761668284685-AddRunUsageForPlatformAnalyticsReport.ts +++ b/packages/server/api/src/app/database/migration/postgres/1761668284685-AddRunUsageForPlatformAnalyticsReport.ts @@ -1,61 +1,61 @@ -import { ApEdition } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' +import { ApEdition, DateOrString } from '@activepieces/shared' import dayjs from 'dayjs' import { MigrationInterface, QueryRunner } from 'typeorm' +import { z } from 'zod' import { system } from '../../../helper/system/system' import { isNotOneOfTheseEditions } from '../../database-common' const log = system.globalLogger() -const AnalyticsPieceReportItem = Type.Object({ - name: Type.String(), - displayName: Type.String(), - logoUrl: Type.String(), - usageCount: Type.Number(), +const AnalyticsPieceReportItem = z.object({ + name: z.string(), + displayName: z.string(), + logoUrl: z.string(), + usageCount: z.number(), }) -type AnalyticsPieceReportItem = Static +type AnalyticsPieceReportItem = z.infer -const AnalyticsPieceReport = Type.Array(AnalyticsPieceReportItem) -type AnalyticsPieceReport = Static +const AnalyticsPieceReport = z.array(AnalyticsPieceReportItem) +type AnalyticsPieceReport = z.infer -const AnalyticsProjectReportItem = Type.Object({ - id: Type.String(), - displayName: Type.String(), - activeFlows: Type.Number(), - totalFlows: Type.Number(), +const AnalyticsProjectReportItem = z.object({ + id: z.string(), + displayName: z.string(), + activeFlows: z.number(), + totalFlows: z.number(), }) -type AnalyticsProjectReportItem = Static +type AnalyticsProjectReportItem = z.infer -const AnalyticsProjectReport = Type.Array(AnalyticsProjectReportItem) -type AnalyticsProjectReport = Static +const AnalyticsProjectReport = z.array(AnalyticsProjectReportItem) +type AnalyticsProjectReport = z.infer -const AnalyticsRunsUsageItem = Type.Object({ - day: Type.String(), - totalRuns: Type.Number(), +const AnalyticsRunsUsageItem = z.object({ + day: z.string(), + totalRuns: z.number(), }) -type AnalyticsRunsUsageItem = Static - -const AnalyticsRunsUsage = Type.Array(AnalyticsRunsUsageItem) -type AnalyticsRunsUsage = Static - - -const PlatformAnalyticsReport = Type.Object({ - id: Type.String(), - created: Type.String(), - updated: Type.String(), - totalFlows: Type.Number(), - activeFlows: Type.Number(), - totalUsers: Type.Number(), - activeUsers: Type.Number(), - totalProjects: Type.Number(), - activeProjects: Type.Number(), - uniquePiecesUsed: Type.Number(), - activeFlowsWithAI: Type.Number(), +type AnalyticsRunsUsageItem = z.infer + +const AnalyticsRunsUsage = z.array(AnalyticsRunsUsageItem) +type AnalyticsRunsUsage = z.infer + + +const PlatformAnalyticsReport = z.object({ + id: z.string(), + created: DateOrString, + updated: DateOrString, + totalFlows: z.number(), + activeFlows: z.number(), + totalUsers: z.number(), + activeUsers: z.number(), + totalProjects: z.number(), + activeProjects: z.number(), + uniquePiecesUsed: z.number(), + activeFlowsWithAI: z.number(), topPieces: AnalyticsPieceReport, topProjects: AnalyticsProjectReport, runsUsage: AnalyticsRunsUsage, - platformId: Type.String(), + platformId: z.string(), }) -type PlatformAnalyticsReport = Static +type PlatformAnalyticsReport = z.infer export enum RunEnvironment { PRODUCTION = 'PRODUCTION', diff --git a/packages/server/api/src/app/database/migration/postgres/1764777773932-CreateTemplateTable.ts b/packages/server/api/src/app/database/migration/postgres/1764777773932-CreateTemplateTable.ts index 6471a246fcd..d3b0cb24ece 100644 --- a/packages/server/api/src/app/database/migration/postgres/1764777773932-CreateTemplateTable.ts +++ b/packages/server/api/src/app/database/migration/postgres/1764777773932-CreateTemplateTable.ts @@ -1,6 +1,6 @@ import { apId, FlowVersion, isNil } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' import { MigrationInterface, QueryRunner } from 'typeorm' +import { z } from 'zod' import { system } from '../../../helper/system/system' const cloudPlatformId = 'NgixMLyPUxy1ZgCcxw5cM' @@ -20,18 +20,16 @@ enum TemplateCategory { PRODUCTIVITY = 'PRODUCTIVITY', SALES = 'SALES', } -const ColorHex = Type.String({ - pattern: '^#[0-9A-Fa-f]{6}$', -}) -type ColorHex = Static +const ColorHex = z.string().regex(/^#[0-9A-Fa-f]{6}$/) +type ColorHex = z.infer -const TemplateTag = Type.Object({ - title: Type.String(), +const TemplateTag = z.object({ + title: z.string(), color: ColorHex, - icon: Type.Optional(Type.String()), + icon: z.string().optional(), }) -type TemplateTag = Static +type TemplateTag = z.infer enum TemplateType { OFFICIAL = 'OFFICIAL', @@ -39,11 +37,7 @@ enum TemplateType { CUSTOM = 'CUSTOM', } -const FlowVersionTemplate = Type.Omit( - FlowVersion, - ['id', 'created', 'updated', 'flowId', 'state', 'updatedBy', 'agentIds', 'connectionIds', 'backupFiles'], -) -type FlowVersionTemplate = Static +type FlowVersionTemplate = Omit export class CreateTemplateTable1764777773932 implements MigrationInterface { diff --git a/packages/server/api/src/app/database/migration/postgres/1765993826655-MigrateOldTemplatesToNewSchema.ts b/packages/server/api/src/app/database/migration/postgres/1765993826655-MigrateOldTemplatesToNewSchema.ts index 1a2947dd585..4388f6fb857 100644 --- a/packages/server/api/src/app/database/migration/postgres/1765993826655-MigrateOldTemplatesToNewSchema.ts +++ b/packages/server/api/src/app/database/migration/postgres/1765993826655-MigrateOldTemplatesToNewSchema.ts @@ -1,6 +1,6 @@ import { FlowVersion, isNil, TemplateStatus } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' import { MigrationInterface, QueryRunner } from 'typeorm' +import { z } from 'zod' import { system } from '../../../helper/system/system' const cloudPlatformId = 'NgixMLyPUxy1ZgCcxw5cM' @@ -20,18 +20,16 @@ enum TemplateCategory { PRODUCTIVITY = 'PRODUCTIVITY', SALES = 'SALES', } -const ColorHex = Type.String({ - pattern: '^#[0-9A-Fa-f]{6}$', -}) -type ColorHex = Static +const ColorHex = z.string().regex(/^#[0-9A-Fa-f]{6}$/) +type ColorHex = z.infer -const TemplateTag = Type.Object({ - title: Type.String(), +const TemplateTag = z.object({ + title: z.string(), color: ColorHex, - icon: Type.Optional(Type.String()), + icon: z.string().optional(), }) -type TemplateTag = Static +type TemplateTag = z.infer enum TemplateType { OFFICIAL = 'OFFICIAL', @@ -39,11 +37,7 @@ enum TemplateType { CUSTOM = 'CUSTOM', } -const FlowVersionTemplate = Type.Omit( - FlowVersion, - ['id', 'created', 'updated', 'flowId', 'state', 'updatedBy', 'agentIds', 'connectionIds', 'backupFiles'], -) -type FlowVersionTemplate = Static +type FlowVersionTemplate = Omit export class MigrateOldTemplatesToNewSchema1765993826655 implements MigrationInterface { diff --git a/packages/server/api/src/app/database/migration/postgres/1766094015801-removeOpenRounterKeysFromPlatformPlan.ts b/packages/server/api/src/app/database/migration/postgres/1766094015801-removeOpenRounterKeysFromPlatformPlan.ts index a32c2cccc7d..356b28183dc 100644 --- a/packages/server/api/src/app/database/migration/postgres/1766094015801-removeOpenRounterKeysFromPlatformPlan.ts +++ b/packages/server/api/src/app/database/migration/postgres/1766094015801-removeOpenRounterKeysFromPlatformPlan.ts @@ -1,4 +1,4 @@ -import { ActivePiecesProviderConfig, AIProviderName, apId } from '@activepieces/shared' +import { AIProviderName, apId } from '@activepieces/shared' import { MigrationInterface, QueryRunner } from 'typeorm' import { encryptUtils } from '../../../helper/encryption' @@ -13,9 +13,9 @@ export class RemoveOpenRounterKeysFromPlatformPlan1766094015801 implements Migra `) for (const plan of plans) { - const config: ActivePiecesProviderConfig = { - apiKey: plan.openRouterApiKey, - apiKeyHash: plan.openRouterApiKeyHash, + const config: Record = { + apiKey: plan.openRouterApiKey as string, + apiKeyHash: plan.openRouterApiKeyHash as string, } const encryptedConfig = await encryptUtils.encryptObject(config) diff --git a/packages/server/api/src/app/database/seeds/role-seed.ts b/packages/server/api/src/app/database/seeds/role-seed.ts index 73810107863..50c7cb884ba 100644 --- a/packages/server/api/src/app/database/seeds/role-seed.ts +++ b/packages/server/api/src/app/database/seeds/role-seed.ts @@ -1,4 +1,4 @@ -import { DefaultProjectRole, ProjectRole, rolePermissions, RoleType } from '@activepieces/shared' +import { DefaultProjectRole, rolePermissions, RoleType } from '@activepieces/shared' import { repoFactory } from '../../core/db/repo-factory' import { ProjectRoleEntity } from '../../ee/projects/project-role/project-role.entity' import { system } from '../../helper/system/system' @@ -18,13 +18,12 @@ export const rolesSeed: DataSeed = { system.globalLogger().info({ name: 'rolesSeed' }, 'Seeding roles') for (const role of Object.values(DefaultProjectRole)) { const permissions = rolePermissions[role] - const projectRole: Omit = { + await projectMemberRoleRepo().upsert({ name: role, permissions, type: RoleType.DEFAULT, id: roleIds[role], - } - await projectMemberRoleRepo().upsert(projectRole, ['id']) + }, ['id']) } }, } \ No newline at end of file diff --git a/packages/server/api/src/app/ee/alerts/alerts-controller.ts b/packages/server/api/src/app/ee/alerts/alerts-controller.ts index d35a3ee884b..f400454896c 100644 --- a/packages/server/api/src/app/ee/alerts/alerts-controller.ts +++ b/packages/server/api/src/app/ee/alerts/alerts-controller.ts @@ -1,10 +1,11 @@ import { ProjectResourceType, securityAccess } from '@activepieces/server-common' import { ApId, CreateAlertParams, ListAlertsParams, Permission, PrincipalType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { AlertEntity } from './alerts-entity' import { alertsService } from './alerts-service' -export const alertsController: FastifyPluginAsyncTypebox = async (app) => { +export const alertsController: FastifyPluginAsyncZod = async (app) => { app.get('/', ListAlertsRequest, async (req) => { return alertsService(req.log).list({ projectId: req.query.projectId, @@ -70,7 +71,7 @@ const DeleteAlertRequest = { ), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), }, diff --git a/packages/server/api/src/app/ee/alerts/alerts-module.ts b/packages/server/api/src/app/ee/alerts/alerts-module.ts index 6aef6ced8e0..e9e2889c196 100644 --- a/packages/server/api/src/app/ee/alerts/alerts-module.ts +++ b/packages/server/api/src/app/ee/alerts/alerts-module.ts @@ -1,9 +1,9 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { entitiesMustBeOwnedByCurrentProject } from '../../authentication/authorization' import { projectMustBeTeamType } from '../authentication/ee-authorization' import { alertsController } from './alerts-controller' -export const alertsModule: FastifyPluginAsyncTypebox = async (app) => { +export const alertsModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) app.addHook('preHandler', projectMustBeTeamType) await app.register(alertsController, { prefix: '/v1/alerts' }) diff --git a/packages/server/api/src/app/ee/api-keys/api-key-module.ts b/packages/server/api/src/app/ee/api-keys/api-key-module.ts index 1082a08b0f4..093d23486a5 100644 --- a/packages/server/api/src/app/ee/api-keys/api-key-module.ts +++ b/packages/server/api/src/app/ee/api-keys/api-key-module.ts @@ -3,20 +3,18 @@ import { ApId, ApiKeyResponseWithoutValue, ApiKeyResponseWithValue, assertNotNullOrUndefined, CreateApiKeyRequest, PrincipalType, SeekPage } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { platformMustHaveFeatureEnabled } from '../authentication/ee-authorization' import { apiKeyService } from './api-key-service' -export const apiKeyModule: FastifyPluginAsyncTypebox = async (app) => { +export const apiKeyModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.apiKeysEnabled)) await app.register(apiKeyController, { prefix: '/v1/api-keys' }) } -export const apiKeyController: FastifyPluginAsyncTypebox = async (app) => { +export const apiKeyController: FastifyPluginAsyncZod = async (app) => { app.post('/', CreateRequest, async (req, res) => { const platformId = req.principal.platform.id assertNotNullOrUndefined(platformId, 'platformId') @@ -76,7 +74,7 @@ const DeleteRequest = { security: securityAccess.platformAdminOnly([PrincipalType.USER]), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), }, diff --git a/packages/server/api/src/app/ee/app-credentials/app-credentials.module.ts b/packages/server/api/src/app/ee/app-credentials/app-credentials.module.ts index 2112c55fb2b..184e9dc942f 100644 --- a/packages/server/api/src/app/ee/app-credentials/app-credentials.module.ts +++ b/packages/server/api/src/app/ee/app-credentials/app-credentials.module.ts @@ -5,13 +5,14 @@ import { ListAppCredentialsRequest, PrincipalType, SeekPage, UpsertAppCredentialRequest } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' import { FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { AppCredentialEntity } from './app-credentials.entity' import { appCredentialService } from './app-credentials.service' -export const appCredentialModule: FastifyPluginAsyncTypebox = async (app) => { +export const appCredentialModule: FastifyPluginAsyncZod = async (app) => { await app.register(appCredentialController, { prefix: '/v1/app-credentials', }) @@ -19,7 +20,7 @@ export const appCredentialModule: FastifyPluginAsyncTypebox = async (app) => { const DEFAULT_LIMIT_SIZE = 10 -const appCredentialController: FastifyPluginAsyncTypebox = async (fastify) => { +const appCredentialController: FastifyPluginAsyncZod = async (fastify) => { fastify.get( '/', ListCredsRequest, @@ -109,8 +110,8 @@ const DeleteAppCredentialRequestOptions = { ), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } diff --git a/packages/server/api/src/app/ee/appsumo/appsumo.module.ts b/packages/server/api/src/app/ee/appsumo/appsumo.module.ts index 01df721a30d..ba84bbaaae6 100644 --- a/packages/server/api/src/app/ee/appsumo/appsumo.module.ts +++ b/packages/server/api/src/app/ee/appsumo/appsumo.module.ts @@ -1,12 +1,12 @@ import { AppSystemProp, securityAccess } from '@activepieces/server-common' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Static, Type } from '@sinclair/typebox' import { FastifyInstance, FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { system } from '../../helper/system/system' import { appsumoService } from './appsumo.service' -export const appSumoModule: FastifyPluginAsyncTypebox = async (app) => { +export const appSumoModule: FastifyPluginAsyncZod = async (app) => { await app.register(appsumoController, { prefix: '/v1/appsumo' }) } @@ -14,27 +14,27 @@ const exchangeCredentialUsername = system.get(AppSystemProp.APPSUMO_TOKEN) const exchangeCredentialPassword = system.get(AppSystemProp.APPSUMO_TOKEN) const token = system.get(AppSystemProp.APPSUMO_TOKEN) -const ActionRequest = Type.Object({ - action: Type.String(), - plan_id: Type.String(), - uuid: Type.String(), - activation_email: Type.String(), +const ActionRequest = z.object({ + action: z.string(), + plan_id: z.string(), + uuid: z.string(), + activation_email: z.string(), }) -type ActionRequest = Static +type ActionRequest = z.infer -const ExchangeTokenRequest = Type.Object({ - username: Type.String(), - password: Type.String(), +const ExchangeTokenRequest = z.object({ + username: z.string(), + password: z.string(), }) -type ExchangeTokenRequest = Static +type ExchangeTokenRequest = z.infer -const AuthorizationHeaders = Type.Object({ - authorization: Type.String(), +const AuthorizationHeaders = z.object({ + authorization: z.string(), }) -type AuthorizationHeaders = Static +type AuthorizationHeaders = z.infer -const appsumoController: FastifyPluginAsyncTypebox = async ( +const appsumoController: FastifyPluginAsyncZod = async ( fastify: FastifyInstance, ) => { fastify.post( diff --git a/packages/server/api/src/app/ee/audit-logs/audit-event-module.ts b/packages/server/api/src/app/ee/audit-logs/audit-event-module.ts index 0d284347f65..7d97a177897 100644 --- a/packages/server/api/src/app/ee/audit-logs/audit-event-module.ts +++ b/packages/server/api/src/app/ee/audit-logs/audit-event-module.ts @@ -1,16 +1,16 @@ import { securityAccess } from '@activepieces/server-common' import { ListAuditEventsRequest, PrincipalType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { platformMustHaveFeatureEnabled } from '../authentication/ee-authorization' import { auditLogService } from './audit-event-service' -export const auditEventModule: FastifyPluginAsyncTypebox = async (app) => { +export const auditEventModule: FastifyPluginAsyncZod = async (app) => { auditLogService(app.log).setup() app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.auditLogEnabled)) await app.register(auditEventController, { prefix: '/v1/audit-events' }) } -const auditEventController: FastifyPluginAsyncTypebox = async (app) => { +const auditEventController: FastifyPluginAsyncZod = async (app) => { app.get('/', ListAuditEventsRequestEndpoint, async (request) => { return auditLogService(request.log).list({ diff --git a/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-controller.ts b/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-controller.ts index d8091cf4cb9..9687845163a 100644 --- a/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-controller.ts +++ b/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-controller.ts @@ -2,10 +2,10 @@ import { securityAccess } from '@activepieces/server-common' import { ResetPasswordRequestBody, VerifyEmailRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { enterpriseLocalAuthnService } from './enterprise-local-authn-service' -export const enterpriseLocalAuthnController: FastifyPluginAsyncTypebox = async ( +export const enterpriseLocalAuthnController: FastifyPluginAsyncZod = async ( app, ) => { app.post('/verify-email', VerifyEmailRequest, async (req) => { diff --git a/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-module.ts b/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-module.ts index 971d2051986..b6ec2db95ee 100644 --- a/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-module.ts +++ b/packages/server/api/src/app/ee/authentication/enterprise-local-authn/enterprise-local-authn-module.ts @@ -1,7 +1,7 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { enterpriseLocalAuthnController } from './enterprise-local-authn-controller' -export const enterpriseLocalAuthnModule: FastifyPluginAsyncTypebox = async ( +export const enterpriseLocalAuthnModule: FastifyPluginAsyncZod = async ( app, ) => { await app.register(enterpriseLocalAuthnController, { diff --git a/packages/server/api/src/app/ee/authentication/federated-authn/federated-authn-module.ts b/packages/server/api/src/app/ee/authentication/federated-authn/federated-authn-module.ts index 300dfa002fb..79c326157d5 100644 --- a/packages/server/api/src/app/ee/authentication/federated-authn/federated-authn-module.ts +++ b/packages/server/api/src/app/ee/authentication/federated-authn/federated-authn-module.ts @@ -4,22 +4,20 @@ import { ClaimTokenRequest, ThirdPartyAuthnProviderEnum } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { applicationEvents } from '../../../helper/application-events' import { system } from '../../../helper/system/system' import { platformUtils } from '../../../platform/platform.utils' import { federatedAuthnService } from './federated-authn-service' -export const federatedAuthModule: FastifyPluginAsyncTypebox = async (app) => { +export const federatedAuthModule: FastifyPluginAsyncZod = async (app) => { await app.register(federatedAuthnController, { prefix: '/v1/authn/federated', }) } -const federatedAuthnController: FastifyPluginAsyncTypebox = async (app) => { +const federatedAuthnController: FastifyPluginAsyncZod = async (app) => { app.get('/login', LoginRequestSchema, async (req) => { const platformId = await platformUtils.getPlatformIdForRequest(req) return federatedAuthnService(req.log).login({ @@ -53,8 +51,8 @@ const LoginRequestSchema = { security: securityAccess.public(), }, schema: { - querystring: Type.Object({ - providerName: Type.Enum(ThirdPartyAuthnProviderEnum), + querystring: z.object({ + providerName: z.nativeEnum(ThirdPartyAuthnProviderEnum), }), }, } diff --git a/packages/server/api/src/app/ee/authentication/otp/otp-controller.ts b/packages/server/api/src/app/ee/authentication/otp/otp-controller.ts index bd0956ca73e..2486c9cce2b 100644 --- a/packages/server/api/src/app/ee/authentication/otp/otp-controller.ts +++ b/packages/server/api/src/app/ee/authentication/otp/otp-controller.ts @@ -1,11 +1,11 @@ import { securityAccess } from '@activepieces/server-common' import { CreateOtpRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { platformUtils } from '../../../platform/platform.utils' import { otpService } from './otp-service' -export const otpController: FastifyPluginAsyncTypebox = async (app) => { +export const otpController: FastifyPluginAsyncZod = async (app) => { app.post('/', CreateOtpRequest, async (req, res) => { const platformId = await platformUtils.getPlatformIdForRequest(req) await otpService(req.log).createAndSend({ diff --git a/packages/server/api/src/app/ee/authentication/otp/otp-module.ts b/packages/server/api/src/app/ee/authentication/otp/otp-module.ts index 0e9696f9681..63b6f49815a 100644 --- a/packages/server/api/src/app/ee/authentication/otp/otp-module.ts +++ b/packages/server/api/src/app/ee/authentication/otp/otp-module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { otpController } from './otp-controller' -export const otpModule: FastifyPluginAsyncTypebox = async (app) => { +export const otpModule: FastifyPluginAsyncZod = async (app) => { await app.register(otpController, { prefix: '/v1/otp' }) } diff --git a/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-controller.ts b/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-controller.ts index 1ccaf63cef8..8bf3b7c2998 100644 --- a/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-controller.ts +++ b/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-controller.ts @@ -1,14 +1,15 @@ import { AppSystemProp, networkUtils, securityAccess } from '@activepieces/server-common' import { ApplicationEventName, assertNotNullOrUndefined, SAMLAuthnProviderConfig } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' import { FastifyBaseLogger, FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { applicationEvents } from '../../../helper/application-events' import { system } from '../../../helper/system/system' import { platformService } from '../../../platform/platform.service' import { platformUtils } from '../../../platform/platform.utils' import { authnSsoSamlService } from './authn-sso-saml-service' -export const authnSsoSamlController: FastifyPluginAsyncTypebox = async (app) => { +export const authnSsoSamlController: FastifyPluginAsyncZod = async (app) => { app.get('/login', LoginRequest, async (req, res) => { const { saml, platformId } = await getSamlConfigOrThrow(req, req.log) const loginResponse = await authnSsoSamlService(req.log).login(platformId, saml) @@ -55,8 +56,8 @@ const AcsRequest = { security: securityAccess.public(), }, schema: { - body: Type.Record(Type.String(), Type.Unknown()), - querystring: Type.Record(Type.String(), Type.Unknown()), + body: z.record(z.string(), z.unknown()), + querystring: z.record(z.string(), z.unknown()), }, } @@ -64,4 +65,4 @@ const LoginRequest = { config: { security: securityAccess.public(), }, -} \ No newline at end of file +} diff --git a/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-module.ts b/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-module.ts index 5f0840a9070..a3b846e84fa 100644 --- a/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-module.ts +++ b/packages/server/api/src/app/ee/authentication/saml-authn/authn-sso-saml-module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { authnSsoSamlController } from './authn-sso-saml-controller' -export const authnSsoSamlModule: FastifyPluginAsyncTypebox = async (app) => { +export const authnSsoSamlModule: FastifyPluginAsyncZod = async (app) => { await app.register(authnSsoSamlController, { prefix: '/v1/authn/saml' }) } diff --git a/packages/server/api/src/app/ee/authentication/saml-authn/saml-client.ts b/packages/server/api/src/app/ee/authentication/saml-authn/saml-client.ts index dedf6785688..5d725f77b91 100644 --- a/packages/server/api/src/app/ee/authentication/saml-authn/saml-client.ts +++ b/packages/server/api/src/app/ee/authentication/saml-authn/saml-client.ts @@ -1,19 +1,16 @@ import { ActivepiecesError, ErrorCode, SAMLAuthnProviderConfig } from '@activepieces/shared' import * as validator from '@authenio/samlify-node-xmllint' -import { Type } from '@sinclair/typebox' -import { TypeCompiler } from '@sinclair/typebox/compiler' import * as saml from 'samlify' +import { z } from 'zod' import { domainHelper } from '../../custom-domains/domain-helper' -const samlResponseValidator = TypeCompiler.Compile( - Type.Object({ - email: Type.String(), - firstName: Type.String(), - lastName: Type.String(), - }), -) +const samlResponseValidator = z.object({ + email: z.string(), + firstName: z.string(), + lastName: z.string(), +}) class SamlClient { private static readonly LOGIN_REQUEST_BINDING = 'redirect' @@ -41,7 +38,7 @@ class SamlClient { ) const atts = loginResult.extract.attributes - if (!samlResponseValidator.Check(atts)) { + if (!samlResponseValidator.safeParse(atts).success) { throw new ActivepiecesError({ code: ErrorCode.INVALID_SAML_RESPONSE, params: { diff --git a/packages/server/api/src/app/ee/connection-keys/connection-key.module.ts b/packages/server/api/src/app/ee/connection-keys/connection-key.module.ts index e3563ef60ad..086f39e7557 100644 --- a/packages/server/api/src/app/ee/connection-keys/connection-key.module.ts +++ b/packages/server/api/src/app/ee/connection-keys/connection-key.module.ts @@ -6,14 +6,14 @@ import { ListConnectionKeysRequest, PrincipalType, UpsertConnectionFromToken, UpsertSigningKeyConnection } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { appConnectionService } from '../../app-connection/app-connection-service/app-connection-service' import { projectService } from '../../project/project-service' import { connectionKeyService } from './connection-key.service' -export const connectionKeyModule: FastifyPluginAsyncTypebox = async (app) => { +export const connectionKeyModule: FastifyPluginAsyncZod = async (app) => { await app.register(connectionKeyController, { prefix: '/v1/connection-keys', }) @@ -21,7 +21,7 @@ export const connectionKeyModule: FastifyPluginAsyncTypebox = async (app) => { const DEFAULT_LIMIT_SIZE = 10 -const connectionKeyController: FastifyPluginAsyncTypebox = async (fastify) => { +const connectionKeyController: FastifyPluginAsyncZod = async (fastify) => { fastify.delete( '/app-connections', { diff --git a/packages/server/api/src/app/ee/custom-domains/custom-domain.module.ts b/packages/server/api/src/app/ee/custom-domains/custom-domain.module.ts index 501d2c570d5..6c105b3e605 100644 --- a/packages/server/api/src/app/ee/custom-domains/custom-domain.module.ts +++ b/packages/server/api/src/app/ee/custom-domains/custom-domain.module.ts @@ -3,27 +3,24 @@ import { AddDomainRequest, assertNotNullOrUndefined, ListCustomDomainsRequest, PrincipalType } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Static, - Type, -} from '@fastify/type-provider-typebox' import { HttpStatusCode } from 'axios' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { platformMustHaveFeatureEnabled } from '../authentication/ee-authorization' import { customDomainService } from './custom-domain.service' -const GetOneRequest = Type.Object({ - id: Type.String(), +const GetOneRequest = z.object({ + id: z.string(), }) -type GetOneRequest = Static +type GetOneRequest = z.infer -export const customDomainModule: FastifyPluginAsyncTypebox = async (app) => { +export const customDomainModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.customDomainsEnabled)) await app.register(customDomainController, { prefix: '/v1/custom-domains' }) } -const customDomainController: FastifyPluginAsyncTypebox = async (app) => { +const customDomainController: FastifyPluginAsyncZod = async (app) => { app.post( '/', { diff --git a/packages/server/api/src/app/ee/global-connections/global-connection-module.ts b/packages/server/api/src/app/ee/global-connections/global-connection-module.ts index 07606695f76..36f07bae8f6 100644 --- a/packages/server/api/src/app/ee/global-connections/global-connection-module.ts +++ b/packages/server/api/src/app/ee/global-connections/global-connection-module.ts @@ -11,19 +11,20 @@ import { ApId, UpdateGlobalConnectionValueRequestBody, UpsertGlobalConnectionRequestBody, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { appConnectionService } from '../../app-connection/app-connection-service/app-connection-service' import { applicationEvents } from '../../helper/application-events' import { securityHelper } from '../../helper/security-helper' import { platformMustHaveFeatureEnabled } from '../authentication/ee-authorization' -export const globalConnectionModule: FastifyPluginAsyncTypebox = async (app) => { +export const globalConnectionModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.globalConnectionsEnabled)) await app.register(globalConnectionController, { prefix: '/v1/global-connections' }) } -const globalConnectionController: FastifyPluginAsyncTypebox = async (app) => { +const globalConnectionController: FastifyPluginAsyncZod = async (app) => { app.post('/', UpsertGlobalConnectionRequest, async (request, reply) => { const appConnection = await appConnectionService(request.log).upsert({ platformId: request.principal.platform.id, @@ -130,7 +131,7 @@ const UpdateGlobalConnectionRequest = { schema: { tags: ['global-connections'], body: UpdateGlobalConnectionValueRequestBody, - params: Type.Object({ + params: z.object({ id: ApId, }), security: [SERVICE_KEY_SECURITY_OPENAPI], @@ -157,12 +158,12 @@ const DeleteGlobalConnectionRequest = { }, schema: { tags: ['global-connections'], - params: Type.Object({ + params: z.object({ id: ApId, }), security: [SERVICE_KEY_SECURITY_OPENAPI], response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } diff --git a/packages/server/api/src/app/ee/license-keys/license-keys-controller.ts b/packages/server/api/src/app/ee/license-keys/license-keys-controller.ts index 08f6a40fb3f..ff0670f059b 100644 --- a/packages/server/api/src/app/ee/license-keys/license-keys-controller.ts +++ b/packages/server/api/src/app/ee/license-keys/license-keys-controller.ts @@ -1,10 +1,10 @@ import { securityAccess } from '@activepieces/server-common' import { ActivepiecesError, ErrorCode, isNil, VerifyLicenseKeyRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Type } from '@sinclair/typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { licenseKeysService } from './license-keys-service' -export const licenseKeysController: FastifyPluginAsyncTypebox = async (app) => { +export const licenseKeysController: FastifyPluginAsyncZod = async (app) => { app.get('/:licenseKey', GetLicenseKeyRequest, async (req) => { @@ -45,8 +45,8 @@ const GetLicenseKeyRequest = { security: securityAccess.public(), }, schema: { - params: Type.Object({ - licenseKey: Type.String(), + params: z.object({ + licenseKey: z.string(), }), }, } \ No newline at end of file diff --git a/packages/server/api/src/app/ee/license-keys/license-keys-module.ts b/packages/server/api/src/app/ee/license-keys/license-keys-module.ts index b56c9c606a8..a855e6707a4 100644 --- a/packages/server/api/src/app/ee/license-keys/license-keys-module.ts +++ b/packages/server/api/src/app/ee/license-keys/license-keys-module.ts @@ -1,6 +1,6 @@ import { exceptionHandler } from '@activepieces/server-common' import { isEmpty, isNil } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { SystemJobName } from '../../helper/system-jobs/common' import { systemJobHandlers } from '../../helper/system-jobs/job-handlers' import { systemJobsSchedule } from '../../helper/system-jobs/system-job' @@ -8,7 +8,7 @@ import { platformService } from '../../platform/platform.service' import { licenseKeysController } from './license-keys-controller' import { licenseKeysService } from './license-keys-service' -export const licenseKeysModule: FastifyPluginAsyncTypebox = async (app) => { +export const licenseKeysModule: FastifyPluginAsyncZod = async (app) => { systemJobHandlers.registerJobHandler(SystemJobName.TRIAL_TRACKER, async () => { const platforms = await platformService(app.log).getAll() for (const platform of platforms) { diff --git a/packages/server/api/src/app/ee/managed-authn/lib/external-token-extractor.ts b/packages/server/api/src/app/ee/managed-authn/lib/external-token-extractor.ts index 7ede2b02eea..bab4249ed46 100644 --- a/packages/server/api/src/app/ee/managed-authn/lib/external-token-extractor.ts +++ b/packages/server/api/src/app/ee/managed-authn/lib/external-token-extractor.ts @@ -1,6 +1,6 @@ import { ActivepiecesError, DefaultProjectRole, ErrorCode, isNil, PiecesFilterType, PlatformId, SigningKey, SigningKeyId } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' import { FastifyBaseLogger } from 'fastify' +import { z } from 'zod' import { JwtSignAlgorithm, jwtUtils } from '../../../helper/jwt-utils' import { projectRoleService } from '../../projects/project-role/project-role.service' import { signingKeyService } from '../../signing-key/signing-key-service' @@ -118,34 +118,32 @@ async function getProjectRole(payload: ExternalTokenPayload, platformId: Platfor } function externalTokenPayload() { - const v1 = Type.Object({ - externalUserId: Type.String(), - externalProjectId: Type.String(), - firstName: Type.String(), - lastName: Type.String(), + const v1 = z.object({ + externalUserId: z.string(), + externalProjectId: z.string(), + firstName: z.string(), + lastName: z.string(), }) - const v2 = Type.Composite([v1, - Type.Object({ - role: Type.Optional(Type.Enum(DefaultProjectRole)), - pieces: Type.Optional(Type.Object({ - filterType: Type.Enum(PiecesFilterType), - tags: Type.Optional(Type.Array(Type.String())), - })), - }), - ]) - - const v3 = Type.Composite([Type.Omit(v2, ['pieces']), Type.Object({ - version: Type.Literal('v3'), - piecesFilterType: Type.Optional(Type.Enum(PiecesFilterType)), - piecesTags: Type.Optional(Type.Array(Type.String())), - })]) - - return Type.Union([v2, v3]) + const v2 = v1.extend({ + role: z.nativeEnum(DefaultProjectRole).optional(), + pieces: z.object({ + filterType: z.nativeEnum(PiecesFilterType), + tags: z.array(z.string()).optional(), + }).optional(), + }) + + const v3 = v2.omit({ pieces: true }).extend({ + version: z.literal('v3'), + piecesFilterType: z.nativeEnum(PiecesFilterType).optional(), + piecesTags: z.array(z.string()).optional(), + }) + + return z.union([v2, v3]) } export const ExternalTokenPayload = externalTokenPayload() -export type ExternalTokenPayload = Static +export type ExternalTokenPayload = z.infer export type ExternalPrincipal = { platformId: string diff --git a/packages/server/api/src/app/ee/managed-authn/managed-authn-controller.ts b/packages/server/api/src/app/ee/managed-authn/managed-authn-controller.ts index effb8c4b119..0e68cc6af54 100644 --- a/packages/server/api/src/app/ee/managed-authn/managed-authn-controller.ts +++ b/packages/server/api/src/app/ee/managed-authn/managed-authn-controller.ts @@ -2,11 +2,11 @@ import { securityAccess } from '@activepieces/server-common' import { ApplicationEventName, AuthenticationResponse, ManagedAuthnRequestBody, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { applicationEvents } from '../../helper/application-events' import { managedAuthnService } from './managed-authn-service' -export const managedAuthnController: FastifyPluginAsyncTypebox = async ( +export const managedAuthnController: FastifyPluginAsyncZod = async ( app, ) => { app.post( diff --git a/packages/server/api/src/app/ee/managed-authn/managed-authn-module.ts b/packages/server/api/src/app/ee/managed-authn/managed-authn-module.ts index c7030db762e..0f511b2644d 100644 --- a/packages/server/api/src/app/ee/managed-authn/managed-authn-module.ts +++ b/packages/server/api/src/app/ee/managed-authn/managed-authn-module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { managedAuthnController } from './managed-authn-controller' -export const managedAuthnModule: FastifyPluginAsyncTypebox = async (app) => { +export const managedAuthnModule: FastifyPluginAsyncZod = async (app) => { await app.register(managedAuthnController, { prefix: '/v1/managed-authn' }) } diff --git a/packages/server/api/src/app/ee/oauth-apps/oauth-app.module.ts b/packages/server/api/src/app/ee/oauth-apps/oauth-app.module.ts index 2b055b11771..5d0b61c9429 100644 --- a/packages/server/api/src/app/ee/oauth-apps/oauth-app.module.ts +++ b/packages/server/api/src/app/ee/oauth-apps/oauth-app.module.ts @@ -4,19 +4,16 @@ import { ListOAuth2AppRequest, OAuthApp, PrincipalType, SeekPage, UpsertOAuth2AppRequest } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Static, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { oauthAppService } from './oauth-app.service' -export const oauthAppModule: FastifyPluginAsyncTypebox = async (app) => { +export const oauthAppModule: FastifyPluginAsyncZod = async (app) => { await app.register(oauthAppController, { prefix: '/v1/oauth-apps' }) } -const oauthAppController: FastifyPluginAsyncTypebox = async (app) => { +const oauthAppController: FastifyPluginAsyncZod = async (app) => { app.get( '/', { @@ -81,8 +78,8 @@ const oauthAppController: FastifyPluginAsyncTypebox = async (app) => { ) } -const GetIdParams = Type.Object({ - id: Type.String(), +const GetIdParams = z.object({ + id: z.string(), }) -type GetIdParams = Static +type GetIdParams = z.infer diff --git a/packages/server/api/src/app/ee/pieces/platform-piece-module.ts b/packages/server/api/src/app/ee/pieces/platform-piece-module.ts index bf0e73a2582..2ea4489b548 100644 --- a/packages/server/api/src/app/ee/pieces/platform-piece-module.ts +++ b/packages/server/api/src/app/ee/pieces/platform-piece-module.ts @@ -7,19 +7,16 @@ import { PrincipalType, SERVICE_KEY_SECURITY_OPENAPI, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - FastifyPluginCallbackTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod, FastifyPluginCallbackZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { pieceInstallService } from '../../pieces/piece-install-service' -export const platformPieceModule: FastifyPluginAsyncTypebox = async (app) => { +export const platformPieceModule: FastifyPluginAsyncZod = async (app) => { await app.register(platformPieceController, { prefix: '/v1/pieces' }) } -const platformPieceController: FastifyPluginCallbackTypebox = ( +const platformPieceController: FastifyPluginCallbackZod = ( app, _opts, done, @@ -50,7 +47,7 @@ const installPieceParams = { description: 'Add a piece to a platform', body: AddPieceRequestBody, response: { - [StatusCodes.CREATED]: Type.Object({}), + [StatusCodes.CREATED]: z.object({}), }, }, } diff --git a/packages/server/api/src/app/ee/platform-webhooks/platform-webhooks.controller.ts b/packages/server/api/src/app/ee/platform-webhooks/platform-webhooks.controller.ts index a8cfbf031aa..90eedb7e3ba 100644 --- a/packages/server/api/src/app/ee/platform-webhooks/platform-webhooks.controller.ts +++ b/packages/server/api/src/app/ee/platform-webhooks/platform-webhooks.controller.ts @@ -1,10 +1,11 @@ import { securityAccess } from '@activepieces/server-common' import { CreatePlatformEventDestinationRequestBody, EventDestination, ListPlatformEventDestinationsRequestBody, PrincipalType, SeekPage, TestPlatformEventDestinationRequestBody, UpdatePlatformEventDestinationRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { eventDestinationService } from '../../event-destinations/event-destinations.service' -export const platformWebhooksController: FastifyPluginAsyncTypebox = async (app) => { +export const platformWebhooksController: FastifyPluginAsyncZod = async (app) => { app.post('/', CreateEventDestinationRequest, async (req) => { return eventDestinationService(req.log).create(req.body, req.principal.platform.id) }) @@ -51,8 +52,8 @@ export const CreateEventDestinationRequest = { export const UpdateEventDestinationRequest = { schema: { body: UpdatePlatformEventDestinationRequestBody, - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, config: { @@ -79,8 +80,8 @@ export const ListEventDestinationsRequest = { export const DeleteEventDestinationRequest = { schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, config: { diff --git a/packages/server/api/src/app/ee/platform/admin/admin-platform.controller.ts b/packages/server/api/src/app/ee/platform/admin/admin-platform.controller.ts index acadff223da..9bce18f55c4 100644 --- a/packages/server/api/src/app/ee/platform/admin/admin-platform.controller.ts +++ b/packages/server/api/src/app/ee/platform/admin/admin-platform.controller.ts @@ -1,10 +1,10 @@ import { ErrorHandlingOptionsParam, PieceMetadata, PieceMetadataModel, WebhookRenewConfiguration } from '@activepieces/pieces-framework' import { AppSystemProp, securityAccess } from '@activepieces/server-common' import { AdminRetryRunsRequestBody, ApplyLicenseKeyByEmailRequestBody, ExactVersionType, IncreaseAICreditsForPlatformRequestBody, isNil, PackageType, PieceCategory, PieceType, TriggerStrategy, TriggerTestStrategy, WebhookHandshakeConfiguration } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Type } from '@sinclair/typebox' import { FastifyReply, FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { system } from '../../../helper/system/system' import { pieceMetadataService } from '../../../pieces/metadata/piece-metadata-service' import { dedicatedWorkers } from '../platform-plan/platform-dedicated-workers' @@ -25,12 +25,12 @@ async function checkCertainKeyPreHandler( } } -export const adminPlatformModule: FastifyPluginAsyncTypebox = async (app) => { +export const adminPlatformModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', checkCertainKeyPreHandler) await app.register(adminPlatformController, { prefix: '/v1/admin/' }) } -const adminPlatformController: FastifyPluginAsyncTypebox = async ( +const adminPlatformController: FastifyPluginAsyncZod = async ( app, ) => { @@ -71,10 +71,10 @@ const adminPlatformController: FastifyPluginAsyncTypebox = async ( const ConfigureDedicatedWorkersRequest = { schema: { - body: Type.Object({ - operation: Type.Union([Type.Literal('enable'), Type.Literal('disable')]), - platformId: Type.String(), - trustedEnvironment: Type.Boolean(), + body: z.object({ + operation: z.union([z.literal('enable'), z.literal('disable')]), + platformId: z.string(), + trustedEnvironment: z.boolean(), }), }, config: { @@ -111,42 +111,39 @@ const IncreaseAICreditsForPlatformRequest = { } -const Action = Type.Object({ - name: Type.String(), - displayName: Type.String(), - description: Type.String(), - requireAuth: Type.Boolean(), - props: Type.Unknown(), - errorHandlingOptions: Type.Optional(ErrorHandlingOptionsParam), +const Action = z.object({ + name: z.string(), + displayName: z.string(), + description: z.string(), + requireAuth: z.boolean(), + props: z.unknown(), + errorHandlingOptions: ErrorHandlingOptionsParam.optional(), }) -const Trigger = Type.Composite([ - Action, - Type.Object({ - renewConfiguration: Type.Optional(WebhookRenewConfiguration), - handshakeConfiguration: WebhookHandshakeConfiguration, - sampleData: Type.Optional(Type.Unknown()), - type: Type.Enum(TriggerStrategy), - testStrategy: Type.Enum(TriggerTestStrategy), - }), -]) +const Trigger = Action.extend({ + renewConfiguration: WebhookRenewConfiguration.optional(), + handshakeConfiguration: WebhookHandshakeConfiguration, + sampleData: z.unknown().optional(), + type: z.nativeEnum(TriggerStrategy), + testStrategy: z.nativeEnum(TriggerTestStrategy), +}) const CreatePieceRequest = { schema: { - body: Type.Object({ - name: Type.String(), - displayName: Type.String(), - logoUrl: Type.String(), - description: Type.Optional(Type.String()), + body: z.object({ + name: z.string(), + displayName: z.string(), + logoUrl: z.string(), + description: z.string().optional(), version: ExactVersionType, - auth: Type.Optional(Type.Any()), - authors: Type.Array(Type.String()), - categories: Type.Optional(Type.Array(Type.Enum(PieceCategory))), + auth: z.unknown().optional(), + authors: z.array(z.string()), + categories: z.array(z.nativeEnum(PieceCategory)).optional(), minimumSupportedRelease: ExactVersionType, maximumSupportedRelease: ExactVersionType, - actions: Type.Record(Type.String(), Action), - triggers: Type.Record(Type.String(), Trigger), - i18n: Type.Optional(Type.Record(Type.String(), Type.Record(Type.String(), Type.String()))), + actions: z.record(z.string(), Action), + triggers: z.record(z.string(), Trigger), + i18n: z.record(z.string(), z.record(z.string(), z.string())).optional(), }), }, config: { diff --git a/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.controller.ts b/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.controller.ts index ba83e87b5ea..73ed56720a0 100644 --- a/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.controller.ts +++ b/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.controller.ts @@ -1,12 +1,12 @@ import { securityAccess } from '@activepieces/server-common' import { ActivepiecesError, ApFlagId, CreateTemplateRequestBody, ErrorCode, TemplateType, UpdateTemplateRequestBody, UpdateTemplatesCategoriesFlagRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Type } from '@sinclair/typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { flagService } from '../../../../flags/flag.service' import { migrateFlowVersionTemplateList } from '../../../../flows/flow-version/migrations' import { templateService } from '../../../../template/template.service' -export const adminPlatformTemplatesCloudController: FastifyPluginAsyncTypebox = async ( +export const adminPlatformTemplatesCloudController: FastifyPluginAsyncZod = async ( app, ) => { @@ -89,8 +89,8 @@ const GetTemplateRequest = { security: securityAccess.public(), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } @@ -118,8 +118,8 @@ const UpdateTemplateRequest = { security: securityAccess.public(), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: UpdateTemplateRequestBody, }, @@ -130,8 +130,8 @@ const DeleteTemplateRequest = { security: securityAccess.public(), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } \ No newline at end of file diff --git a/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.module.ts b/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.module.ts index 076b330c4cd..dabda73bfc6 100644 --- a/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.module.ts +++ b/packages/server/api/src/app/ee/platform/admin/templates/admin-platform-templates-cloud.module.ts @@ -1,7 +1,7 @@ import { AppSystemProp } from '@activepieces/server-common' import { isNil } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { FastifyReply, FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { system } from '../../../../helper/system/system' import { adminPlatformTemplatesCloudController } from './admin-platform-templates-cloud.controller' @@ -22,7 +22,7 @@ async function checkTemplatesApiKeyPreHandler( } } -export const adminPlatformTemplatesCloudModule: FastifyPluginAsyncTypebox = async (app) => { +export const adminPlatformTemplatesCloudModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', checkTemplatesApiKeyPreHandler) await app.register(adminPlatformTemplatesCloudController, { prefix: '/v1/admin/templates' }) } diff --git a/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.controller.ts b/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.controller.ts index db374523cd9..57257fe1bd7 100644 --- a/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.controller.ts +++ b/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.controller.ts @@ -1,13 +1,14 @@ import { securityAccess } from '@activepieces/server-common' import { assertNotNullOrUndefined, CreateAICreditCheckoutSessionParamsSchema, CreateCheckoutSessionParamsSchema, PlatformBillingInformation, PrincipalType, STANDARD_CLOUD_PLAN, UpdateActiveFlowsAddonParamsSchema, UpdateAICreditsAutoTopUpParamsSchema } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { platformService } from '../../../platform/platform.service' import { platformAiCreditsService } from './platform-ai-credits.service' import { platformPlanService } from './platform-plan.service' import { stripeHelper } from './stripe-helper' -export const platformPlanController: FastifyPluginAsyncTypebox = async (fastify) => { +export const platformPlanController: FastifyPluginAsyncZod = async (fastify) => { fastify.get('/info', InfoRequest, async (request) => { const platform = await platformService(request.log).getOneOrThrow(request.principal.platform.id) @@ -117,8 +118,8 @@ const CreateAICreditCheckoutSessionRequest = { schema: { body: CreateAICreditCheckoutSessionParamsSchema, response: { - [StatusCodes.OK]: Type.Object({ - stripeCheckoutUrl: Type.String(), + [StatusCodes.OK]: z.object({ + stripeCheckoutUrl: z.string(), }), }, }, @@ -130,8 +131,8 @@ const CreateAICreditCheckoutSessionRequest = { const UpdateAICreditsAutoTopUpRequest = { schema: { body: UpdateAICreditsAutoTopUpParamsSchema, - [StatusCodes.OK]: Type.Object({ - stripeCheckoutUrl: Type.Optional(Type.String()), + [StatusCodes.OK]: z.object({ + stripeCheckoutUrl: z.string().optional(), }), }, config: { diff --git a/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.module.ts b/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.module.ts index b2d0a3c73b3..414ce7934b2 100644 --- a/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.module.ts +++ b/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.module.ts @@ -1,8 +1,8 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { platformPlanController } from './platform-plan.controller' import { stripeBillingController } from './stripe-billing.controller' -export const platformPlanModule: FastifyPluginAsyncTypebox = async (app) => { +export const platformPlanModule: FastifyPluginAsyncZod = async (app) => { await app.register(platformPlanController, { prefix: '/v1/platform-billing' }) await app.register(stripeBillingController, { prefix: '/v1/stripe-billing' }) } \ No newline at end of file diff --git a/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.service.ts b/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.service.ts index 6d575adc0ea..b056b9c3930 100644 --- a/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.service.ts +++ b/packages/server/api/src/app/ee/platform/platform-plan/platform-plan.service.ts @@ -78,7 +78,7 @@ export const platformPlanService = (log: FastifyBaseLogger) => ({ try { const upcomingInvoice = await stripe.invoices.createPreview({ - subscription: subscriptionId, + subscription: subscriptionId ?? undefined, }) return upcomingInvoice.amount_due ? upcomingInvoice.amount_due / 100 : 0 @@ -188,5 +188,5 @@ async function createInitialCustomer(user: UserWithMetaInformation, platformId: } type GetBillingAmountParams = { - subscriptionId?: string + subscriptionId?: string | null } \ No newline at end of file diff --git a/packages/server/api/src/app/ee/platform/platform-plan/stripe-billing.controller.ts b/packages/server/api/src/app/ee/platform/platform-plan/stripe-billing.controller.ts index 02b22321f34..e330a564631 100644 --- a/packages/server/api/src/app/ee/platform/platform-plan/stripe-billing.controller.ts +++ b/packages/server/api/src/app/ee/platform/platform-plan/stripe-billing.controller.ts @@ -1,7 +1,7 @@ import { AppSystemProp, exceptionHandler, securityAccess } from '@activepieces/server-common' import { ApSubscriptionStatus, isNil, PlanName, STANDARD_CLOUD_PLAN } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import Stripe from 'stripe' import { system } from '../../../helper/system/system' @@ -9,7 +9,7 @@ import { platformAiCreditsService } from './platform-ai-credits.service' import { ACTIVE_FLOW_PRICE_ID, platformPlanService } from './platform-plan.service' import { StripeCheckoutType, stripeHelper } from './stripe-helper' -export const stripeBillingController: FastifyPluginAsyncTypebox = async (fastify) => { +export const stripeBillingController: FastifyPluginAsyncZod = async (fastify) => { fastify.post( '/stripe/webhook', WebhookRequest, diff --git a/packages/server/api/src/app/ee/projects/platform-project-controller.ts b/packages/server/api/src/app/ee/projects/platform-project-controller.ts index e0c20017e23..b252f2a8285 100644 --- a/packages/server/api/src/app/ee/projects/platform-project-controller.ts +++ b/packages/server/api/src/app/ee/projects/platform-project-controller.ts @@ -16,9 +16,10 @@ import { TeamProjectsLimit, UpdateProjectPlatformRequest, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' import { FastifyBaseLogger } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { platformService } from '../../platform/platform.service' import { projectService } from '../../project/project-service' import { userService } from '../../user/user-service' @@ -26,7 +27,7 @@ import { platformProjectService } from './platform-project-service' const DEFAULT_LIMIT_SIZE = 50 -export const platformProjectController: FastifyPluginAsyncTypebox = async (app) => { +export const platformProjectController: FastifyPluginAsyncZod = async (app) => { app.get('/:id', GetProjectRequest, async (request) => { return platformProjectService(request.log).getWithPlanAndUsageOrThrow(request.projectId) @@ -189,8 +190,8 @@ const UpdateProjectRequest = { schema: { tags: ['projects'], security: [SERVICE_KEY_SECURITY_OPENAPI], - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), response: { [StatusCodes.OK]: ProjectWithLimits, @@ -232,8 +233,8 @@ const DeleteProjectRequest = { security: securityAccess.platformAdminOnly([PrincipalType.USER, PrincipalType.SERVICE]), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), tags: ['projects'], security: [SERVICE_KEY_SECURITY_OPENAPI], diff --git a/packages/server/api/src/app/ee/projects/platform-project-module.ts b/packages/server/api/src/app/ee/projects/platform-project-module.ts index e2d316b3337..382ff1ff2f5 100644 --- a/packages/server/api/src/app/ee/projects/platform-project-module.ts +++ b/packages/server/api/src/app/ee/projects/platform-project-module.ts @@ -1,9 +1,9 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { projectWorkerController } from '../../project/project-worker-controller' import { platformProjectController } from './platform-project-controller' import { usersProjectController } from './platform-user-project-controller' -export const platformProjectModule: FastifyPluginAsyncTypebox = async (app) => { +export const platformProjectModule: FastifyPluginAsyncZod = async (app) => { await app.register(platformProjectController, { prefix: '/v1/projects' }) await app.register(usersProjectController, { prefix: '/v1/users/projects' }) await app.register(projectWorkerController, { prefix: '/v1/worker/project' }) diff --git a/packages/server/api/src/app/ee/projects/platform-user-project-controller.ts b/packages/server/api/src/app/ee/projects/platform-user-project-controller.ts index 9c4551ac42c..24cd8da47db 100644 --- a/packages/server/api/src/app/ee/projects/platform-user-project-controller.ts +++ b/packages/server/api/src/app/ee/projects/platform-user-project-controller.ts @@ -4,19 +4,17 @@ import { PrincipalType, ProjectWithLimitsWithPlatform, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' import { FastifyBaseLogger } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import Paginator from '../../helper/pagination/paginator' import { platformService } from '../../platform/platform.service' import { platformUtils } from '../../platform/platform.utils' import { userService } from '../../user/user-service' import { platformProjectService } from './platform-project-service' -export const usersProjectController: FastifyPluginAsyncTypebox = async ( +export const usersProjectController: FastifyPluginAsyncZod = async ( fastify, ) => { @@ -60,7 +58,7 @@ const ListProjectsForPlatforms = { }, schema: { response: { - [StatusCodes.OK]: Type.Array(ProjectWithLimitsWithPlatform), + [StatusCodes.OK]: z.array(ProjectWithLimitsWithPlatform), }, }, } diff --git a/packages/server/api/src/app/ee/projects/project-members/project-member.controller.ts b/packages/server/api/src/app/ee/projects/project-members/project-member.controller.ts index 9a38f890e88..561a52ec296 100644 --- a/packages/server/api/src/app/ee/projects/project-members/project-member.controller.ts +++ b/packages/server/api/src/app/ee/projects/project-members/project-member.controller.ts @@ -9,15 +9,15 @@ import { SeekPage, SERVICE_KEY_SECURITY_OPENAPI, UpdateProjectMemberRoleRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Type } from '@sinclair/typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { ProjectMemberEntity } from './project-member.entity' import { projectMemberService } from './project-member.service' const DEFAULT_LIMIT_SIZE = 10 -export const projectMemberController: FastifyPluginAsyncTypebox = async ( +export const projectMemberController: FastifyPluginAsyncZod = async ( app, ) => { @@ -86,8 +86,8 @@ const UpdateProjectMemberRoleRequest = { ), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: UpdateProjectMemberRoleRequestBody, }, @@ -131,10 +131,10 @@ const DeleteProjectMemberRequest = { tags: ['project-members'], security: [SERVICE_KEY_SECURITY_OPENAPI], response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } diff --git a/packages/server/api/src/app/ee/projects/project-members/project-member.module.ts b/packages/server/api/src/app/ee/projects/project-members/project-member.module.ts index 8238bb2658a..617ea5f70fe 100644 --- a/packages/server/api/src/app/ee/projects/project-members/project-member.module.ts +++ b/packages/server/api/src/app/ee/projects/project-members/project-member.module.ts @@ -1,9 +1,9 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { entitiesMustBeOwnedByCurrentProject } from '../../../authentication/authorization' import { platformMustHaveFeatureEnabled } from '../../authentication/ee-authorization' import { projectMemberController } from './project-member.controller' -export const projectMemberModule: FastifyPluginAsyncTypebox = async (app) => { +export const projectMemberModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.projectRolesEnabled)) await app.register(projectMemberController, { diff --git a/packages/server/api/src/app/ee/projects/project-release/git-sync/git-helper.ts b/packages/server/api/src/app/ee/projects/project-release/git-sync/git-helper.ts index 5c3c85b592e..e7268cda52b 100644 --- a/packages/server/api/src/app/ee/projects/project-release/git-sync/git-helper.ts +++ b/packages/server/api/src/app/ee/projects/project-release/git-sync/git-helper.ts @@ -67,7 +67,7 @@ async function createGitRepoAndReturnPaths( ) await fs.mkdir(stateFolderPath, { recursive: true }) const keyPath = path.resolve(path.join('tmp', 'keys', gitRepo.id)) - await createOrGetSshKeyPath({ keyPath, sshPrivateKey: gitRepo.sshPrivateKey }) + await createOrGetSshKeyPath({ keyPath, sshPrivateKey: gitRepo.sshPrivateKey ?? '' }) const git = await initGitRepo(keyPath, gitRepo.remoteUrl, tmpFolder, gitRepo.branch) await git.pull('origin', gitRepo.branch) diff --git a/packages/server/api/src/app/ee/projects/project-release/git-sync/git-sync.module.ts b/packages/server/api/src/app/ee/projects/project-release/git-sync/git-sync.module.ts index 1afc0d5dc28..abcd5222a8d 100644 --- a/packages/server/api/src/app/ee/projects/project-release/git-sync/git-sync.module.ts +++ b/packages/server/api/src/app/ee/projects/project-release/git-sync/git-sync.module.ts @@ -4,12 +4,10 @@ import { GitRepoWithoutSensitiveData, Permission, PrincipalType, PushGitRepoRequest, SeekPage } from '@activepieces/shared' -import { - FastifyPluginCallbackTypebox, - Type, -} from '@fastify/type-provider-typebox' import { FastifyPluginAsync } from 'fastify' +import { FastifyPluginCallbackZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { entitiesMustBeOwnedByCurrentProject } from '../../../../authentication/authorization' import { platformMustHaveFeatureEnabled } from '../../../authentication/ee-authorization' import { GitRepoEntity } from './git-sync.entity' @@ -21,7 +19,7 @@ export const gitRepoModule: FastifyPluginAsync = async (app) => { await app.register(gitRepoController, { prefix: '/v1/git-repos' }) } -export const gitRepoController: FastifyPluginCallbackTypebox = ( +export const gitRepoController: FastifyPluginCallbackZod = ( app, _options, done, @@ -70,11 +68,11 @@ const DeleteRepoRequestSchema = { }, schema: { description: 'Delete a git repository information for a project.', - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } @@ -91,11 +89,11 @@ const PushRepoRequestSchema = { description: 'Push single flow to the git repository', body: PushGitRepoRequest, - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), response: { - [StatusCodes.OK]: Type.Never(), + [StatusCodes.OK]: z.never(), }, }, } @@ -123,8 +121,8 @@ const ListRepoRequestSchema = { }), }, schema: { - querystring: Type.Object({ - projectId: Type.String(), + querystring: z.object({ + projectId: z.string(), }), response: { [StatusCodes.OK]: SeekPage(GitRepoWithoutSensitiveData), diff --git a/packages/server/api/src/app/ee/projects/project-release/project-release.controller.ts b/packages/server/api/src/app/ee/projects/project-release/project-release.controller.ts index be56e046c9d..0a3e5243d2f 100644 --- a/packages/server/api/src/app/ee/projects/project-release/project-release.controller.ts +++ b/packages/server/api/src/app/ee/projects/project-release/project-release.controller.ts @@ -1,13 +1,14 @@ import { ProjectResourceType, securityAccess } from '@activepieces/server-common' import { ApId, ApplicationEventName, CreateProjectReleaseRequestBody, DiffReleaseRequest, ListProjectReleasesRequest, PrincipalType, ProjectRelease, SeekPage, SERVICE_KEY_SECURITY_OPENAPI } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { applicationEvents } from '../../../helper/application-events' import { platformService } from '../../../platform/platform.service' import { ProjectReleaseEntity } from './project-release.entity' import { projectReleaseService } from './project-release.service' -export const projectReleaseController: FastifyPluginAsyncTypebox = async (app) => { +export const projectReleaseController: FastifyPluginAsyncZod = async (app) => { app.get('/:id', GetProjectReleaseRequest, async (req) => { const release = await projectReleaseService.getOneOrThrow({ @@ -64,7 +65,7 @@ const GetProjectReleaseRequest = { ), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), }, diff --git a/packages/server/api/src/app/ee/projects/project-release/project-release.module.ts b/packages/server/api/src/app/ee/projects/project-release/project-release.module.ts index 12cc5a02679..5a0d5e9b908 100644 --- a/packages/server/api/src/app/ee/projects/project-release/project-release.module.ts +++ b/packages/server/api/src/app/ee/projects/project-release/project-release.module.ts @@ -1,7 +1,7 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { projectReleaseController } from './project-release.controller' -export const projectReleaseModule: FastifyPluginAsyncTypebox = async (app) => { +export const projectReleaseModule: FastifyPluginAsyncZod = async (app) => { await app.register(projectReleaseController, { prefix: '/v1/project-releases' }) } \ No newline at end of file diff --git a/packages/server/api/src/app/ee/projects/project-release/project-state/project-state.service.ts b/packages/server/api/src/app/ee/projects/project-release/project-state/project-state.service.ts index cc5aa1d41d0..8c4507f1bf5 100644 --- a/packages/server/api/src/app/ee/projects/project-release/project-state/project-state.service.ts +++ b/packages/server/api/src/app/ee/projects/project-release/project-state/project-state.service.ts @@ -1,5 +1,4 @@ import { AppConnectionScope, AppConnectionStatus, AppConnectionType, ConnectionOperationType, ConnectionState, DiffState, FieldState, FieldType, FileCompression, FileId, FileType, FlowAction, FlowProjectOperationType, FlowState, FlowStatus, FlowSyncError, isNil, PopulatedFlow, PopulatedTable, ProjectId, ProjectState, TableOperationType, TableState } from '@activepieces/shared' -import { Value } from '@sinclair/typebox/value' import { FastifyBaseLogger } from 'fastify' import { appConnectionService } from '../../../../app-connection/app-connection-service/app-connection-service' import { fileService } from '../../../../file/file.service' @@ -215,8 +214,8 @@ export const projectStateService = (log: FastifyBaseLogger) => ({ externalId: flow.externalId ?? flow.id, version: await flowMigrations.apply(flow.version), } - const cleanedFlowState = Value.Clean(FlowState, flowState) as FlowState - cleanedFlowState.version.trigger.nextAction = isNil(cleanedFlowState.version.trigger.nextAction) ? undefined : Value.Clean(FlowAction, cleanedFlowState.version.trigger.nextAction) + const cleanedFlowState = FlowState.parse(flowState) + cleanedFlowState.version.trigger.nextAction = isNil(cleanedFlowState.version.trigger.nextAction) ? undefined : FlowAction.parse(cleanedFlowState.version.trigger.nextAction) return cleanedFlowState }, getTableState(table: PopulatedTable): TableState { @@ -232,7 +231,7 @@ export const projectStateService = (log: FastifyBaseLogger) => ({ name: table.name, fields, } - return Value.Clean(TableState, tableState) as TableState + return TableState.parse(tableState) }, }) diff --git a/packages/server/api/src/app/ee/projects/project-role/project-role.controller.ts b/packages/server/api/src/app/ee/projects/project-role/project-role.controller.ts index 33c89bb6e47..d047707e01a 100644 --- a/packages/server/api/src/app/ee/projects/project-role/project-role.controller.ts +++ b/packages/server/api/src/app/ee/projects/project-role/project-role.controller.ts @@ -1,7 +1,8 @@ import { securityAccess } from '@activepieces/server-common' import { ApId, ApplicationEventName, CreateProjectRoleRequestBody, ListProjectMembersForProjectRoleRequestQuery, PrincipalType, ProjectMemberWithUser, ProjectRole, SeekPage, SERVICE_KEY_SECURITY_OPENAPI, UpdateProjectRoleRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { applicationEvents } from '../../../helper/application-events' import { platformMustHaveFeatureEnabled } from '../../authentication/ee-authorization' import { projectMemberService } from '../project-members/project-member.service' @@ -9,7 +10,7 @@ import { projectRoleService } from './project-role.service' const DEFAULT_LIMIT_SIZE = 10 -export const projectRoleController: FastifyPluginAsyncTypebox = async (app) => { +export const projectRoleController: FastifyPluginAsyncZod = async (app) => { app.get('/:id', GetProjectRoleRequest, async (req) => { return projectRoleService.getOneOrThrowById({ @@ -87,7 +88,7 @@ const GetProjectRoleRequest = { security: securityAccess.publicPlatform([PrincipalType.USER, PrincipalType.SERVICE]), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), }, @@ -122,7 +123,7 @@ const UpdateProjectRoleRequest = { }, schema: { body: UpdateProjectRoleRequestBody, - params: Type.Object({ + params: z.object({ id: ApId, }), response: { @@ -136,11 +137,11 @@ const DeleteProjectRoleRequest = { security: securityAccess.platformAdminOnly([PrincipalType.USER, PrincipalType.SERVICE]), }, schema: { - params: Type.Object({ - name: Type.String(), + params: z.object({ + name: z.string(), }), response: { - [StatusCodes.NO_CONTENT]: Type.Null(), + [StatusCodes.NO_CONTENT]: z.null(), }, }, } @@ -152,7 +153,7 @@ const ListProjectMembersForProjectRoleRequest = { schema: { tags: ['project-members'], security: [SERVICE_KEY_SECURITY_OPENAPI], - params: Type.Object({ + params: z.object({ id: ApId, }), querystring: ListProjectMembersForProjectRoleRequestQuery, diff --git a/packages/server/api/src/app/ee/projects/project-role/project-role.module.ts b/packages/server/api/src/app/ee/projects/project-role/project-role.module.ts index 22b0faf80e9..31ad8f4d197 100644 --- a/packages/server/api/src/app/ee/projects/project-role/project-role.module.ts +++ b/packages/server/api/src/app/ee/projects/project-role/project-role.module.ts @@ -1,7 +1,7 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { projectRoleController } from './project-role.controller' -export const projectRoleModule: FastifyPluginAsyncTypebox = async (app) => { +export const projectRoleModule: FastifyPluginAsyncZod = async (app) => { await app.register(projectRoleController, { prefix: '/v1/project-roles' }) } \ No newline at end of file diff --git a/packages/server/api/src/app/ee/scim/scim-discovery-controller.ts b/packages/server/api/src/app/ee/scim/scim-discovery-controller.ts index c747679b3b7..ea2beb6b704 100644 --- a/packages/server/api/src/app/ee/scim/scim-discovery-controller.ts +++ b/packages/server/api/src/app/ee/scim/scim-discovery-controller.ts @@ -7,10 +7,10 @@ import { SCIM_SERVICE_PROVIDER_CONFIG_SCHEMA, SCIM_USER_SCHEMA, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' -export const scimDiscoveryController: FastifyPluginAsyncTypebox = async (app) => { +export const scimDiscoveryController: FastifyPluginAsyncZod = async (app) => { app.get('/ServiceProviderConfig', ServiceProviderConfigRequest, async (_request, reply) => { return reply.status(StatusCodes.OK).send({ diff --git a/packages/server/api/src/app/ee/scim/scim-group-controller.ts b/packages/server/api/src/app/ee/scim/scim-group-controller.ts index b46cab79349..2890cf0ddeb 100644 --- a/packages/server/api/src/app/ee/scim/scim-group-controller.ts +++ b/packages/server/api/src/app/ee/scim/scim-group-controller.ts @@ -7,11 +7,11 @@ import { ScimPatchRequest, ScimResourceId, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { scimGroupService } from './scim-group-service' -export const scimGroupController: FastifyPluginAsyncTypebox = async (app) => { +export const scimGroupController: FastifyPluginAsyncZod = async (app) => { app.get('/', ListGroupsRequest, async (request, reply) => { const platformId = request.principal.platform.id diff --git a/packages/server/api/src/app/ee/scim/scim-module.ts b/packages/server/api/src/app/ee/scim/scim-module.ts index 96729df6112..005c5d72b95 100644 --- a/packages/server/api/src/app/ee/scim/scim-module.ts +++ b/packages/server/api/src/app/ee/scim/scim-module.ts @@ -1,10 +1,10 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { platformMustHaveFeatureEnabled } from '../authentication/ee-authorization' import { scimDiscoveryController } from './scim-discovery-controller' import { scimGroupController } from './scim-group-controller' import { scimUserController } from './scim-user-controller' -export const scimModule: FastifyPluginAsyncTypebox = async (app) => { +export const scimModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.scimEnabled)) app.addContentTypeParser('application/scim+json', { parseAs: 'string' }, function (_req, body, done) { try { diff --git a/packages/server/api/src/app/ee/scim/scim-user-controller.ts b/packages/server/api/src/app/ee/scim/scim-user-controller.ts index c05cff713ec..c7d82780960 100644 --- a/packages/server/api/src/app/ee/scim/scim-user-controller.ts +++ b/packages/server/api/src/app/ee/scim/scim-user-controller.ts @@ -7,11 +7,11 @@ import { ScimPatchRequest, ScimResourceId, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { scimUserService } from './scim-user-service' -export const scimUserController: FastifyPluginAsyncTypebox = async (app) => { +export const scimUserController: FastifyPluginAsyncZod = async (app) => { app.get('/', ListUsersRequest, async (request, reply) => { const platformId = request.principal.platform.id const result = await scimUserService(request.log).list({ diff --git a/packages/server/api/src/app/ee/secret-managers/secret-managers.controller.ts b/packages/server/api/src/app/ee/secret-managers/secret-managers.controller.ts index a0865ce9f7e..7e4e7fee407 100644 --- a/packages/server/api/src/app/ee/secret-managers/secret-managers.controller.ts +++ b/packages/server/api/src/app/ee/secret-managers/secret-managers.controller.ts @@ -1,10 +1,10 @@ import { securityAccess } from '@activepieces/server-common' import { ConnectSecretManagerRequestSchema, DisconnectSecretManagerRequestSchema, PrincipalType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { secretManagerCache } from './secret-manager-cache' import { secretManagersService } from './secret-managers.service' -export const secretManagersController: FastifyPluginAsyncTypebox = async (app) => { +export const secretManagersController: FastifyPluginAsyncZod = async (app) => { const service = secretManagersService(app.log) app.get('/', ListSecretManagers, async (request) => { diff --git a/packages/server/api/src/app/ee/secret-managers/secret-managers.module.ts b/packages/server/api/src/app/ee/secret-managers/secret-managers.module.ts index a1b47b323db..cb198afed7c 100644 --- a/packages/server/api/src/app/ee/secret-managers/secret-managers.module.ts +++ b/packages/server/api/src/app/ee/secret-managers/secret-managers.module.ts @@ -1,8 +1,8 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { platformMustHaveFeatureEnabled } from '../authentication/ee-authorization' import { secretManagersController } from './secret-managers.controller' -export const secretManagersModule: FastifyPluginAsyncTypebox = async (app) => { +export const secretManagersModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.secretManagersEnabled)) await app.register(secretManagersController, { prefix: '/v1/secret-managers' }) } diff --git a/packages/server/api/src/app/ee/signing-key/signing-key-controller.ts b/packages/server/api/src/app/ee/signing-key/signing-key-controller.ts index 1c98a2518e1..b5c25c6f7d1 100644 --- a/packages/server/api/src/app/ee/signing-key/signing-key-controller.ts +++ b/packages/server/api/src/app/ee/signing-key/signing-key-controller.ts @@ -7,15 +7,13 @@ import { ActivepiecesError, AddSigningKeyRequestBody, isNil, PrincipalType, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { applicationEvents } from '../../helper/application-events' import { signingKeyService } from './signing-key-service' -export const signingKeyController: FastifyPluginAsyncTypebox = async (app) => { +export const signingKeyController: FastifyPluginAsyncZod = async (app) => { app.post('/', AddSigningKeyRequest, async (req, res) => { const platformId = req.principal.platform.id const newSigningKey = await signingKeyService.add({ @@ -88,7 +86,7 @@ const GetSigningKeyRequest = { security: securityAccess.platformAdminOnly([PrincipalType.USER]), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), }, @@ -99,7 +97,7 @@ const DeleteSigningKeyRequest = { security: securityAccess.platformAdminOnly([PrincipalType.USER]), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), }, diff --git a/packages/server/api/src/app/ee/signing-key/signing-key-module.ts b/packages/server/api/src/app/ee/signing-key/signing-key-module.ts index 983b67787e8..1cbcf28f04a 100644 --- a/packages/server/api/src/app/ee/signing-key/signing-key-module.ts +++ b/packages/server/api/src/app/ee/signing-key/signing-key-module.ts @@ -1,8 +1,8 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { platformMustHaveFeatureEnabled } from '../authentication/ee-authorization' import { signingKeyController } from './signing-key-controller' -export const signingKeyModule: FastifyPluginAsyncTypebox = async (app) => { +export const signingKeyModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preHandler', platformMustHaveFeatureEnabled((platform) => platform.plan.embeddingEnabled)) await app.register(signingKeyController, { prefix: '/v1/signing-keys' }) } diff --git a/packages/server/api/src/app/ee/users/user.module.ts b/packages/server/api/src/app/ee/users/user.module.ts index 81ff6decf37..bb7fd891034 100644 --- a/packages/server/api/src/app/ee/users/user.module.ts +++ b/packages/server/api/src/app/ee/users/user.module.ts @@ -1,7 +1,7 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { usersController } from './users-controller' -export const userModule: FastifyPluginAsyncTypebox = async (app) => { +export const userModule: FastifyPluginAsyncZod = async (app) => { await app.register(usersController, { prefix: '/v1/users' }) } diff --git a/packages/server/api/src/app/ee/users/users-controller.ts b/packages/server/api/src/app/ee/users/users-controller.ts index 9ca5505e433..77d0f332770 100644 --- a/packages/server/api/src/app/ee/users/users-controller.ts +++ b/packages/server/api/src/app/ee/users/users-controller.ts @@ -10,13 +10,14 @@ import { UpdateMeResponse, UserWithBadges, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { userIdentityService } from '../../authentication/user-identity/user-identity-service' import { fileService } from '../../file/file.service' import { userService } from '../../user/user-service' -export const usersController: FastifyPluginAsyncTypebox = async (app) => { +export const usersController: FastifyPluginAsyncZod = async (app) => { app.get('/:id', GetUserByIdRequest, async (req): Promise => { const userId = req.params.id const platformId = req.principal.platform.id @@ -59,7 +60,7 @@ export const usersController: FastifyPluginAsyncTypebox = async (app) => { const GetUserByIdRequest = { schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), response: { @@ -77,8 +78,8 @@ const UpdateMeRequest = { }, schema: { consumes: ['multipart/form-data'], - body: Type.Object({ - profilePicture: Type.Optional(ApMultipartFile), + body: z.object({ + profilePicture: ApMultipartFile.optional(), }), response: { [StatusCodes.OK]: UpdateMeResponse, @@ -89,8 +90,8 @@ const UpdateMeRequest = { const DeleteProfilePictureRequest = { schema: { response: { - [StatusCodes.OK]: Type.Object({ - success: Type.Boolean(), + [StatusCodes.OK]: z.object({ + success: z.boolean(), }), }, }, diff --git a/packages/server/api/src/app/file/file.module.ts b/packages/server/api/src/app/file/file.module.ts index f7256a1630b..242d952f766 100644 --- a/packages/server/api/src/app/file/file.module.ts +++ b/packages/server/api/src/app/file/file.module.ts @@ -1,5 +1,5 @@ import { FileType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { entitiesMustBeOwnedByCurrentProject } from '../authentication/authorization' import { SystemJobName } from '../helper/system-jobs/common' import { systemJobHandlers } from '../helper/system-jobs/job-handlers' @@ -7,7 +7,7 @@ import { systemJobsSchedule } from '../helper/system-jobs/system-job' import { fileService } from './file.service' import { stepFileController } from './step-file/step-file.controller' -export const fileModule: FastifyPluginAsyncTypebox = async (app) => { +export const fileModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) systemJobHandlers.registerJobHandler(SystemJobName.FILE_CLEANUP_TRIGGER, async () => fileService(app.log).deleteStaleBulk([FileType.FLOW_RUN_LOG, FileType.FLOW_STEP_FILE, FileType.TRIGGER_EVENT_FILE, FileType.TRIGGER_PAYLOAD])) await systemJobsSchedule(app.log).upsertJob({ diff --git a/packages/server/api/src/app/file/file.service.ts b/packages/server/api/src/app/file/file.service.ts index 1245e0d55c7..1509441f808 100644 --- a/packages/server/api/src/app/file/file.service.ts +++ b/packages/server/api/src/app/file/file.service.ts @@ -138,9 +138,9 @@ export const fileService = (log: FastifyBaseLogger) => ({ compression: file.compression, }) return { - metadata: file.metadata, + metadata: file.metadata ?? undefined, data, - fileName: file.fileName, + fileName: file.fileName ?? undefined, } }, async deleteStaleBulk(types: FileType[]) { diff --git a/packages/server/api/src/app/file/step-file/step-file.controller.ts b/packages/server/api/src/app/file/step-file/step-file.controller.ts index e024d78848f..3ca4b48a82d 100644 --- a/packages/server/api/src/app/file/step-file/step-file.controller.ts +++ b/packages/server/api/src/app/file/step-file/step-file.controller.ts @@ -7,10 +7,10 @@ import { FileType, StepFileUpsertRequest, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Type } from '@sinclair/typebox' import { FastifyBaseLogger } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { jwtUtils } from '../../helper/jwt-utils' import { system } from '../../helper/system/system' import { projectService } from '../../project/project-service' @@ -20,7 +20,7 @@ import { stepFileService } from './step-file.service' const useS3SignedUrls = system.getBoolean(AppSystemProp.S3_USE_SIGNED_URLS) -export const stepFileController: FastifyPluginAsyncTypebox = async (app) => { +export const stepFileController: FastifyPluginAsyncZod = async (app) => { app.get('/signed', SignedFileRequest, async (request, reply) => { const file = await getFileByToken(request.query.token, request.log) @@ -89,8 +89,8 @@ const SignedFileRequest = { security: securityAccess.public(), }, schema: { - querystring: Type.Object({ - token: Type.String(), + querystring: z.object({ + token: z.string(), }), }, } diff --git a/packages/server/api/src/app/file/step-file/step-file.service.ts b/packages/server/api/src/app/file/step-file/step-file.service.ts index f261b6bb36a..944018255a7 100644 --- a/packages/server/api/src/app/file/step-file/step-file.service.ts +++ b/packages/server/api/src/app/file/step-file/step-file.service.ts @@ -31,7 +31,7 @@ export const stepFileService = (log: FastifyBaseLogger) => ({ size: params.contentLength, }) return { - uploadUrl: await constructUploadUrl(log, file.s3Key, params.data, params.contentLength), + uploadUrl: await constructUploadUrl(log, file.s3Key ?? undefined, params.data, params.contentLength), url: await constructDownloadUrl(params.platformId, file), } }, diff --git a/packages/server/api/src/app/flags/flag.module.ts b/packages/server/api/src/app/flags/flag.module.ts index ae445805054..8f06953fd9d 100644 --- a/packages/server/api/src/app/flags/flag.module.ts +++ b/packages/server/api/src/app/flags/flag.module.ts @@ -1,14 +1,14 @@ import { securityAccess } from '@activepieces/server-common' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { flagService } from './flag.service' import { flagHooks } from './flags.hooks' -export const flagModule: FastifyPluginAsyncTypebox = async (app) => { +export const flagModule: FastifyPluginAsyncZod = async (app) => { await app.register(flagController, { prefix: '/v1/flags' }) } -export const flagController: FastifyPluginAsyncTypebox = async (app) => { +export const flagController: FastifyPluginAsyncZod = async (app) => { app.get( '/', { diff --git a/packages/server/api/src/app/flows/flow-run/flow-run-controller.ts b/packages/server/api/src/app/flows/flow-run/flow-run-controller.ts index fd90a3435ec..473d6ec2c26 100644 --- a/packages/server/api/src/app/flows/flow-run/flow-run-controller.ts +++ b/packages/server/api/src/app/flows/flow-run/flow-run-controller.ts @@ -18,17 +18,15 @@ import { SeekPage, SERVICE_KEY_SECURITY_OPENAPI, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { FlowRunEntity } from './flow-run-entity' import { flowRunService } from './flow-run-service' const DEFAULT_PAGING_LIMIT = 10 -export const flowRunController: FastifyPluginAsyncTypebox = async (app) => { +export const flowRunController: FastifyPluginAsyncZod = async (app) => { app.get('/', ListRequest, async (request) => { return flowRunService(request.log).list({ projectId: request.query.projectId, @@ -154,8 +152,8 @@ export const flowRunController: FastifyPluginAsyncTypebox = async (app) => { } -const FlowRunFiltered = Type.Omit(FlowRun, ['pauseMetadata']) -const FlowRunFilteredWithNoSteps = Type.Omit(FlowRun, ['pauseMetadata', 'steps']) +const FlowRunFiltered = FlowRun.omit({ pauseMetadata: true }) +const FlowRunFilteredWithNoSteps = FlowRun.omit({ pauseMetadata: true, steps: true }) const ListRequest = { config: { @@ -189,7 +187,7 @@ const GetRequest = { tags: ['flow-runs'], description: 'Get Flow Run', security: [SERVICE_KEY_SECURITY_OPENAPI], - params: Type.Object({ + params: z.object({ id: ApId, }), response: { @@ -203,9 +201,9 @@ const ResumeFlowRunRequest = { security: securityAccess.unscoped(ALL_PRINCIPAL_TYPES), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, - requestId: Type.String(), + requestId: z.string(), }), }, } @@ -220,7 +218,7 @@ const RetryFlowRequest = { }), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), body: RetryFlowRequestBody, diff --git a/packages/server/api/src/app/flows/flow-run/logs/flow-run-logs-controller.ts b/packages/server/api/src/app/flows/flow-run/logs/flow-run-logs-controller.ts index 54e1741764f..0223e0499ee 100644 --- a/packages/server/api/src/app/flows/flow-run/logs/flow-run-logs-controller.ts +++ b/packages/server/api/src/app/flows/flow-run/logs/flow-run-logs-controller.ts @@ -1,20 +1,20 @@ import { securityAccess } from '@activepieces/server-common' import { ActivepiecesError, ALL_PRINCIPAL_TYPES, assertNotNullOrUndefined, ErrorCode, FileType, isNil, UploadLogsBehavior, UploadLogsQueryParams } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Type } from '@sinclair/typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { fileService } from '../../../file/file.service' import { s3Helper } from '../../../file/s3-helper' import { flowRunLogsService } from './flow-run-logs-service' -export const flowRunLogsController: FastifyPluginAsyncTypebox = async (app) => { +export const flowRunLogsController: FastifyPluginAsyncZod = async (app) => { app.put('/logs', { config: { security: securityAccess.unscoped(ALL_PRINCIPAL_TYPES), }, schema: { querystring: UploadLogsQueryParams, - body: Type.Unknown(), + body: z.unknown(), }, onRequest: async (request, reply) => { const { token } = request.query as { token: string } diff --git a/packages/server/api/src/app/flows/flow-version/flow-version-validator-util.ts b/packages/server/api/src/app/flows/flow-version/flow-version-validator-util.ts index 359ea1eaf85..810b1af6638 100644 --- a/packages/server/api/src/app/flows/flow-version/flow-version-validator-util.ts +++ b/packages/server/api/src/app/flows/flow-version/flow-version-validator-util.ts @@ -16,17 +16,14 @@ import { RouterActionSettingsWithValidation, UserId, } from '@activepieces/shared' -import { Type } from '@sinclair/typebox' -import { TypeCompiler } from '@sinclair/typebox/compiler' import { FastifyBaseLogger } from 'fastify' +import { z } from 'zod' import { pieceMetadataService } from '../../pieces/metadata/piece-metadata-service' -const loopSettingsValidator = TypeCompiler.Compile(Type.Intersect([LoopOnItemsActionSettings, Type.Object({ - items: Type.String({ - minLength: 1, - }), -})])) -const routerSettingsValidator = TypeCompiler.Compile(RouterActionSettingsWithValidation) +const loopSettingsValidator = LoopOnItemsActionSettings.and(z.object({ + items: z.string().min(1), +})) +const routerSettingsValidator = RouterActionSettingsWithValidation type ValidationResult = { valid: boolean @@ -41,9 +38,9 @@ export const flowVersionValidationUtil = (log: FastifyBaseLogger) => ({ case FlowOperationType.ADD_ACTION: switch (clonedRequest.request.action.type) { case FlowActionType.LOOP_ON_ITEMS: - clonedRequest.request.action.valid = loopSettingsValidator.Check( + clonedRequest.request.action.valid = loopSettingsValidator.safeParse( clonedRequest.request.action.settings, - ) + ).success break case FlowActionType.PIECE: { const result = await validateAction( @@ -56,9 +53,9 @@ export const flowVersionValidationUtil = (log: FastifyBaseLogger) => ({ break } case FlowActionType.ROUTER: - clonedRequest.request.action.valid = routerSettingsValidator.Check( + clonedRequest.request.action.valid = routerSettingsValidator.safeParse( clonedRequest.request.action.settings, - ) + ).success break case FlowActionType.CODE: { break @@ -68,9 +65,9 @@ export const flowVersionValidationUtil = (log: FastifyBaseLogger) => ({ case FlowOperationType.UPDATE_ACTION: switch (clonedRequest.request.type) { case FlowActionType.LOOP_ON_ITEMS: - clonedRequest.request.valid = loopSettingsValidator.Check( + clonedRequest.request.valid = loopSettingsValidator.safeParse( clonedRequest.request.settings, - ) + ).success break case FlowActionType.PIECE: { const result = await validateAction( @@ -83,9 +80,9 @@ export const flowVersionValidationUtil = (log: FastifyBaseLogger) => ({ break } case FlowActionType.ROUTER: - clonedRequest.request.valid = routerSettingsValidator.Check( + clonedRequest.request.valid = routerSettingsValidator.safeParse( clonedRequest.request.settings, - ) + ).success break case FlowActionType.CODE: { break @@ -152,7 +149,7 @@ async function validateAction({ settings, platformId, log }: ValidateActionParam } const props = { ...action.props } - + return validateProps(props, settings.input, piece.auth, action.requireAuth) } @@ -178,8 +175,8 @@ async function validateTrigger({ settings, platformId, log }: ValidateTriggerPar if (isNil(trigger)) { return { valid: false } } - const props = { ...trigger.props } - + const props = { ...trigger.props } + return validateProps(props, settings.input, piece.auth, trigger.requireAuth) } @@ -190,13 +187,13 @@ function validateProps( //if require auth is not defined, we default to true, because at first all auth was required requireAuth: boolean | undefined = true, ): ValidationResult { - const propsWithAuthSchema = piecePropertiesUtils.buildSchema(props, auth, requireAuth) - const inputValidator = TypeCompiler.Compile(propsWithAuthSchema) + const propsSchema = piecePropertiesUtils.buildSchema(props, auth, requireAuth) + const schemaKeys = Object.keys((propsSchema as z.ZodObject).shape) const cleanInput = !isNil(input) ? Object.fromEntries( - Object.keys(propsWithAuthSchema.properties).map(key => [key, input?.[key]]), + schemaKeys.map(key => [key, input?.[key]]), ) : undefined return { - valid: inputValidator.Check(cleanInput), + valid: propsSchema.safeParse(cleanInput).success, cleanInput, } } diff --git a/packages/server/api/src/app/flows/flow.module.ts b/packages/server/api/src/app/flows/flow.module.ts index 57997e561f7..347e2a66cbc 100644 --- a/packages/server/api/src/app/flows/flow.module.ts +++ b/packages/server/api/src/app/flows/flow.module.ts @@ -1,5 +1,5 @@ import { EmitTestStepProgressRequest, PrincipalType, TestFlowRunRequestBody, UpdateRunProgressRequest, WebsocketClientEvent, WebsocketServerEvent } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { websocketService } from '../core/websockets.service' import { flowWorkerController } from '../workers/worker-controller' import { flowVersionController } from './flow/flow-version.controller' @@ -7,7 +7,7 @@ import { flowController } from './flow/flow.controller' import { flowRunService } from './flow-run/flow-run-service' import { sampleDataController } from './step-run/sample-data.controller' -export const flowModule: FastifyPluginAsyncTypebox = async (app) => { +export const flowModule: FastifyPluginAsyncZod = async (app) => { await app.register(flowWorkerController, { prefix: '/v1/worker/flows' }) await app.register(flowVersionController, { prefix: '/v1/flows' }) await app.register(flowController, { prefix: '/v1/flows' }) diff --git a/packages/server/api/src/app/flows/flow/flow-version.controller.ts b/packages/server/api/src/app/flows/flow/flow-version.controller.ts index cd644e06bad..9986b54eb72 100644 --- a/packages/server/api/src/app/flows/flow/flow-version.controller.ts +++ b/packages/server/api/src/app/flows/flow/flow-version.controller.ts @@ -1,17 +1,15 @@ import { ProjectResourceType, securityAccess } from '@activepieces/server-common' import { FlowVersionMetadata, ListFlowVersionRequest, PrincipalType, SeekPage } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { flowVersionService } from '../flow-version/flow-version.service' import { FlowEntity } from './flow.entity' import { flowService } from './flow.service' const DEFAULT_PAGE_SIZE = 10 -export const flowVersionController: FastifyPluginAsyncTypebox = async (fastify) => { +export const flowVersionController: FastifyPluginAsyncZod = async (fastify) => { fastify.get('/:flowId/versions', ListVersionParams, async (request) => { const flow = await flowService(request.log).getOneOrThrow({ @@ -39,8 +37,8 @@ const ListVersionParams = { }), }, schema: { - params: Type.Object({ - flowId: Type.String(), + params: z.object({ + flowId: z.string(), }), querystring: ListFlowVersionRequest, response: { diff --git a/packages/server/api/src/app/flows/flow/flow.controller.ts b/packages/server/api/src/app/flows/flow/flow.controller.ts index 77fceffbfd1..df2597dd41f 100644 --- a/packages/server/api/src/app/flows/flow/flow.controller.ts +++ b/packages/server/api/src/app/flows/flow/flow.controller.ts @@ -21,12 +21,10 @@ import { ActivepiecesError, ApId, ApplicationEventName, SERVICE_KEY_SECURITY_OPENAPI, SharedTemplate, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' import dayjs from 'dayjs' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { authenticationUtils } from '../../authentication/authentication-utils' import { entitiesMustBeOwnedByCurrentProject } from '../../authentication/authorization' import { assertUserHasPermissionToFlow } from '../../ee/authentication/project-role/rbac-middleware' @@ -40,7 +38,7 @@ import { flowService } from './flow.service' const DEFAULT_PAGE_SIZE = 10 -export const flowController: FastifyPluginAsyncTypebox = async (app) => { +export const flowController: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) app.post('/', CreateFlowRequestOptions, async (request, reply) => { const newFlow = await flowService(request.log).create({ @@ -74,7 +72,7 @@ export const flowController: FastifyPluginAsyncTypebox = async (app) => { description: 'Apply an operation to a flow', security: [SERVICE_KEY_SECURITY_OPENAPI], body: FlowOperationRequest, - params: Type.Object({ + params: z.object({ id: ApId, }), }, @@ -324,7 +322,7 @@ const GetFlowTemplateRequestOptions = { tags: ['flows'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Export flow as template', - params: Type.Object({ + params: z.object({ id: ApId, }), querystring: GetFlowTemplateRequestQuery, @@ -347,7 +345,7 @@ const GetFlowRequestOptions = { tags: ['flows'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Get a flow by id', - params: Type.Object({ + params: z.object({ id: ApId, }), querystring: GetFlowQueryParamsRequest, @@ -370,11 +368,11 @@ const DeleteFlowRequestOptions = { tags: ['flows'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Delete a flow', - params: Type.Object({ + params: z.object({ id: ApId, }), response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } diff --git a/packages/server/api/src/app/flows/flow/flow.service.ts b/packages/server/api/src/app/flows/flow/flow.service.ts index 47698b1e300..642ab60a3d4 100644 --- a/packages/server/api/src/app/flows/flow/flow.service.ts +++ b/packages/server/api/src/app/flows/flow/flow.service.ts @@ -738,9 +738,7 @@ const lockFlowVersionIfNotLocked = async ({ flowVersion, userOperation: { type: FlowOperationType.LOCK_FLOW, - request: { - flowId: flowVersion.flowId, - }, + request: {}, }, entityManager, }) diff --git a/packages/server/api/src/app/flows/flow/human-input/chat-controller.ts b/packages/server/api/src/app/flows/flow/human-input/chat-controller.ts index 2942c575049..823d6628496 100644 --- a/packages/server/api/src/app/flows/flow/human-input/chat-controller.ts +++ b/packages/server/api/src/app/flows/flow/human-input/chat-controller.ts @@ -1,12 +1,14 @@ import { securityAccess } from '@activepieces/server-common' import { ApId, + OptionalBooleanFromQuery, USE_DRAFT_QUERY_PARAM_NAME, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { humanInputService } from './human-input.service' -export const chatController: FastifyPluginAsyncTypebox = async (app) => { +export const chatController: FastifyPluginAsyncZod = async (app) => { app.get('/chat/:flowId', GetChatRequest, async (request) => { return humanInputService(request.log).getChatUIByFlowIdOrThrow(request.params.flowId, request.query.useDraft ?? false) }) @@ -18,11 +20,11 @@ const GetChatRequest = { }, schema: { description: 'Get a chat UI by flow id', - params: Type.Object({ + params: z.object({ flowId: ApId, }), - querystring: Type.Object({ - [USE_DRAFT_QUERY_PARAM_NAME]: Type.Optional(Type.Boolean()), + querystring: z.object({ + [USE_DRAFT_QUERY_PARAM_NAME]: OptionalBooleanFromQuery, }), }, } diff --git a/packages/server/api/src/app/flows/flow/human-input/form-controller.ts b/packages/server/api/src/app/flows/flow/human-input/form-controller.ts index b17b47816be..fe357222f40 100644 --- a/packages/server/api/src/app/flows/flow/human-input/form-controller.ts +++ b/packages/server/api/src/app/flows/flow/human-input/form-controller.ts @@ -1,12 +1,14 @@ import { securityAccess } from '@activepieces/server-common' import { ApId, + OptionalBooleanFromQuery, USE_DRAFT_QUERY_PARAM_NAME, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { humanInputService } from './human-input.service' -export const formController: FastifyPluginAsyncTypebox = async (app) => { +export const formController: FastifyPluginAsyncZod = async (app) => { app.get('/form/:flowId', GetFormRequest, async (request) => { return humanInputService(request.log).getFormByFlowIdOrThrow(request.params.flowId, request.query.useDraft ?? false) }) @@ -18,11 +20,11 @@ const GetFormRequest = { }, schema: { description: 'Get a form by flow id', - params: Type.Object({ + params: z.object({ flowId: ApId, }), - querystring: Type.Object({ - [USE_DRAFT_QUERY_PARAM_NAME]: Type.Optional(Type.Boolean()), + querystring: z.object({ + [USE_DRAFT_QUERY_PARAM_NAME]: OptionalBooleanFromQuery, }), }, } \ No newline at end of file diff --git a/packages/server/api/src/app/flows/flow/human-input/human-input.module.ts b/packages/server/api/src/app/flows/flow/human-input/human-input.module.ts index fd5d37bfb44..c09b993634a 100644 --- a/packages/server/api/src/app/flows/flow/human-input/human-input.module.ts +++ b/packages/server/api/src/app/flows/flow/human-input/human-input.module.ts @@ -1,8 +1,8 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { chatController } from './chat-controller' import { formController } from './form-controller' -export const humanInputModule: FastifyPluginAsyncTypebox = async (app) => { +export const humanInputModule: FastifyPluginAsyncZod = async (app) => { await app.register(formController, { prefix: '/v1/human-input' }) await app.register(chatController, { prefix: '/v1/human-input' }) } \ No newline at end of file diff --git a/packages/server/api/src/app/flows/folder/folder.module.ts b/packages/server/api/src/app/flows/folder/folder.module.ts index d5eb3c9a9e3..b8f76aea336 100644 --- a/packages/server/api/src/app/flows/folder/folder.module.ts +++ b/packages/server/api/src/app/flows/folder/folder.module.ts @@ -8,20 +8,20 @@ import { ApplicationEventName, SERVICE_KEY_SECURITY_OPENAPI, UpdateFolderRequest, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Type } from '@sinclair/typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { entitiesMustBeOwnedByCurrentProject } from '../../authentication/authorization' import { applicationEvents } from '../../helper/application-events' import { FolderEntity } from './folder.entity' import { flowFolderService as folderService } from './folder.service' const DEFAULT_PAGE_SIZE = 10 -export const folderModule: FastifyPluginAsyncTypebox = async (app) => { +export const folderModule: FastifyPluginAsyncZod = async (app) => { await app.register(folderController, { prefix: '/v1/folders' }) } -const folderController: FastifyPluginAsyncTypebox = async (fastify) => { +const folderController: FastifyPluginAsyncZod = async (fastify) => { fastify.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) fastify.post('/', CreateFolderParams, async (request) => { @@ -138,8 +138,8 @@ const UpdateFolderParams = { tags: ['folders'], description: 'Update an existing folder', security: [SERVICE_KEY_SECURITY_OPENAPI], - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: UpdateFolderRequest, }, @@ -156,8 +156,8 @@ const GetFolderParams = { }, schema: { tags: ['folders'], - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), description: 'Get a folder by id', security: [SERVICE_KEY_SECURITY_OPENAPI], diff --git a/packages/server/api/src/app/flows/step-run/sample-data.controller.ts b/packages/server/api/src/app/flows/step-run/sample-data.controller.ts index aa044906a41..a20c4240592 100644 --- a/packages/server/api/src/app/flows/step-run/sample-data.controller.ts +++ b/packages/server/api/src/app/flows/step-run/sample-data.controller.ts @@ -1,11 +1,11 @@ import { ProjectResourceType, securityAccess } from '@activepieces/server-common' import { CreateStepRunRequestBody, GetSampleDataRequest, PrincipalType, SERVICE_KEY_SECURITY_OPENAPI } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { flowService } from '../flow/flow.service' import { flowRunService } from '../flow-run/flow-run-service' import { sampleDataService } from './sample-data.service' -export const sampleDataController: FastifyPluginAsyncTypebox = async (fastify) => { +export const sampleDataController: FastifyPluginAsyncZod = async (fastify) => { fastify.post('/test-step', TestSampleDataRequestBody, async (request) => { return flowRunService(request.log).test({ diff --git a/packages/server/api/src/app/health/health.module.ts b/packages/server/api/src/app/health/health.module.ts index 8fb348cc616..ec447e6b6fa 100644 --- a/packages/server/api/src/app/health/health.module.ts +++ b/packages/server/api/src/app/health/health.module.ts @@ -1,14 +1,14 @@ import { securityAccess } from '@activepieces/server-common' import { GetSystemHealthChecksResponse, PrincipalType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { healthStatusService } from './health.service' -export const healthModule: FastifyPluginAsyncTypebox = async (app) => { +export const healthModule: FastifyPluginAsyncZod = async (app) => { await app.register(healthController, { prefix: '/v1/health' }) } -const healthController: FastifyPluginAsyncTypebox = async (app) => { +const healthController: FastifyPluginAsyncZod = async (app) => { app.get( '/', { diff --git a/packages/server/api/src/app/helper/application-events.ts b/packages/server/api/src/app/helper/application-events.ts index c18c2575fd5..e2cb1747300 100644 --- a/packages/server/api/src/app/helper/application-events.ts +++ b/packages/server/api/src/app/helper/application-events.ts @@ -1,7 +1,5 @@ import { AppSystemProp, networkUtils, rejectedPromiseHandler } from '@activepieces/server-common' import { apId, ApplicationEvent, isNil, PrincipalType } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' -import { Clean } from '@sinclair/typebox/value' import { FastifyBaseLogger, FastifyRequest } from 'fastify' import { authenticationUtils } from '../authentication/authentication-utils' import { userIdentityService } from '../authentication/user-identity/user-identity-service' @@ -23,8 +21,7 @@ const listeners: ListenerRegistration = { workerEventListeners: [], } -const RawAuditEventParam = Type.Pick(ApplicationEvent, ['data', 'action']) -type RawAuditEventParam = Static +type RawAuditEventParam = Pick type MetaInformation = { platformId: string @@ -53,14 +50,15 @@ export const applicationEvents = (log: FastifyBaseLogger) => ({ sendWorkerEvent(projectId: string, params: RawAuditEventParam): void { projectService(log).getPlatformId(projectId).then((platformId) => { for (const listener of listeners.workerEventListeners) { - listener(projectId, { + const event = { ...params, projectId, platformId, id: apId(), created: new Date().toISOString(), updated: new Date().toISOString(), - }) + } as ApplicationEvent + listener(projectId, event) } }).catch((error) => { log.error({ err: error }, '[applicationEvents#sendWorkerEvent] Failed to send worker event') @@ -96,8 +94,7 @@ async function enrichAuditEventParam(requestOrMeta: FastifyRequest | MetaInforma } // The event may contain Date objects, so we serialize it to convert dates back to strings as per the schema. - const clonedAndSerializedDates = JSON.parse(JSON.stringify(eventToSave)) - const cleanedEvent = Clean(ApplicationEvent, clonedAndSerializedDates) as ApplicationEvent + const cleanedEvent = JSON.parse(JSON.stringify(eventToSave)) as ApplicationEvent return cleanedEvent } diff --git a/packages/server/api/src/app/helper/encryption.ts b/packages/server/api/src/app/helper/encryption.ts index 048b27d0839..4861f6d39b8 100644 --- a/packages/server/api/src/app/helper/encryption.ts +++ b/packages/server/api/src/app/helper/encryption.ts @@ -7,8 +7,8 @@ import { assertNotNullOrUndefined, isNil, } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' import { Mutex } from 'async-mutex' +import { z } from 'zod' import { redisConnections } from '../database/redis-connections' import { localFileStore } from './local-store' import { system } from './system/system' @@ -17,11 +17,11 @@ const algorithm = 'aes-256-cbc' const ivLength = 16 const mutexLock = new Mutex() -export const EncryptedObject = Type.Composite([Type.Object({ - iv: Type.String(), - data: Type.String(), -})]) -export type EncryptedObject = Static +export const EncryptedObject = z.object({ + iv: z.string(), + data: z.string(), +}) +export type EncryptedObject = z.infer const redisType = redisConnections.getRedisType() diff --git a/packages/server/api/src/app/helper/json-validator.ts b/packages/server/api/src/app/helper/json-validator.ts deleted file mode 100644 index 8171f3ed58d..00000000000 --- a/packages/server/api/src/app/helper/json-validator.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { TSchema } from '@sinclair/typebox' -import { TypeCompiler } from '@sinclair/typebox/compiler' - - -export function parseAndVerify(schema: TSchema, data: unknown): F { - const C = TypeCompiler.Compile(schema) - const isValid = C.Check(data) - if (isValid) { - return data as F - } - throw new Error( - JSON.stringify( - [...C.Errors(data)].map(({ path, message }) => ({ path, message })), - ), - ) -} - - diff --git a/packages/server/api/src/app/helper/openapi/openapi.module.ts b/packages/server/api/src/app/helper/openapi/openapi.module.ts index 453df8bc950..2374ee89283 100644 --- a/packages/server/api/src/app/helper/openapi/openapi.module.ts +++ b/packages/server/api/src/app/helper/openapi/openapi.module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { openapiController } from './openapi.controller' -export const openapiModule: FastifyPluginAsyncTypebox = async (app) => { +export const openapiModule: FastifyPluginAsyncZod = async (app) => { await app.register(openapiController, { prefix: '/v1/docs' }) } diff --git a/packages/server/api/src/app/mcp/mcp-module.ts b/packages/server/api/src/app/mcp/mcp-module.ts index d4f45e56ed7..a8d393d5aec 100644 --- a/packages/server/api/src/app/mcp/mcp-module.ts +++ b/packages/server/api/src/app/mcp/mcp-module.ts @@ -1,7 +1,7 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { mcpServerController } from './mcp-server-controller' -export const mcpServerModule: FastifyPluginAsyncTypebox = async (app) => { +export const mcpServerModule: FastifyPluginAsyncZod = async (app) => { await app.register(mcpServerController, { prefix: '/v1/projects/:projectId/mcp-server' }) } diff --git a/packages/server/api/src/app/mcp/mcp-server-controller.ts b/packages/server/api/src/app/mcp/mcp-server-controller.ts index a44d3b0bdbd..f272760c33e 100644 --- a/packages/server/api/src/app/mcp/mcp-server-controller.ts +++ b/packages/server/api/src/app/mcp/mcp-server-controller.ts @@ -1,12 +1,13 @@ import { ProjectResourceType, securityAccess } from '@activepieces/server-common' -import { AgentMcpTool, ApId, buildAuthHeaders, isNil, McpProtocol, Permission, PopulatedMcpServer, PrincipalType, SERVICE_KEY_SECURITY_OPENAPI, UpdateMcpServerRequest } from '@activepieces/shared' +import { AgentMcpTool, ApId, buildAuthHeaders, isNil, McpAuthConfig, McpProtocol, Permission, PopulatedMcpServer, PrincipalType, SERVICE_KEY_SECURITY_OPENAPI, UpdateMcpServerRequest } from '@activepieces/shared' import { experimental_createMCPClient as createMCPClient, MCPClient, MCPTransport } from '@ai-sdk/mcp' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js' import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' +import { z } from 'zod' import { mcpServerService } from './mcp-service' -export const mcpServerController: FastifyPluginAsyncTypebox = async (app) => { +export const mcpServerController: FastifyPluginAsyncZod = async (app) => { app.get('/', GetMcpRequest, async (req) => { @@ -14,7 +15,7 @@ export const mcpServerController: FastifyPluginAsyncTypebox = async (app) => { }) app.post('/', UpdateMcpRequest, async (req) => { - const { status } = req.body + const { status } = req.body as UpdateMcpServerRequest return mcpServerService(req.log).update({ projectId: req.projectId, status, @@ -63,7 +64,7 @@ export const mcpServerController: FastifyPluginAsyncTypebox = async (app) => { }) app.post('/validate-agent-mcp-tool', AddMcpServerToolRequest, async (req) => { - const tool = req.body + const tool = req.body as McpToolValidationBody let mcpClient: MCPClient | null = null try { @@ -71,7 +72,7 @@ export const mcpServerController: FastifyPluginAsyncTypebox = async (app) => { transport: createTransportConfig( tool.protocol, tool.serverUrl, - buildAuthHeaders(tool.auth), + buildAuthHeaders(tool.auth as McpAuthConfig), ) as MCPTransport, }) const mcpTools = await mcpClient.tools() @@ -140,7 +141,7 @@ const StreamableHttpRequestRequest = { skipAuth: true, }, schema: { - params: Type.Object({ + params: z.object({ projectId: ApId, }), }, @@ -160,7 +161,7 @@ export const UpdateMcpRequest = { tags: ['mcp'], description: 'Update the project MCP server configuration', security: [SERVICE_KEY_SECURITY_OPENAPI], - params: Type.Object({ + params: z.object({ projectId: ApId, }), body: UpdateMcpServerRequest, @@ -180,15 +181,14 @@ export const AddMcpServerToolRequest = { schema: { tags: ['agent'], description: 'Validate agent MCP tool', - params: Type.Object({ + params: z.object({ projectId: ApId, }), - body: Type.Composite([ - Type.Omit(AgentMcpTool, ['auth']), - Type.Object({ - auth: Type.Any(), + body: AgentMcpTool.omit({ auth: true }).merge( + z.object({ + auth: z.unknown(), }), - ]), + ), }, } @@ -206,7 +206,7 @@ const GetMcpRequest = { tags: ['mcp'], description: 'Get an MCP server by ID', security: [SERVICE_KEY_SECURITY_OPENAPI], - params: Type.Object({ + params: z.object({ projectId: ApId, }), }, @@ -226,7 +226,9 @@ const RotateTokenRequest = { tags: ['mcp'], description: 'Rotate the MCP server token', }, - params: Type.Object({ + params: z.object({ projectId: ApId, }), -} \ No newline at end of file +} + +type McpToolValidationBody = Omit & { auth: unknown } \ No newline at end of file diff --git a/packages/server/api/src/app/pieces/community-piece-module.ts b/packages/server/api/src/app/pieces/community-piece-module.ts index 43f14649a14..96289960029 100644 --- a/packages/server/api/src/app/pieces/community-piece-module.ts +++ b/packages/server/api/src/app/pieces/community-piece-module.ts @@ -1,15 +1,15 @@ import { PieceMetadataModel } from '@activepieces/pieces-framework' import { securityAccess } from '@activepieces/server-common' import { AddPieceRequestBody, PrincipalType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { pieceInstallService } from './piece-install-service' -export const communityPiecesModule: FastifyPluginAsyncTypebox = async (app) => { +export const communityPiecesModule: FastifyPluginAsyncZod = async (app) => { await app.register(communityPiecesController, { prefix: '/v1/pieces' }) } -const communityPiecesController: FastifyPluginAsyncTypebox = async (app) => { +const communityPiecesController: FastifyPluginAsyncZod = async (app) => { app.post( '/', { diff --git a/packages/server/api/src/app/pieces/metadata/piece-metadata-controller.ts b/packages/server/api/src/app/pieces/metadata/piece-metadata-controller.ts index 0271eab668d..c5ce47c3101 100644 --- a/packages/server/api/src/app/pieces/metadata/piece-metadata-controller.ts +++ b/packages/server/api/src/app/pieces/metadata/piece-metadata-controller.ts @@ -18,9 +18,7 @@ import { SampleDataFileType, WorkerJobType, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { EngineHelperPropResult, OperationResponse } from 'worker' import { flowService } from '../../flows/flow/flow.service' import { sampleDataService } from '../../flows/step-run/sample-data.service' @@ -28,11 +26,11 @@ import { userInteractionWatcher } from '../../workers/user-interaction-watcher' import { pieceSyncService } from '../piece-sync-service' import { getPiecePackageWithoutArchive, pieceMetadataService } from './piece-metadata-service' -export const pieceModule: FastifyPluginAsyncTypebox = async (app) => { +export const pieceModule: FastifyPluginAsyncZod = async (app) => { await app.register(basePiecesController, { prefix: '/v1/pieces' }) } -const basePiecesController: FastifyPluginAsyncTypebox = async (app) => { +const basePiecesController: FastifyPluginAsyncZod = async (app) => { app.get( '/categories', diff --git a/packages/server/api/src/app/pieces/tags/tags-module.ts b/packages/server/api/src/app/pieces/tags/tags-module.ts index 88943cd2822..9c955d96890 100644 --- a/packages/server/api/src/app/pieces/tags/tags-module.ts +++ b/packages/server/api/src/app/pieces/tags/tags-module.ts @@ -1,17 +1,18 @@ import { securityAccess } from '@activepieces/server-common' import { assertNotNullOrUndefined, ListTagsRequest, PrincipalType, SeekPage, SetPieceTagsRequest, Tag, UpsertTagRequest } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { pieceTagService } from './pieces/piece-tag.service' import { tagService } from './tag-service' -export const tagsModule: FastifyPluginAsyncTypebox = async (app) => { +export const tagsModule: FastifyPluginAsyncZod = async (app) => { await app.register(tagsController, { prefix: '/v1/tags' }) } -const tagsController: FastifyPluginAsyncTypebox = async (fastify) => { +const tagsController: FastifyPluginAsyncZod = async (fastify) => { fastify.get('/', ListTagsParams, async (request) => { @@ -58,7 +59,7 @@ const setPiecesTagsParams = { schema: { body: SetPieceTagsRequest, response: { - [StatusCodes.CREATED]: Type.Object({}), + [StatusCodes.CREATED]: z.object({}), }, }, } diff --git a/packages/server/api/src/app/platform/platform.controller.ts b/packages/server/api/src/app/platform/platform.controller.ts index 3d058438ccf..ebf310b91a1 100644 --- a/packages/server/api/src/app/platform/platform.controller.ts +++ b/packages/server/api/src/app/platform/platform.controller.ts @@ -11,11 +11,9 @@ import { SERVICE_KEY_SECURITY_OPENAPI, UpdatePlatformRequestBody, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { userIdentityRepository } from '../authentication/user-identity/user-identity-service' import { transaction } from '../core/db/transaction' import { platformToEditMustBeOwnedByCurrentUser } from '../ee/authentication/ee-authorization' @@ -29,7 +27,7 @@ import { userRepo, userService } from '../user/user-service' import { platformRepo, platformService } from './platform.service' const edition = system.getEdition() -export const platformController: FastifyPluginAsyncTypebox = async (app) => { +export const platformController: FastifyPluginAsyncZod = async (app) => { app.post('/:id', UpdatePlatformRequest, async (req, _res) => { const platformId = req.principal.platform.id @@ -146,7 +144,7 @@ const UpdatePlatformRequest = { }, schema: { body: UpdatePlatformRequestBody, - params: Type.Object({ + params: z.object({ id: ApId, }), response: { @@ -164,7 +162,7 @@ const GetPlatformRequest = { tags: ['platforms'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Get a platform by id', - params: Type.Object({ + params: z.object({ id: ApId, }), response: { @@ -178,7 +176,7 @@ const DeletePlatformRequest = { security: securityAccess.platformAdminOnly([PrincipalType.USER]), }, schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), }, @@ -189,8 +187,8 @@ const GetAssetRequest = { security: securityAccess.public(), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } \ No newline at end of file diff --git a/packages/server/api/src/app/platform/platform.module.ts b/packages/server/api/src/app/platform/platform.module.ts index dedf97a416b..e56f5841eed 100644 --- a/packages/server/api/src/app/platform/platform.module.ts +++ b/packages/server/api/src/app/platform/platform.module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { platformController } from './platform.controller' -export const platformModule: FastifyPluginAsyncTypebox = async (app) => { +export const platformModule: FastifyPluginAsyncZod = async (app) => { await app.register(platformController, { prefix: '/v1/platforms' }) } diff --git a/packages/server/api/src/app/platform/platform.service.ts b/packages/server/api/src/app/platform/platform.service.ts index 8dc801f5c63..ee4a5516ac5 100644 --- a/packages/server/api/src/app/platform/platform.service.ts +++ b/packages/server/api/src/app/platform/platform.service.ts @@ -2,6 +2,8 @@ import { ActivepiecesError, ApEdition, apId, ErrorCode, + FederatedAuthnProviderConfig, + FederatedAuthnProviderConfigWithoutSensitiveData, FilteredPieceBehavior, isNil, OPEN_SOURCE_PLAN, @@ -152,6 +154,7 @@ export const platformService = (log: FastifyBaseLogger) => ({ } return { ...platform, + federatedAuthProviders: stripSensitiveData(platform.federatedAuthProviders), usage: await getUsage(log, platform), plan: await getPlan(log, platform), } @@ -160,6 +163,7 @@ export const platformService = (log: FastifyBaseLogger) => ({ const platform = await this.getOneOrThrow(id) return { ...platform, + federatedAuthProviders: stripSensitiveData(platform.federatedAuthProviders), plan: await getPlan(log, platform), } }, @@ -167,6 +171,7 @@ export const platformService = (log: FastifyBaseLogger) => ({ const platform = await this.getOneOrThrow(id) return { ...platform, + federatedAuthProviders: stripSensitiveData(platform.federatedAuthProviders), usage: await getUsage(log, platform), plan: await getPlan(log, platform), } @@ -198,6 +203,14 @@ async function getPlan(log: FastifyBaseLogger, platform: Platform): Promise { +export const projectController: FastifyPluginAsyncZod = async (fastify) => { fastify.post('/:id', UpdateProjectRequest, async (request) => { const project = await projectService(request.log).getOneOrThrow(request.params.id) return projectService(request.log).update(request.params.id, { @@ -29,8 +30,8 @@ const UpdateProjectRequest = { }, schema: { tags: ['projects'], - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), response: { [StatusCodes.OK]: Project, @@ -49,7 +50,7 @@ const GetProjectRequest = { }, schema: { tags: ['projects'], - params: Type.Object({ + params: z.object({ id: ApId, }), response: { diff --git a/packages/server/api/src/app/project/project-module.ts b/packages/server/api/src/app/project/project-module.ts index 93ee35ee8c8..a132ae153cb 100644 --- a/packages/server/api/src/app/project/project-module.ts +++ b/packages/server/api/src/app/project/project-module.ts @@ -1,8 +1,8 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { projectController } from './project-controller' import { projectWorkerController } from './project-worker-controller' -export const projectModule: FastifyPluginAsyncTypebox = async (app) => { +export const projectModule: FastifyPluginAsyncZod = async (app) => { await app.register(projectController, { prefix: '/v1/projects' }) await app.register(projectWorkerController, { prefix: '/v1/worker/project' }) } diff --git a/packages/server/api/src/app/project/project-worker-controller.ts b/packages/server/api/src/app/project/project-worker-controller.ts index d98316e41d5..a5d09b79a5d 100644 --- a/packages/server/api/src/app/project/project-worker-controller.ts +++ b/packages/server/api/src/app/project/project-worker-controller.ts @@ -1,8 +1,8 @@ import { securityAccess } from '@activepieces/server-common' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { projectService } from './project-service' -export const projectWorkerController: FastifyPluginAsyncTypebox = async ( +export const projectWorkerController: FastifyPluginAsyncZod = async ( app, ) => { app.get('/', GetWorkerProjectRequest, async (req) => { diff --git a/packages/server/api/src/app/server.ts b/packages/server/api/src/app/server.ts index 90d6621394d..8f6dae78afe 100644 --- a/packages/server/api/src/app/server.ts +++ b/packages/server/api/src/app/server.ts @@ -6,6 +6,7 @@ import fastifyMultipart, { MultipartFile } from '@fastify/multipart' import fastify, { FastifyInstance } from 'fastify' import fastifyFavicon from 'fastify-favicon' import { fastifyRawBody } from 'fastify-raw-body' +import { validatorCompiler } from 'fastify-type-provider-zod' import qs from 'qs' import { setupApp } from './app' import { healthModule } from './health/health.module' @@ -42,15 +43,21 @@ async function setupBaseApp(): Promise { genReqId: () => { return `req_${apId()}` }, - ajv: { - customOptions: { - removeAdditional: 'all', - useDefaults: true, - keywords: ['discriminator'], - coerceTypes: 'array', - formats: {}, - }, - }, + }) + + app.setValidatorCompiler(validatorCompiler) + app.setSerializerCompiler(({ schema: maybeSchema }) => { + const schema = resolveZodSchema(maybeSchema) + return (data) => { + if (schema) { + const preprocessed = convertDatesToStrings(data) + const result = schema.safeParse(preprocessed) + if (result.success) { + return JSON.stringify(result.data) + } + } + return JSON.stringify(data) + } }) await app.register(fastifyFavicon) @@ -95,3 +102,38 @@ async function setupBaseApp(): Promise { return app } +type ZodLike = { safeParse: (data: unknown) => { success: boolean, data?: unknown } } + +function resolveZodSchema(maybeSchema: unknown): ZodLike | null { + if (typeof maybeSchema === 'object' && maybeSchema !== null) { + if ('safeParse' in maybeSchema) { + return maybeSchema as ZodLike + } + if ('properties' in maybeSchema) { + const props = (maybeSchema as Record).properties + if (typeof props === 'object' && props !== null && 'safeParse' in props) { + return props as ZodLike + } + } + } + return null +} + +function convertDatesToStrings(data: unknown): unknown { + if (data instanceof Date) { + return data.toISOString() + } + if (Array.isArray(data)) { + return data.map(convertDatesToStrings) + } + if (typeof data === 'object' && data !== null) { + const result: Record = {} + for (const [key, value] of Object.entries(data)) { + result[key] = convertDatesToStrings(value) + } + return result + } + return data +} + + diff --git a/packages/server/api/src/app/store-entry/store-entry.controller.ts b/packages/server/api/src/app/store-entry/store-entry.controller.ts index e4a41b3b38b..e31577cd59a 100644 --- a/packages/server/api/src/app/store-entry/store-entry.controller.ts +++ b/packages/server/api/src/app/store-entry/store-entry.controller.ts @@ -5,12 +5,12 @@ import { PutStoreEntryRequest, STORE_VALUE_MAX_SIZE, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import sizeof from 'object-sizeof' import { storeEntryService } from './store-entry.service' -export const storeEntryController: FastifyPluginAsyncTypebox = async (fastify) => { +export const storeEntryController: FastifyPluginAsyncZod = async (fastify) => { fastify.post( '/', CreateRequest, async (request, reply) => { const sizeOfValue = sizeof(request.body.value) if (sizeOfValue > STORE_VALUE_MAX_SIZE) { diff --git a/packages/server/api/src/app/store-entry/store-entry.module.ts b/packages/server/api/src/app/store-entry/store-entry.module.ts index d9d872190db..5cdb5aff389 100644 --- a/packages/server/api/src/app/store-entry/store-entry.module.ts +++ b/packages/server/api/src/app/store-entry/store-entry.module.ts @@ -1,10 +1,10 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { entitiesMustBeOwnedByCurrentProject, } from '../authentication/authorization' import { storeEntryController } from './store-entry.controller' -export const storeEntryModule: FastifyPluginAsyncTypebox = async (app) => { +export const storeEntryModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) await app.register(storeEntryController, { prefix: '/v1/store-entries' }) } diff --git a/packages/server/api/src/app/tables/field/field.controller.ts b/packages/server/api/src/app/tables/field/field.controller.ts index 5803a923448..ddd830cd1d3 100644 --- a/packages/server/api/src/app/tables/field/field.controller.ts +++ b/packages/server/api/src/app/tables/field/field.controller.ts @@ -1,12 +1,13 @@ import { EntitySourceType, ProjectResourceType, securityAccess } from '@activepieces/server-common' import { CreateFieldRequest, Field, ListFieldsRequestQuery, PrincipalType, UpdateFieldRequest } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { TableEntity } from '../table/table.entity' import { FieldEntity } from './field.entity' import { fieldService } from './field.service' -export const fieldController: FastifyPluginAsyncTypebox = async (fastify) => { +export const fieldController: FastifyPluginAsyncZod = async (fastify) => { fastify.post('/', CreateRequest, async (request, reply) => { const response = await fieldService.create({ request: request.body, projectId: request.projectId }) @@ -75,8 +76,8 @@ const GetFieldByIdRequest = { }), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } @@ -89,8 +90,8 @@ const DeleteFieldRequest = { }), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), }, } @@ -120,8 +121,8 @@ const UpdateRequest = { }), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: UpdateFieldRequest, }, diff --git a/packages/server/api/src/app/tables/record/record.controller.ts b/packages/server/api/src/app/tables/record/record.controller.ts index 21aa0cf3d65..7360c73c812 100644 --- a/packages/server/api/src/app/tables/record/record.controller.ts +++ b/packages/server/api/src/app/tables/record/record.controller.ts @@ -10,11 +10,9 @@ import { SERVICE_KEY_SECURITY_OPENAPI, UpdateRecordRequest, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { entitiesMustBeOwnedByCurrentProject } from '../../authentication/authorization' import { TableEntity } from '../table/table.entity' import { recordSideEffects } from './record-side-effects' @@ -23,7 +21,7 @@ import { recordService } from './record.service' const DEFAULT_PAGE_SIZE = 10 -export const recordController: FastifyPluginAsyncTypebox = async (fastify) => { +export const recordController: FastifyPluginAsyncZod = async (fastify) => { fastify.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) fastify.post('/', CreateRequest, async (request, reply) => { @@ -107,7 +105,7 @@ const CreateRequest = { schema: { body: CreateRecordsRequest, response: { - [StatusCodes.CREATED]: Type.Array(PopulatedRecord), + [StatusCodes.CREATED]: z.array(PopulatedRecord), }, }, } @@ -120,12 +118,12 @@ const GetRecordByIdRequest = { }), }, schema: { - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), response: { [StatusCodes.OK]: PopulatedRecord, - [StatusCodes.NOT_FOUND]: Type.String(), + [StatusCodes.NOT_FOUND]: z.string(), }, }, } @@ -141,8 +139,8 @@ const UpdateRequest = { tags: ['records'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Update a record', - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: UpdateRecordRequest, response: { @@ -170,7 +168,7 @@ const DeleteRecordRequest = { description: 'Delete records', body: DeleteRecordsRequest, response: { - [StatusCodes.OK]: Type.Array(PopulatedRecord), + [StatusCodes.OK]: z.array(PopulatedRecord), }, }, } diff --git a/packages/server/api/src/app/tables/table/table.controller.ts b/packages/server/api/src/app/tables/table/table.controller.ts index feefa75f25d..50af580954d 100644 --- a/packages/server/api/src/app/tables/table/table.controller.ts +++ b/packages/server/api/src/app/tables/table/table.controller.ts @@ -1,7 +1,8 @@ import { ProjectResourceType, securityAccess } from '@activepieces/server-common' import { ApId, CountTablesRequest, CreateTableRequest, CreateTableWebhookRequest, ExportTableResponse, GitPushOperationType, ListTablesRequest, Permission, PrincipalType, SeekPage, SERVICE_KEY_SECURITY_OPENAPI, SharedTemplate, Table, UpdateTableRequest } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { gitRepoService } from '../../ee/projects/project-release/git-sync/git-sync.service' import { userService } from '../../user/user-service' import { recordSideEffects } from '../record/record-side-effects' @@ -11,7 +12,7 @@ import { tableService } from './table.service' const DEFAULT_PAGE_SIZE = 10 -export const tablesController: FastifyPluginAsyncTypebox = async (fastify) => { +export const tablesController: FastifyPluginAsyncZod = async (fastify) => { fastify.post('/', CreateRequest, async (request) => { return tableService.create({ @@ -166,7 +167,7 @@ const CountTablesRequestOptions = { description: 'Count tables', querystring: CountTablesRequest, response: { - [StatusCodes.OK]: Type.Number(), + [StatusCodes.OK]: z.number(), }, }, } @@ -183,11 +184,11 @@ const DeleteRequest = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Delete a table', - params: Type.Object({ + params: z.object({ id: ApId, }), response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } @@ -203,7 +204,7 @@ const GetTableByIdRequest = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Get a table by id', - params: Type.Object({ + params: z.object({ id: ApId, }), response: { @@ -223,8 +224,8 @@ const ExportTableRequest = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Export a table', - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), response: { [StatusCodes.OK]: ExportTableResponse, @@ -243,8 +244,8 @@ const CreateTableWebhook = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Create a table webhook', - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: CreateTableWebhookRequest, }, @@ -261,9 +262,9 @@ const DeleteTableWebhook = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Delete a table webhook', - params: Type.Object({ - id: Type.String(), - webhookId: Type.String(), + params: z.object({ + id: z.string(), + webhookId: z.string(), }), }, } @@ -279,8 +280,8 @@ const UpdateRequest = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Update a table', - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), body: UpdateTableRequest, }, @@ -297,11 +298,11 @@ const ClearTableRequest = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Clear all records from a table', - params: Type.Object({ + params: z.object({ id: ApId, }), response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } @@ -319,7 +320,7 @@ const GetTableTemplateRequestOptions = { tags: ['tables'], security: [SERVICE_KEY_SECURITY_OPENAPI], description: 'Export table as template', - params: Type.Object({ + params: z.object({ id: ApId, }), response: { diff --git a/packages/server/api/src/app/tables/tables.module.ts b/packages/server/api/src/app/tables/tables.module.ts index f7f5266bf43..c0aae3d4ca6 100644 --- a/packages/server/api/src/app/tables/tables.module.ts +++ b/packages/server/api/src/app/tables/tables.module.ts @@ -1,10 +1,10 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { entitiesMustBeOwnedByCurrentProject } from '../authentication/authorization' import { fieldController } from './field/field.controller' import { recordController } from './record/record.controller' import { tablesController } from './table/table.controller' -export const tablesModule: FastifyPluginAsyncTypebox = async (app) => { +export const tablesModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) await app.register(tablesController, { prefix: '/v1/tables' }) diff --git a/packages/server/api/src/app/template/template-telemetry/template-telemetry.controller.ts b/packages/server/api/src/app/template/template-telemetry/template-telemetry.controller.ts index 4401918505d..8f76f368a59 100644 --- a/packages/server/api/src/app/template/template-telemetry/template-telemetry.controller.ts +++ b/packages/server/api/src/app/template/template-telemetry/template-telemetry.controller.ts @@ -1,10 +1,10 @@ import { securityAccess } from '@activepieces/server-common' import { TemplateTelemetryEvent } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { templateTelemetryService } from './template-telemetry.service' -export const templateTelemetryController: FastifyPluginAsyncTypebox = async (app) => { +export const templateTelemetryController: FastifyPluginAsyncZod = async (app) => { app.post('/event', SendEventParams, async (request, reply) => { templateTelemetryService(app.log).sendEvent(request.body) return reply.status(StatusCodes.OK).send() diff --git a/packages/server/api/src/app/template/template.controller.ts b/packages/server/api/src/app/template/template.controller.ts index 49ddea31cfc..db33f195def 100644 --- a/packages/server/api/src/app/template/template.controller.ts +++ b/packages/server/api/src/app/template/template.controller.ts @@ -15,10 +15,10 @@ import { TemplateType, UpdateTemplateRequestBody, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' -import { Static, Type } from '@sinclair/typebox' import { FastifyBaseLogger } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { platformMustBeOwnedByCurrentUser } from '../ee/authentication/ee-authorization' import { flagService } from '../flags/flag.service' import { migrateFlowVersionTemplateList } from '../flows/flow-version/migrations' @@ -29,7 +29,7 @@ import { templateService } from './template.service' const edition = system.getEdition() -export const templateController: FastifyPluginAsyncTypebox = async (app) => { +export const templateController: FastifyPluginAsyncZod = async (app) => { app.get('/:id', GetParams, async (request) => { const template = await templateService(app.log).getOne({ id: request.params.id }) if (!isNil(template)) { @@ -122,10 +122,10 @@ export const templateController: FastifyPluginAsyncTypebox = async (app) => { } -const GetIdParams = Type.Object({ - id: Type.String(), +const GetIdParams = z.object({ + id: z.string(), }) -type GetIdParams = Static +type GetIdParams = z.infer const GetCategoriesParams = { config: { diff --git a/packages/server/api/src/app/template/template.module.ts b/packages/server/api/src/app/template/template.module.ts index 46b1c2d6e74..83b5a3090c1 100644 --- a/packages/server/api/src/app/template/template.module.ts +++ b/packages/server/api/src/app/template/template.module.ts @@ -1,8 +1,8 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { templateTelemetryController } from './template-telemetry/template-telemetry.controller' import { templateController } from './template.controller' -export const templateModule: FastifyPluginAsyncTypebox = async (app) => { +export const templateModule: FastifyPluginAsyncZod = async (app) => { await app.register(templateController, { prefix: '/v1/templates' }) await app.register(templateTelemetryController, { prefix: '/v1/templates-telemetry' }) } \ No newline at end of file diff --git a/packages/server/api/src/app/trigger/app-event-routing/app-event-routing.module.ts b/packages/server/api/src/app/trigger/app-event-routing/app-event-routing.module.ts index 3b1c213a5b5..7073116f0e0 100644 --- a/packages/server/api/src/app/trigger/app-event-routing/app-event-routing.module.ts +++ b/packages/server/api/src/app/trigger/app-event-routing/app-event-routing.module.ts @@ -18,8 +18,8 @@ import { RunEnvironment, WorkerJobType, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { domainHelper } from '../../ee/custom-domains/domain-helper' import { flowService } from '../../flows/flow/flow.service' @@ -43,11 +43,11 @@ const pieceNames: Record = { intercom: '@activepieces/piece-intercom', } -export const appEventRoutingModule: FastifyPluginAsyncTypebox = async (app) => { +export const appEventRoutingModule: FastifyPluginAsyncZod = async (app) => { await app.register(appEventRoutingController, { prefix: '/v1/app-events' }) } -export const appEventRoutingController: FastifyPluginAsyncTypebox = async ( +export const appEventRoutingController: FastifyPluginAsyncZod = async ( fastify, ) => { fastify.all( diff --git a/packages/server/api/src/app/trigger/test-trigger/test-trigger-controller.ts b/packages/server/api/src/app/trigger/test-trigger/test-trigger-controller.ts index fd0c7eaa114..c4b281cbcc2 100644 --- a/packages/server/api/src/app/trigger/test-trigger/test-trigger-controller.ts +++ b/packages/server/api/src/app/trigger/test-trigger/test-trigger-controller.ts @@ -1,9 +1,9 @@ import { ProjectResourceType, securityAccess } from '@activepieces/server-common' import { CancelTestTriggerRequestBody, PrincipalType, TestTriggerRequestBody } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { testTriggerService } from '../../trigger/test-trigger/test-trigger-service' -export const testTriggerController: FastifyPluginAsyncTypebox = async (app) => { +export const testTriggerController: FastifyPluginAsyncZod = async (app) => { app.post('/', TestTriggerRequest, async (req) => { const { flowId, flowVersionId, testStrategy } = req.body diff --git a/packages/server/api/src/app/trigger/trigger-events/trigger-event-controller.ts b/packages/server/api/src/app/trigger/trigger-events/trigger-event-controller.ts index 6d9a23f95ac..6718e488f89 100644 --- a/packages/server/api/src/app/trigger/trigger-events/trigger-event-controller.ts +++ b/packages/server/api/src/app/trigger/trigger-events/trigger-event-controller.ts @@ -5,13 +5,13 @@ import { PrincipalType, SaveTriggerEventRequest, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { flowService } from '../../flows/flow/flow.service' import { triggerEventService } from './trigger-event.service' const DEFAULT_PAGE_SIZE = 10 -export const triggerEventController: FastifyPluginAsyncTypebox = async (fastify) => { +export const triggerEventController: FastifyPluginAsyncZod = async (fastify) => { fastify.post('/', SaveTriggerEventRequestParams, async (request) => { diff --git a/packages/server/api/src/app/trigger/trigger-run/trigger-run.controller.ts b/packages/server/api/src/app/trigger/trigger-run/trigger-run.controller.ts index fe69d6f4970..eca6b19a593 100644 --- a/packages/server/api/src/app/trigger/trigger-run/trigger-run.controller.ts +++ b/packages/server/api/src/app/trigger/trigger-run/trigger-run.controller.ts @@ -1,9 +1,9 @@ import { securityAccess, triggerRunStats } from '@activepieces/server-common' import { PrincipalType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { redisConnections } from '../../database/redis-connections' -export const triggerRunController: FastifyPluginAsyncTypebox = async (app) => { +export const triggerRunController: FastifyPluginAsyncZod = async (app) => { app.get('/status', GetStatusReportSchema, async (request) => { const platformId = request.principal.platform.id return triggerRunStats(app.log, await redisConnections.useExisting()).getStatusReport({ platformId }) diff --git a/packages/server/api/src/app/trigger/trigger.module.ts b/packages/server/api/src/app/trigger/trigger.module.ts index 89769664eb6..e4e484234b3 100644 --- a/packages/server/api/src/app/trigger/trigger.module.ts +++ b/packages/server/api/src/app/trigger/trigger.module.ts @@ -1,9 +1,9 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { testTriggerController } from './test-trigger/test-trigger-controller' import { triggerEventController } from './trigger-events/trigger-event-controller' import { triggerRunController } from './trigger-run/trigger-run.controller' -export const triggerModule: FastifyPluginAsyncTypebox = async (app) => { +export const triggerModule: FastifyPluginAsyncZod = async (app) => { await app.register(testTriggerController, { prefix: '/v1/test-trigger' }) await app.register(triggerEventController, { prefix: '/v1/trigger-events' }) await app.register(triggerRunController, { prefix: '/v1/trigger-runs' }) diff --git a/packages/server/api/src/app/user-invitations/user-invitation.module.ts b/packages/server/api/src/app/user-invitations/user-invitation.module.ts index 946f80a06b8..f7ae2d175e6 100644 --- a/packages/server/api/src/app/user-invitations/user-invitation.module.ts +++ b/packages/server/api/src/app/user-invitations/user-invitation.module.ts @@ -17,10 +17,11 @@ import { UserInvitation, UserInvitationWithLink, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' import dayjs from 'dayjs' import { FastifyBaseLogger, FastifyInstance, FastifyReply, FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { userIdentityService } from '../authentication/user-identity/user-identity-service' import { platformMustBeOwnedByCurrentUser, platformMustHaveFeatureEnabled, projectMustBeTeamType } from '../ee/authentication/ee-authorization' import { assertRoleHasPermission } from '../ee/authentication/project-role/rbac-middleware' @@ -29,11 +30,11 @@ import { projectService } from '../project/project-service' import { userService } from '../user/user-service' import { userInvitationsService } from './user-invitation.service' -export const invitationModule: FastifyPluginAsyncTypebox = async (app) => { +export const invitationModule: FastifyPluginAsyncZod = async (app) => { await app.register(invitationController, { prefix: '/v1/user-invitations' }) } -const invitationController: FastifyPluginAsyncTypebox = async (app) => { +const invitationController: FastifyPluginAsyncZod = async (app) => { app.post('/', UpsertUserInvitationRequestParams, async (request, reply) => { const { email, type } = request.body @@ -200,8 +201,8 @@ const AcceptUserInvitationRequestParams = { security: securityAccess.public(), }, schema: { - body: Type.Object({ - invitationToken: Type.String(), + body: z.object({ + invitationToken: z.string(), }), }, } @@ -213,11 +214,11 @@ const DeleteInvitationRequestParams = { schema: { tags: ['user-invitations'], security: [SERVICE_KEY_SECURITY_OPENAPI], - params: Type.Object({ - id: Type.String(), + params: z.object({ + id: z.string(), }), response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, }, } diff --git a/packages/server/api/src/app/user/badges/badge-module.ts b/packages/server/api/src/app/user/badges/badge-module.ts index 8a540d8875e..6f48c82ccb8 100644 --- a/packages/server/api/src/app/user/badges/badge-module.ts +++ b/packages/server/api/src/app/user/badges/badge-module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { userBadgeService } from './badge-service' -export const userBadgeModule: FastifyPluginAsyncTypebox = async (app) => { +export const userBadgeModule: FastifyPluginAsyncZod = async (app) => { userBadgeService(app.log).setup() } diff --git a/packages/server/api/src/app/user/badges/checks/flow-runs-badges.ts b/packages/server/api/src/app/user/badges/checks/flow-runs-badges.ts index 651776fdec2..32c2a5f1190 100644 --- a/packages/server/api/src/app/user/badges/checks/flow-runs-badges.ts +++ b/packages/server/api/src/app/user/badges/checks/flow-runs-badges.ts @@ -16,7 +16,7 @@ export const flowRunsBadgesCheck: BadgeCheck = { if (isNil(triggeredBy)) { return { userId: null, badges } } - const status = flowRunEvent.data.flowRun.status + const status = flowRunEvent.data.flowRun.status as FlowRunStatus if (isFailedState(status)) { badges.push('back-again') diff --git a/packages/server/api/src/app/user/platform/platform-user-controller.ts b/packages/server/api/src/app/user/platform/platform-user-controller.ts index fcc32d4bca5..1ef2ec12fbd 100644 --- a/packages/server/api/src/app/user/platform/platform-user-controller.ts +++ b/packages/server/api/src/app/user/platform/platform-user-controller.ts @@ -9,14 +9,12 @@ import { UpdateUserRequestBody, UserWithMetaInformation, } from '@activepieces/shared' -import { - FastifyPluginAsyncTypebox, - Type, -} from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { userService } from '../user-service' -export const platformUserController: FastifyPluginAsyncTypebox = async (app) => { +export const platformUserController: FastifyPluginAsyncZod = async (app) => { app.get('/', ListUsersRequest, async (req) => { const platformId = req.principal.platform.id @@ -76,7 +74,7 @@ const ListUsersRequest = { const UpdateUserRequest = { schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), body: UpdateUserRequestBody, @@ -94,13 +92,13 @@ const UpdateUserRequest = { const DeleteUserRequest = { schema: { - params: Type.Object({ + params: z.object({ id: ApId, }), tags: ['users'], description: 'Delete user', response: { - [StatusCodes.NO_CONTENT]: Type.Never(), + [StatusCodes.NO_CONTENT]: z.never(), }, security: [SERVICE_KEY_SECURITY_OPENAPI], }, diff --git a/packages/server/api/src/app/user/platform/platform-user-module.ts b/packages/server/api/src/app/user/platform/platform-user-module.ts index b8c3df33e0f..f77ab52e0cd 100644 --- a/packages/server/api/src/app/user/platform/platform-user-module.ts +++ b/packages/server/api/src/app/user/platform/platform-user-module.ts @@ -1,6 +1,6 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { platformUserController } from './platform-user-controller' -export const platformUserModule: FastifyPluginAsyncTypebox = async (app) => { +export const platformUserModule: FastifyPluginAsyncZod = async (app) => { await app.register(platformUserController, { prefix: '/v1/users' }) } diff --git a/packages/server/api/src/app/webhooks/webhook-controller.ts b/packages/server/api/src/app/webhooks/webhook-controller.ts index a019495a835..26b3a30a1e5 100644 --- a/packages/server/api/src/app/webhooks/webhook-controller.ts +++ b/packages/server/api/src/app/webhooks/webhook-controller.ts @@ -9,9 +9,9 @@ import { WebhookUrlParams, WebsocketClientEvent, } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { trace } from '@opentelemetry/api' import { FastifyRequest } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import mime from 'mime-types' import { stepFileService } from '../file/step-file/step-file.service' import { projectService } from '../project/project-service' @@ -22,7 +22,7 @@ import { webhookService } from './webhook.service' const tracer = trace.getTracer('webhook-controller') -export const webhookController: FastifyPluginAsyncTypebox = async (app) => { +export const webhookController: FastifyPluginAsyncZod = async (app) => { app.all( '/:flowId/sync', diff --git a/packages/server/api/src/app/workers/engine-controller.ts b/packages/server/api/src/app/workers/engine-controller.ts index 5c1f8c13e54..79db86bf2e7 100644 --- a/packages/server/api/src/app/workers/engine-controller.ts +++ b/packages/server/api/src/app/workers/engine-controller.ts @@ -1,13 +1,13 @@ import { securityAccess } from '@activepieces/server-common' import { FlowVersion, GetFlowVersionForWorkerRequest, ListFlowsRequest } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { entitiesMustBeOwnedByCurrentProject } from '../authentication/authorization' import { flowService } from '../flows/flow/flow.service' import { flowVersionService } from '../flows/flow-version/flow-version.service' -export const flowEngineWorker: FastifyPluginAsyncTypebox = async (app) => { +export const flowEngineWorker: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) @@ -47,7 +47,7 @@ const GetAllFlowsByProjectParams = { security: securityAccess.engine(), }, schema: { - querystring: Type.Omit(ListFlowsRequest, ['projectId']), + querystring: ListFlowsRequest.omit({ projectId: true }), }, } diff --git a/packages/server/api/src/app/workers/machine/machine-controller.ts b/packages/server/api/src/app/workers/machine/machine-controller.ts index 20a5e19d270..fd0f90b294c 100644 --- a/packages/server/api/src/app/workers/machine/machine-controller.ts +++ b/packages/server/api/src/app/workers/machine/machine-controller.ts @@ -1,10 +1,10 @@ import { securityAccess } from '@activepieces/server-common' import { PrincipalType, WebsocketServerEvent, WorkerMachineHealthcheckRequest } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { websocketService } from '../../core/websockets.service' import { machineService } from './machine-service' -export const workerMachineController: FastifyPluginAsyncTypebox = async (app) => { +export const workerMachineController: FastifyPluginAsyncZod = async (app) => { websocketService.addListener(PrincipalType.WORKER, WebsocketServerEvent.FETCH_WORKER_SETTINGS, (socket) => { return async (request: WorkerMachineHealthcheckRequest, _principal, _projectId, callback?: (data: unknown) => void) => { diff --git a/packages/server/api/src/app/workers/queue/metrics/queue-metrics.controller.ts b/packages/server/api/src/app/workers/queue/metrics/queue-metrics.controller.ts index 88e9baa17e1..583f67bae1d 100644 --- a/packages/server/api/src/app/workers/queue/metrics/queue-metrics.controller.ts +++ b/packages/server/api/src/app/workers/queue/metrics/queue-metrics.controller.ts @@ -1,10 +1,10 @@ import { securityAccess } from '@activepieces/server-common' import { PrincipalType, QueueMetricsResponse, SERVICE_KEY_SECURITY_OPENAPI } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' import { queueMetricService } from './queue-metrics.service' -export const queueMetricsController: FastifyPluginAsyncTypebox = async (app) => { +export const queueMetricsController: FastifyPluginAsyncZod = async (app) => { app.get('/', GetMetrics, async (request) => queueMetricService(request.log).getMetrics()) } diff --git a/packages/server/api/src/app/workers/queue/metrics/queue-metrics.module.ts b/packages/server/api/src/app/workers/queue/metrics/queue-metrics.module.ts index ef0cc265de9..86c44ed052a 100644 --- a/packages/server/api/src/app/workers/queue/metrics/queue-metrics.module.ts +++ b/packages/server/api/src/app/workers/queue/metrics/queue-metrics.module.ts @@ -1,7 +1,7 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { queueMetricsController } from './queue-metrics.controller' -export const queueMetricsModule: FastifyPluginAsyncTypebox = async (fastify) => { +export const queueMetricsModule: FastifyPluginAsyncZod = async (fastify) => { await fastify.register(queueMetricsController, { prefix: '/v1/queue-metrics' }) } diff --git a/packages/server/api/src/app/workers/worker-controller.ts b/packages/server/api/src/app/workers/worker-controller.ts index 60bfe64b866..81388174373 100644 --- a/packages/server/api/src/app/workers/worker-controller.ts +++ b/packages/server/api/src/app/workers/worker-controller.ts @@ -1,8 +1,9 @@ import { MigrateJobsRequest, rejectedPromiseHandler, SavePayloadRequest, securityAccess, SubmitPayloadsRequest } from '@activepieces/server-common' import { ExecutionType, FileType } from '@activepieces/shared' -import { FastifyPluginAsyncTypebox, Type } from '@fastify/type-provider-typebox' import { trace } from '@opentelemetry/api' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { StatusCodes } from 'http-status-codes' +import { z } from 'zod' import { fileService } from '../file/file.service' import { flowRunService } from '../flows/flow-run/flow-run-service' import { flowVersionService } from '../flows/flow-version/flow-version.service' @@ -13,7 +14,7 @@ import { jobMigrations } from './queue/jobs-migrations' const tracer = trace.getTracer('worker-controller') -export const flowWorkerController: FastifyPluginAsyncTypebox = async (app) => { +export const flowWorkerController: FastifyPluginAsyncZod = async (app) => { app.get('/archive/:fileId', GetFileRequestParams, async (request, reply) => { const { fileId } = request.params @@ -137,8 +138,8 @@ const GetFileRequestParams = { security: securityAccess.worker(), }, schema: { - params: Type.Object({ - fileId: Type.String(), + params: z.object({ + fileId: z.string(), }), }, } diff --git a/packages/server/api/src/app/workers/worker-module.ts b/packages/server/api/src/app/workers/worker-module.ts index 52a2e030262..23b3c387d45 100644 --- a/packages/server/api/src/app/workers/worker-module.ts +++ b/packages/server/api/src/app/workers/worker-module.ts @@ -1,5 +1,5 @@ -import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox' import { FastifyInstance } from 'fastify' +import { FastifyPluginAsyncZod } from 'fastify-type-provider-zod' import { runsMetadataQueue } from '../flows/flow-run/flow-runs-queue' import { pubsub } from '../helper/pubsub' import { flowEngineWorker } from './engine-controller' @@ -9,7 +9,7 @@ import { queueMigration } from './queue/migration' import { setupBullMQBoard } from './queue/redis-bullboard' import { flowWorkerController } from './worker-controller' -export const workerModule: FastifyPluginAsyncTypebox = async (app) => { +export const workerModule: FastifyPluginAsyncZod = async (app) => { await app.register(flowWorkerController, { prefix: '/v1/workers', }) diff --git a/packages/server/api/test/helpers/flow-generator.ts b/packages/server/api/test/helpers/flow-generator.ts index 7db482e198d..8da02f3aa10 100644 --- a/packages/server/api/test/helpers/flow-generator.ts +++ b/packages/server/api/test/helpers/flow-generator.ts @@ -1,4 +1,4 @@ -import { apId, FlowAction, FlowActionType, FlowOperationStatus, FlowStatus, FlowTrigger, FlowTriggerType, FlowVersion, FlowVersionState, PopulatedFlow } from '@activepieces/shared' +import { apId, FlowAction, FlowActionType, FlowOperationStatus, FlowStatus, FlowTrigger, FlowTriggerType, FlowVersion, FlowVersionState, PopulatedFlow, PropertyExecutionType } from '@activepieces/shared' import { faker } from '@faker-js/faker' @@ -54,10 +54,10 @@ function randomizeTriggerMetadata(trigger: FlowTrigger): FlowTrigger { settings: { ...trigger.settings, propertySettings: { - server: faker.internet.url(), - port: faker.color.cmyk(), - username: faker.internet.userName(), - password: faker.internet.password(), + server: { type: PropertyExecutionType.MANUAL }, + port: { type: PropertyExecutionType.MANUAL }, + username: { type: PropertyExecutionType.DYNAMIC }, + password: { type: PropertyExecutionType.MANUAL }, }, }, } diff --git a/packages/server/api/test/integration/cloud/platform/platform.test.ts b/packages/server/api/test/integration/cloud/platform/platform.test.ts index 596709f7a73..d54e8c7a6a6 100644 --- a/packages/server/api/test/integration/cloud/platform/platform.test.ts +++ b/packages/server/api/test/integration/cloud/platform/platform.test.ts @@ -81,7 +81,11 @@ describe('Platform API', () => { ]) expect(responseBody.filteredPieceBehavior).toBe('ALLOWED') expect(responseBody.emailAuthEnabled).toBe(false) - expect(responseBody.federatedAuthProviders).toStrictEqual({}) + expect(responseBody.federatedAuthProviders).toStrictEqual({ + google: null, + github: null, + saml: null, + }) expect(responseBody.cloudAuthEnabled).toBe(false) }), diff --git a/packages/server/common/README.md b/packages/server/common/README.md index 221ef5323df..db46f80c120 100644 --- a/packages/server/common/README.md +++ b/packages/server/common/README.md @@ -1,7 +1,5 @@ # server-common -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build server-common` to build the library. +Run `turbo run build --filter=@activepieces/server-common` to build the library. diff --git a/packages/server/common/package.json b/packages/server/common/package.json index 663cd808253..0004c182d4b 100644 --- a/packages/server/common/package.json +++ b/packages/server/common/package.json @@ -13,7 +13,7 @@ "@activepieces/shared": "workspace:*", "@hyperdx/node-opentelemetry": "0.8.2", "@sentry/node": "7.120.0", - "@sinclair/typebox": "0.34.11", + "zod": "4.3.6", "async-mutex": "0.4.0", "axios": "1.13.5", "axios-retry": "4.4.1", diff --git a/packages/server/common/src/lib/job/index.ts b/packages/server/common/src/lib/job/index.ts index 3fa60cfc284..e15b6dbb34f 100644 --- a/packages/server/common/src/lib/job/index.ts +++ b/packages/server/common/src/lib/job/index.ts @@ -4,7 +4,7 @@ import { ProgressUpdateType, RunEnvironment, } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' export * from './runs-metadata-queue-factory' @@ -22,47 +22,47 @@ export const getPlatformQueueName = (platformId: string): string => { return `platform-${platformId}-jobs` } -export const ApQueueJob = Type.Object({ - id: Type.String(), - data: JobData, - engineToken: Type.String(), - attempsStarted: Type.Number(), +export const ApQueueJob = z.object({ + id: z.string(), + data: z.custom(), + engineToken: z.string(), + attempsStarted: z.number(), }) -export type ApQueueJob = Static -export const SendEngineUpdateRequest = Type.Object({ - workerServerId: Type.String(), - requestId: Type.String(), - response: Type.Unknown(), +export type ApQueueJob = z.infer +export const SendEngineUpdateRequest = z.object({ + workerServerId: z.string(), + requestId: z.string(), + response: z.unknown(), }) -export type SendEngineUpdateRequest = Static +export type SendEngineUpdateRequest = z.infer -export const MigrateJobsRequest = Type.Object({ - jobData: Type.Record(Type.String(), Type.Unknown()), +export const MigrateJobsRequest = z.object({ + jobData: z.record(z.string(), z.unknown()), }) -export type MigrateJobsRequest = Static +export type MigrateJobsRequest = z.infer -export const SavePayloadRequest = Type.Object({ - flowId: Type.String(), - projectId: Type.String(), - payloads: Type.Array(Type.Unknown()), +export const SavePayloadRequest = z.object({ + flowId: z.string(), + projectId: z.string(), + payloads: z.array(z.unknown()), }) -export type SavePayloadRequest = Static +export type SavePayloadRequest = z.infer -export const SubmitPayloadsRequest = Type.Object({ - flowVersionId: Type.String(), - projectId: Type.String(), - progressUpdateType: Type.Enum(ProgressUpdateType), - synchronousHandlerId: Type.Optional(Type.String()), - httpRequestId: Type.Optional(Type.String()), - payloads: Type.Array(Type.Unknown()), - environment: Type.Enum(RunEnvironment), - parentRunId: Type.Optional(Type.String()), - failParentOnFailure: Type.Optional(Type.Boolean()), - platformId: Type.String(), +export const SubmitPayloadsRequest = z.object({ + flowVersionId: z.string(), + projectId: z.string(), + progressUpdateType: z.nativeEnum(ProgressUpdateType), + synchronousHandlerId: z.string().optional(), + httpRequestId: z.string().optional(), + payloads: z.array(z.unknown()), + environment: z.nativeEnum(RunEnvironment), + parentRunId: z.string().optional(), + failParentOnFailure: z.boolean().optional(), + platformId: z.string(), }) -export type SubmitPayloadsRequest = Static +export type SubmitPayloadsRequest = z.infer diff --git a/packages/server/common/src/lib/job/runs-metadata-queue-factory.ts b/packages/server/common/src/lib/job/runs-metadata-queue-factory.ts index a3e2d040bcd..d8f35e003a4 100644 --- a/packages/server/common/src/lib/job/runs-metadata-queue-factory.ts +++ b/packages/server/common/src/lib/job/runs-metadata-queue-factory.ts @@ -1,6 +1,4 @@ -import { apId, ApId, FlowRun as FlowRunSchema } from '@activepieces/shared' -import { Static, Type } from '@sinclair/typebox' -import { Value } from '@sinclair/typebox/value' +import { apId, ApId, FlowRunStatus, PauseMetadata, RunEnvironment } from '@activepieces/shared' import { Queue } from 'bullmq' import { BullMQOtel } from 'bullmq-otel' import Redis from 'ioredis' @@ -42,7 +40,7 @@ export const runsMetadataQueueFactory = ({ throw new Error('Runs metadata queue not initialized') } - const cleanedParams = Value.Clean(RunsMetadataUpsertData, params) as RunsMetadataUpsertData + const cleanedParams = stripToRunsMetadataUpsertData(params) await distributedStore.merge(redisMetadataKey(cleanedParams.id), { ...cleanedParams, @@ -69,6 +67,23 @@ export const runsMetadataQueueFactory = ({ } } +const RUNS_METADATA_UPSERT_KEYS: (keyof RunsMetadataUpsertData)[] = [ + 'id', 'projectId', 'created', 'flowId', 'flowVersionId', 'environment', + 'triggeredBy', 'startTime', 'finishTime', 'status', 'tags', 'pauseMetadata', + 'failedStep', 'stepNameToTest', 'parentRunId', 'failParentOnFailure', + 'logsFileId', 'updated', 'stepsCount', 'requestId', +] + +function stripToRunsMetadataUpsertData(params: RunsMetadataUpsertData): RunsMetadataUpsertData { + const result: Record = {} + for (const key of RUNS_METADATA_UPSERT_KEYS) { + if (key in params) { + result[key] = params[key] + } + } + return result as RunsMetadataUpsertData +} + type RunsMetadataQueueFactoryParams = { createRedisConnection: () => Promise distributedStore: DistributedStore @@ -85,30 +100,25 @@ export type RunsMetadataQueueConfig = { redisFailedJobRetentionMaxCount: number } -export const RunsMetadataUpsertData = Type.Composite([ - Type.Required(Type.Pick(FlowRunSchema, ['id', 'projectId'])), - Type.Partial(Type.Pick(FlowRunSchema, [ - 'created', - 'flowId', - 'flowVersionId', - 'environment', - 'triggeredBy', - 'startTime', - 'finishTime', - 'status', - 'tags', - 'pauseMetadata', - 'failedStep', - 'stepNameToTest', - 'parentRunId', - 'failParentOnFailure', - 'logsFileId', - 'updated', - 'stepsCount', - ])), - Type.Object({ - requestId: Type.Optional(Type.String()), - }), -]) - -export type RunsMetadataUpsertData = Static +export type RunsMetadataUpsertData = { + id: string + projectId: string + created?: string + flowId?: string + flowVersionId?: string + environment?: RunEnvironment + triggeredBy?: string + startTime?: string + finishTime?: string + status?: FlowRunStatus + tags?: string[] + pauseMetadata?: PauseMetadata + failedStep?: { name: string, displayName: string } + stepNameToTest?: string + parentRunId?: string + failParentOnFailure?: boolean + logsFileId?: string | null + updated?: string + stepsCount?: number + requestId?: string +} diff --git a/packages/server/common/src/lib/pieces/file-pieces-utils.ts b/packages/server/common/src/lib/pieces/file-pieces-utils.ts index edb1399baa2..3e5d317e67d 100644 --- a/packages/server/common/src/lib/pieces/file-pieces-utils.ts +++ b/packages/server/common/src/lib/pieces/file-pieces-utils.ts @@ -17,10 +17,6 @@ export const filePiecesUtils = (log: FastifyBaseLogger) => ({ return packageJson.name }, - getProjectJsonFromFolderPath: async (folderPath: string): Promise => { - return join(folderPath, 'project.json') - }, - getPieceDependencies: async (folderPath: string): Promise | null> => { try { const packageJson = await readFile(join(folderPath, 'package.json'), 'utf-8').then(JSON.parse) diff --git a/packages/server/common/src/lib/redis/types.ts b/packages/server/common/src/lib/redis/types.ts index ed6dc2b5344..ad0aaae1136 100644 --- a/packages/server/common/src/lib/redis/types.ts +++ b/packages/server/common/src/lib/redis/types.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' export enum RedisType { @@ -7,19 +7,19 @@ export enum RedisType { STANDALONE = 'STANDALONE', } -export const RedisConnectionSettings = Type.Object({ - REDIS_TYPE: Type.String(), - REDIS_SSL_CA_FILE: Type.Union([Type.String(), Type.Undefined()]), - REDIS_DB: Type.Union([Type.Number(), Type.Undefined()]), - REDIS_HOST: Type.Union([Type.String(), Type.Undefined()]), - REDIS_PASSWORD: Type.Union([Type.String(), Type.Undefined()]), - REDIS_PORT: Type.Union([Type.String(), Type.Undefined()]), - REDIS_URL: Type.Union([Type.String(), Type.Undefined()]), - REDIS_USER: Type.Union([Type.String(), Type.Undefined()]), - REDIS_USE_SSL: Type.Union([Type.Boolean(), Type.Undefined()]), - REDIS_SENTINEL_ROLE: Type.Union([Type.String(), Type.Undefined()]), - REDIS_SENTINEL_HOSTS: Type.Union([Type.String(), Type.Undefined()]), - REDIS_SENTINEL_NAME: Type.Union([Type.String(), Type.Undefined()]), +export const RedisConnectionSettings = z.object({ + REDIS_TYPE: z.string(), + REDIS_SSL_CA_FILE: z.string().optional(), + REDIS_DB: z.number().optional(), + REDIS_HOST: z.string().optional(), + REDIS_PASSWORD: z.string().optional(), + REDIS_PORT: z.string().optional(), + REDIS_URL: z.string().optional(), + REDIS_USER: z.string().optional(), + REDIS_USE_SSL: z.boolean().optional(), + REDIS_SENTINEL_ROLE: z.string().optional(), + REDIS_SENTINEL_HOSTS: z.string().optional(), + REDIS_SENTINEL_NAME: z.string().optional(), }) -export type RedisConnectionSettings = Static +export type RedisConnectionSettings = z.infer diff --git a/packages/server/engine/README.md b/packages/server/engine/README.md index fb16178cdbc..b6818d4f881 100644 --- a/packages/server/engine/README.md +++ b/packages/server/engine/README.md @@ -1,11 +1,5 @@ # engine -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build engine` to build the library. - -## Running unit tests - -Run `nx test engine` to execute the unit tests via [Jest](https://jestjs.io). +Run `turbo run build --filter=@activepieces/engine` to build the library. diff --git a/packages/server/engine/package.json b/packages/server/engine/package.json index cda7982fbe3..e44dc036b1f 100644 --- a/packages/server/engine/package.json +++ b/packages/server/engine/package.json @@ -26,7 +26,7 @@ "socket.io-client": "4.8.1", "string-replace-async": "3.0.2", "tslib": "2.6.2", - "zod": "4.1.13" + "zod": "4.3.6" }, "devDependencies": { "@types/mime-types": "2.1.1", diff --git a/packages/server/sandbox/test/sandbox-pool.test.ts b/packages/server/sandbox/test/sandbox-pool.test.ts index ff40359bad7..658559d601e 100644 --- a/packages/server/sandbox/test/sandbox-pool.test.ts +++ b/packages/server/sandbox/test/sandbox-pool.test.ts @@ -124,6 +124,6 @@ describe('createSandboxPool', () => { pool.init(log, { concurrency: 3, reusable: false, getGeneration: () => generation }) expect(pool.getFreeSandboxes()).toBe(3) - expect(pool.getTotalSandboxes()).toBe(0) + expect(pool.getTotalSandboxes()).toBe(3) }) }) diff --git a/packages/server/worker/README.md b/packages/server/worker/README.md index 8226418b2f9..393b253892b 100644 --- a/packages/server/worker/README.md +++ b/packages/server/worker/README.md @@ -1,7 +1,5 @@ # worker -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build worker` to build the library. +Run `turbo run build --filter=worker` to build the library. diff --git a/packages/shared/README.md b/packages/shared/README.md index 93629ba1cd8..b92d0af5b1e 100644 --- a/packages/shared/README.md +++ b/packages/shared/README.md @@ -1,7 +1,5 @@ # shared -This library was generated with [Nx](https://nx.dev). - ## Building -Run `nx build shared` to build the library. +Run `turbo run build --filter=@activepieces/shared` to build the library. diff --git a/packages/shared/package.json b/packages/shared/package.json index 2ab4c23994d..7e520b2e50b 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,16 +1,16 @@ { "name": "@activepieces/shared", - "version": "0.41.1", + "version": "0.42.0", "type": "commonjs", "main": "./dist/src/index.js", "types": "./dist/src/index.d.ts", "dependencies": { - "@sinclair/typebox": "0.34.11", "deepmerge-ts": "7.1.0", "nanoid": "3.3.8", "semver": "7.6.0", "socket.io-client": "4.8.1", - "tslib": "2.6.2" + "tslib": "2.6.2", + "zod": "4.3.6" }, "scripts": { "build": "tsc -p tsconfig.lib.json && cp package.json dist/", diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 5dab9663cd2..e3d33be87a9 100755 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -101,8 +101,3 @@ export * from './lib/ee/event-destinations' export * from './lib/ee/secret-managers' export * from './lib/ee/scim' export * from './lib/management/project/project-requests' - -// Sets TypeSystemPolicy for TypeBox -// Look at https://github.com/sinclairzx81/typebox/issues/350 -import { TypeSystemPolicy } from '@sinclair/typebox/system' -TypeSystemPolicy.ExactOptionalPropertyTypes = false diff --git a/packages/shared/src/lib/automation/agents/index.ts b/packages/shared/src/lib/automation/agents/index.ts index 456c5e4df76..1a202ae6cbd 100644 --- a/packages/shared/src/lib/automation/agents/index.ts +++ b/packages/shared/src/lib/automation/agents/index.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' -import { DiscriminatedUnion, Nullable } from '../../core/common' +import { z } from 'zod' +import { Nullable } from '../../core/common' import { AIProviderName } from '../../management/ai-providers' export * from './tools' export * from './mcp' @@ -38,12 +38,12 @@ export enum ToolCallType { MCP = 'MCP', } -export const AgentOutputField = Type.Object({ - displayName: Type.String(), - description: Type.Optional(Type.String()), - type: Type.Enum(AgentOutputFieldType), +export const AgentOutputField = z.object({ + displayName: z.string(), + description: z.string().optional(), + type: z.nativeEnum(AgentOutputFieldType), }) -export type AgentOutputField = Static +export type AgentOutputField = z.infer export type AgentResult = { prompt: string @@ -65,47 +65,47 @@ export type AgentProviderModel = { model: string } -export const MarkdownContentBlock = Type.Object({ - type: Type.Literal(ContentBlockType.MARKDOWN), - markdown: Type.String(), +export const MarkdownContentBlock = z.object({ + type: z.literal(ContentBlockType.MARKDOWN), + markdown: z.string(), }) -export type MarkdownContentBlock = Static +export type MarkdownContentBlock = z.infer -const ToolCallBaseSchema = Type.Object({ - type: Type.Literal(ContentBlockType.TOOL_CALL), - input: Nullable(Type.Record(Type.String(), Type.Unknown())), - output: Type.Optional(Type.Unknown()), - toolName: Type.String(), - status: Type.Enum(ToolCallStatus), - toolCallId: Type.String(), - startTime: Type.String(), - endTime: Type.Optional(Type.String()), +const ToolCallBaseSchema = z.object({ + type: z.literal(ContentBlockType.TOOL_CALL), + input: Nullable(z.record(z.string(), z.unknown())), + output: z.unknown().optional(), + toolName: z.string(), + status: z.nativeEnum(ToolCallStatus), + toolCallId: z.string(), + startTime: z.string(), + endTime: z.string().optional(), }) -export type ToolCallBase = Static +export type ToolCallBase = z.infer -export const ToolCallContentBlock = DiscriminatedUnion('toolCallType', [ - Type.Object({ - ...ToolCallBaseSchema.properties, - toolCallType: Type.Literal(ToolCallType.PIECE), - pieceName: Type.String(), - pieceVersion: Type.String(), - actionName: Type.String(), +export const ToolCallContentBlock = z.discriminatedUnion('toolCallType', [ + z.object({ + ...ToolCallBaseSchema.shape, + toolCallType: z.literal(ToolCallType.PIECE), + pieceName: z.string(), + pieceVersion: z.string(), + actionName: z.string(), }), - Type.Object({ - ...ToolCallBaseSchema.properties, - toolCallType: Type.Literal(ToolCallType.FLOW), - displayName: Type.String(), - externalFlowId: Type.String(), + z.object({ + ...ToolCallBaseSchema.shape, + toolCallType: z.literal(ToolCallType.FLOW), + displayName: z.string(), + externalFlowId: z.string(), }), - Type.Object({ - ...ToolCallBaseSchema.properties, - toolCallType: Type.Literal(ToolCallType.MCP), - displayName: Type.String(), - serverUrl: Type.String(), + z.object({ + ...ToolCallBaseSchema.shape, + toolCallType: z.literal(ToolCallType.MCP), + displayName: z.string(), + serverUrl: z.string(), }), ]) -export type ToolCallContentBlock = Static +export type ToolCallContentBlock = z.infer -export const AgentStepBlock = Type.Union([MarkdownContentBlock, ToolCallContentBlock]) -export type AgentStepBlock = Static \ No newline at end of file +export const AgentStepBlock = z.union([MarkdownContentBlock, ToolCallContentBlock]) +export type AgentStepBlock = z.infer diff --git a/packages/shared/src/lib/automation/agents/tools.ts b/packages/shared/src/lib/automation/agents/tools.ts index d098434724a..3a3b0b067a0 100644 --- a/packages/shared/src/lib/automation/agents/tools.ts +++ b/packages/shared/src/lib/automation/agents/tools.ts @@ -1,5 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' -import { DiscriminatedUnion } from '../../core/common' +import { z } from 'zod' export const TASK_COMPLETION_TOOL_NAME = 'updateTaskStatus' @@ -9,17 +8,17 @@ export enum FieldControlMode { LEAVE_EMPTY = 'leave-empty', } -export const PredefinedInputField = Type.Object({ - mode: Type.Enum(FieldControlMode), - value: Type.Unknown(), +export const PredefinedInputField = z.object({ + mode: z.nativeEnum(FieldControlMode), + value: z.unknown(), }) -export type PredefinedInputField = Static +export type PredefinedInputField = z.infer -export const PredefinedInputsStructure = Type.Object({ - auth: Type.Optional(Type.String()), - fields: Type.Record(Type.String(), PredefinedInputField), +export const PredefinedInputsStructure = z.object({ + auth: z.string().optional(), + fields: z.record(z.string(), PredefinedInputField), }) -export type PredefinedInputsStructure = Static +export type PredefinedInputsStructure = z.infer export enum AgentToolType { PIECE = 'PIECE', @@ -41,72 +40,72 @@ export enum McpAuthType { } const AgentToolBase = { - toolName: Type.String({ minLength: 1 }), + toolName: z.string().min(1), } -export const McpAuthNone = Type.Object({ - type: Type.Literal(McpAuthType.NONE), +export const McpAuthNone = z.object({ + type: z.literal(McpAuthType.NONE), }) -export const McpAuthAccessToken = Type.Object({ - type: Type.Literal(McpAuthType.ACCESS_TOKEN), - accessToken: Type.String(), +export const McpAuthAccessToken = z.object({ + type: z.literal(McpAuthType.ACCESS_TOKEN), + accessToken: z.string(), }) -export const McpAuthApiKey = Type.Object({ - type: Type.Literal(McpAuthType.API_KEY), - apiKey: Type.String(), - apiKeyHeader: Type.String(), +export const McpAuthApiKey = z.object({ + type: z.literal(McpAuthType.API_KEY), + apiKey: z.string(), + apiKeyHeader: z.string(), }) -export const McpAuthHeaders = Type.Object({ - type: Type.Literal(McpAuthType.HEADERS), - headers: Type.Record(Type.String(), Type.String()), +export const McpAuthHeaders = z.object({ + type: z.literal(McpAuthType.HEADERS), + headers: z.record(z.string(), z.string()), }) -export const McpAuthConfig = DiscriminatedUnion('type', [ +export const McpAuthConfig = z.discriminatedUnion('type', [ McpAuthNone, McpAuthAccessToken, McpAuthApiKey, McpAuthHeaders, ]) -export type McpAuthConfig = Static +export type McpAuthConfig = z.infer -export const AgentPieceToolMetadata = Type.Object({ - pieceName: Type.String(), - pieceVersion: Type.String(), - actionName: Type.String(), - predefinedInput: Type.Optional(PredefinedInputsStructure), +export const AgentPieceToolMetadata = z.object({ + pieceName: z.string(), + pieceVersion: z.string(), + actionName: z.string(), + predefinedInput: PredefinedInputsStructure.optional(), }) -export type AgentPieceToolMetadata = Static +export type AgentPieceToolMetadata = z.infer -export const AgentPieceTool = Type.Object({ - type: Type.Literal(AgentToolType.PIECE), +export const AgentPieceTool = z.object({ + type: z.literal(AgentToolType.PIECE), ...AgentToolBase, pieceMetadata: AgentPieceToolMetadata, }) -export type AgentPieceTool = Static +export type AgentPieceTool = z.infer -export const AgentFlowTool = Type.Object({ - type: Type.Literal(AgentToolType.FLOW), +export const AgentFlowTool = z.object({ + type: z.literal(AgentToolType.FLOW), ...AgentToolBase, - externalFlowId: Type.String(), - flowDisplayName: Type.Optional(Type.String()), + externalFlowId: z.string(), + flowDisplayName: z.string().optional(), }) -export type AgentFlowTool = Static +export type AgentFlowTool = z.infer -export const AgentMcpTool = Type.Object({ - type: Type.Literal(AgentToolType.MCP), +export const AgentMcpTool = z.object({ + type: z.literal(AgentToolType.MCP), ...AgentToolBase, - serverUrl: Type.String({ format: 'uri' }), - protocol: Type.Enum(McpProtocol), + serverUrl: z.string().url(), + protocol: z.nativeEnum(McpProtocol), auth: McpAuthConfig, }) -export type AgentMcpTool = Static +export type AgentMcpTool = z.infer -export const AgentTool = DiscriminatedUnion('type', [ +export const AgentTool = z.discriminatedUnion('type', [ AgentPieceTool, AgentFlowTool, AgentMcpTool, ]) -export type AgentTool = Static \ No newline at end of file +export type AgentTool = z.infer diff --git a/packages/shared/src/lib/automation/app-connection/app-connection.ts b/packages/shared/src/lib/automation/app-connection/app-connection.ts index 0d2f89bfb2f..7fdb1928faf 100755 --- a/packages/shared/src/lib/automation/app-connection/app-connection.ts +++ b/packages/shared/src/lib/automation/app-connection/app-connection.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModel, BaseModelSchema, Nullable } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { Metadata } from '../../core/common/metadata' @@ -114,34 +114,32 @@ export type BasicAuthConnection = AppConnection export type CustomAuthConnection = AppConnection export type NoAuthConnection = AppConnection -export const AppConnectionWithoutSensitiveData = Type.Object({ +export const AppConnectionWithoutSensitiveData = z.object({ ...BaseModelSchema, - externalId: Type.String(), - displayName: Type.String(), - type: Type.Enum(AppConnectionType), - pieceName: Type.String(), - projectIds: Type.Array(ApId), - platformId: Nullable(Type.String()), - scope: Type.Enum(AppConnectionScope), - status: Type.Enum(AppConnectionStatus), - ownerId: Nullable(Type.String()), + externalId: z.string(), + displayName: z.string(), + type: z.nativeEnum(AppConnectionType), + pieceName: z.string(), + projectIds: z.array(ApId), + platformId: Nullable(z.string()), + scope: z.nativeEnum(AppConnectionScope), + status: z.nativeEnum(AppConnectionStatus), + ownerId: Nullable(z.string()), owner: Nullable(UserWithMetaInformation), metadata: Nullable(Metadata), - flowIds: Nullable(Type.Array(ApId)), - pieceVersion: Type.String(), - preSelectForNewProjects: Type.Boolean(), -}, { - description: 'App connection is a connection to an external app.', + flowIds: Nullable(z.array(ApId)), + pieceVersion: z.string(), + preSelectForNewProjects: z.boolean(), +}).describe('App connection is a connection to an external app.') +export type AppConnectionWithoutSensitiveData = z.infer & { __brand: 'AppConnectionWithoutSensitiveData' } + +export const AppConnectionOwners = z.object({ + firstName: z.string(), + lastName: z.string(), + email: z.string(), }) -export type AppConnectionWithoutSensitiveData = Static & { __brand: 'AppConnectionWithoutSensitiveData' } -export const AppConnectionOwners = Type.Object({ - firstName: Type.String(), - lastName: Type.String(), - email: Type.String(), -}) - -export type AppConnectionOwners = Static +export type AppConnectionOwners = z.infer /**i.e props: {projectId: "123"} and value: "{{projectId}}" will return "123" */ export const resolveValueFromProps = (props: Record | undefined, value: string)=>{ let resolvedScope = value @@ -152,4 +150,4 @@ export const resolveValueFromProps = (props: Record | undefined resolvedScope = resolvedScope.replace(`{${key}}`, String(value)) }) return resolvedScope -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/automation/app-connection/dto/read-app-connection-request.ts b/packages/shared/src/lib/automation/app-connection/dto/read-app-connection-request.ts index 2343501301e..c95c3cea290 100755 --- a/packages/shared/src/lib/automation/app-connection/dto/read-app-connection-request.ts +++ b/packages/shared/src/lib/automation/app-connection/dto/read-app-connection-request.ts @@ -1,31 +1,32 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' +import { OptionalArrayFromQuery } from '../../../core/common/base-model' import { AppConnectionScope, AppConnectionStatus } from '../app-connection' -export const ListAppConnectionsRequestQuery = Type.Object({ - cursor: Type.Optional(Type.String({})), - projectId: Type.String(), - scope: Type.Optional(Type.Enum(AppConnectionScope)), - pieceName: Type.Optional(Type.String({})), - displayName: Type.Optional(Type.String({})), - status: Type.Optional(Type.Array(Type.Enum(AppConnectionStatus))), - limit: Type.Optional(Type.Number({})), +export const ListAppConnectionsRequestQuery = z.object({ + cursor: z.string().optional(), + projectId: z.string(), + scope: z.nativeEnum(AppConnectionScope).optional(), + pieceName: z.string().optional(), + displayName: z.string().optional(), + status: OptionalArrayFromQuery(z.nativeEnum(AppConnectionStatus)), + limit: z.coerce.number().optional(), }) -export type ListAppConnectionsRequestQuery = Static< +export type ListAppConnectionsRequestQuery = z.infer< typeof ListAppConnectionsRequestQuery > -export const GetAppConnectionForWorkerRequestQuery = Type.Object({ - externalId: Type.String(), +export const GetAppConnectionForWorkerRequestQuery = z.object({ + externalId: z.string(), }) -export type GetAppConnectionForWorkerRequestQuery = Static< +export type GetAppConnectionForWorkerRequestQuery = z.infer< typeof GetAppConnectionForWorkerRequestQuery > -export const ListGlobalConnectionsRequestQuery = Type.Omit(ListAppConnectionsRequestQuery, ['projectId']) -export type ListGlobalConnectionsRequestQuery = Static +export const ListGlobalConnectionsRequestQuery = ListAppConnectionsRequestQuery.omit({ projectId: true }) +export type ListGlobalConnectionsRequestQuery = z.infer -export const ListAppConnectionOwnersRequestQuery = Type.Object({ - projectId: Type.String(), +export const ListAppConnectionOwnersRequestQuery = z.object({ + projectId: z.string(), }) -export type ListAppConnectionOwnersRequestQuery = Static +export type ListAppConnectionOwnersRequestQuery = z.infer diff --git a/packages/shared/src/lib/automation/app-connection/dto/upsert-app-connection-request.ts b/packages/shared/src/lib/automation/app-connection/dto/upsert-app-connection-request.ts index 059d66c0dd4..1c4b51ceb5c 100644 --- a/packages/shared/src/lib/automation/app-connection/dto/upsert-app-connection-request.ts +++ b/packages/shared/src/lib/automation/app-connection/dto/upsert-app-connection-request.ts @@ -1,15 +1,15 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Metadata } from '../../../core/common/metadata' import { AppConnectionScope, AppConnectionType } from '../app-connection' import { OAuth2AuthorizationMethod } from '../oauth2-authorization-method' const commonAuthProps = { - externalId: Type.String({}), - displayName: Type.String({}), - pieceName: Type.String({}), - projectId: Type.String({}), - metadata: Type.Optional(Metadata), - pieceVersion: Type.Optional(Type.String({})), + externalId: z.string(), + displayName: z.string(), + pieceName: z.string(), + projectId: z.string(), + metadata: Metadata.optional(), + pieceVersion: z.string().optional(), } @@ -20,125 +20,88 @@ export enum OAuth2GrantType { CLIENT_CREDENTIALS = 'client_credentials', } -const propsSchema = Type.Record(Type.String(), Type.Unknown()) -export const UpsertCustomAuthRequest = Type.Object({ +const propsSchema = z.record(z.string(), z.unknown()) +export const UpsertCustomAuthRequest = z.object({ ...commonAuthProps, - type: Type.Literal(AppConnectionType.CUSTOM_AUTH), - value: Type.Object({ - type: Type.Literal(AppConnectionType.CUSTOM_AUTH), + type: z.literal(AppConnectionType.CUSTOM_AUTH), + value: z.object({ + type: z.literal(AppConnectionType.CUSTOM_AUTH), props: propsSchema, }), -}, { - title: 'Custom Auth', - description: 'Custom Auth', -}) +}).describe('Custom Auth') -export const UpsertNoAuthRequest = Type.Object({ +export const UpsertNoAuthRequest = z.object({ ...commonAuthProps, - type: Type.Literal(AppConnectionType.NO_AUTH), - value: Type.Object({ - type: Type.Literal(AppConnectionType.NO_AUTH), + type: z.literal(AppConnectionType.NO_AUTH), + value: z.object({ + type: z.literal(AppConnectionType.NO_AUTH), }), -}, { - title: 'No Auth', - description: 'No Auth', -}) +}).describe('No Auth') const commonOAuth2ValueProps = { - client_id: Type.String({ - minLength: 1, - }), - code: Type.String({ - minLength: 1, - }), - code_challenge: Type.Optional(Type.String({})), - scope: Type.String(), - authorization_method: Type.Optional(Type.Enum(OAuth2AuthorizationMethod)), + client_id: z.string().min(1), + code: z.string().min(1), + code_challenge: z.string().optional(), + scope: z.string(), + authorization_method: z.nativeEnum(OAuth2AuthorizationMethod).optional(), } -export const UpsertPlatformOAuth2Request = Type.Object({ +export const UpsertPlatformOAuth2Request = z.object({ ...commonAuthProps, - type: Type.Literal(AppConnectionType.PLATFORM_OAUTH2), - value: Type.Object({ + type: z.literal(AppConnectionType.PLATFORM_OAUTH2), + value: z.object({ ...commonOAuth2ValueProps, - props: Type.Optional(propsSchema), - type: Type.Literal(AppConnectionType.PLATFORM_OAUTH2), - redirect_url: Type.String({ - minLength: 1, - }), + props: propsSchema.optional(), + type: z.literal(AppConnectionType.PLATFORM_OAUTH2), + redirect_url: z.string().min(1), }), -}, { - title: 'Platform OAuth2', - description: 'Platform OAuth2', -}) +}).describe('Platform OAuth2') -export const UpsertCloudOAuth2Request = Type.Object({ +export const UpsertCloudOAuth2Request = z.object({ ...commonAuthProps, - type: Type.Literal(AppConnectionType.CLOUD_OAUTH2), - value: Type.Object({ + type: z.literal(AppConnectionType.CLOUD_OAUTH2), + value: z.object({ ...commonOAuth2ValueProps, - props: Type.Optional(propsSchema), - scope: Type.String(), - type: Type.Literal(AppConnectionType.CLOUD_OAUTH2), + props: propsSchema.optional(), + scope: z.string(), + type: z.literal(AppConnectionType.CLOUD_OAUTH2), }), -}, { - title: 'Cloud OAuth2', - description: 'Cloud OAuth2', -}) +}).describe('Cloud OAuth2') -export const UpsertSecretTextRequest = Type.Object({ +export const UpsertSecretTextRequest = z.object({ ...commonAuthProps, - type: Type.Literal(AppConnectionType.SECRET_TEXT), - value: Type.Object({ - type: Type.Literal(AppConnectionType.SECRET_TEXT), - secret_text: Type.String({ - minLength: 1, - }), + type: z.literal(AppConnectionType.SECRET_TEXT), + value: z.object({ + type: z.literal(AppConnectionType.SECRET_TEXT), + secret_text: z.string().min(1), }), -}, { - title: 'Secret Text', - description: 'Secret Text', -}) +}).describe('Secret Text') -export const UpsertOAuth2Request = Type.Object({ +export const UpsertOAuth2Request = z.object({ ...commonAuthProps, - type: Type.Literal(AppConnectionType.OAUTH2), - value: Type.Object({ + type: z.literal(AppConnectionType.OAUTH2), + value: z.object({ ...commonOAuth2ValueProps, - client_secret: Type.String({ - minLength: 1, - }), - grant_type: Type.Optional(Type.Enum(OAuth2GrantType)), - props: Type.Optional(Type.Record(Type.String(), Type.Any())), - authorization_method: Type.Optional(Type.Enum(OAuth2AuthorizationMethod)), - redirect_url: Type.String({ - minLength: 1, - }), - type: Type.Literal(AppConnectionType.OAUTH2), + client_secret: z.string().min(1), + grant_type: z.nativeEnum(OAuth2GrantType).optional(), + props: z.record(z.string(), z.any()).optional(), + authorization_method: z.nativeEnum(OAuth2AuthorizationMethod).optional(), + redirect_url: z.string().min(1), + type: z.literal(AppConnectionType.OAUTH2), }), -}, { - title: 'OAuth2', - description: 'OAuth2', -}) +}).describe('OAuth2') -export const UpsertBasicAuthRequest = Type.Object({ +export const UpsertBasicAuthRequest = z.object({ ...commonAuthProps, - type: Type.Literal(AppConnectionType.BASIC_AUTH), - value: Type.Object({ - username: Type.String({ - minLength: 1, - }), - password: Type.String({ - minLength: 1, - }), - type: Type.Literal(AppConnectionType.BASIC_AUTH), + type: z.literal(AppConnectionType.BASIC_AUTH), + value: z.object({ + username: z.string().min(1), + password: z.string().min(1), + type: z.literal(AppConnectionType.BASIC_AUTH), }), -}, { - title: 'Basic Auth', - description: 'Basic Auth', -}) +}).describe('Basic Auth') -export const UpsertAppConnectionRequestBody = Type.Union([ +export const UpsertAppConnectionRequestBody = z.union([ UpsertSecretTextRequest, UpsertOAuth2Request, UpsertCloudOAuth2Request, @@ -148,62 +111,58 @@ export const UpsertAppConnectionRequestBody = Type.Union([ UpsertNoAuthRequest, ]) -export type UpsertCloudOAuth2Request = Static -export type UpsertPlatformOAuth2Request = Static -export type UpsertOAuth2Request = Static -export type UpsertSecretTextRequest = Static -export type UpsertBasicAuthRequest = Static -export type UpsertCustomAuthRequest = Static -export type UpsertNoAuthRequest = Static -export type UpsertAppConnectionRequestBody = Static +export type UpsertCloudOAuth2Request = z.infer +export type UpsertPlatformOAuth2Request = z.infer +export type UpsertOAuth2Request = z.infer +export type UpsertSecretTextRequest = z.infer +export type UpsertBasicAuthRequest = z.infer +export type UpsertCustomAuthRequest = z.infer +export type UpsertNoAuthRequest = z.infer +export type UpsertAppConnectionRequestBody = z.infer -export const UpdateConnectionValueRequestBody = Type.Object({ - displayName: Type.String({ - minLength: 1, - }), - metadata: Type.Optional(Metadata), +export const UpdateConnectionValueRequestBody = z.object({ + displayName: z.string().min(1), + metadata: Metadata.optional(), }) -export const UpdateGlobalConnectionValueRequestBody = Type.Object({ - displayName: Type.String({ - minLength: 1, - }), - projectIds: Type.Optional(Type.Array(Type.String())), - metadata: Type.Optional(Metadata), - preSelectForNewProjects: Type.Optional(Type.Boolean()), +export const UpdateGlobalConnectionValueRequestBody = z.object({ + displayName: z.string().min(1), + projectIds: z.array(z.string()).optional(), + metadata: Metadata.optional(), + preSelectForNewProjects: z.boolean().optional(), }) -export type UpdateConnectionValueRequestBody = Static -export type UpdateGlobalConnectionValueRequestBody = Static -const GlobalConnectionExtras = Type.Object({ - scope: Type.Literal(AppConnectionScope.PLATFORM), - projectIds: Type.Array(Type.String()), - externalId: Type.Optional(Type.String()), - metadata: Type.Optional(Metadata), - preSelectForNewProjects: Type.Optional(Type.Boolean()), +export type UpdateConnectionValueRequestBody = z.infer +export type UpdateGlobalConnectionValueRequestBody = z.infer +const GlobalConnectionExtras = z.object({ + scope: z.literal(AppConnectionScope.PLATFORM), + projectIds: z.array(z.string()), + externalId: z.string().optional(), + metadata: Metadata.optional(), + preSelectForNewProjects: z.boolean().optional(), }) -export const UpsertGlobalConnectionRequestBody = - Type.Union([ - Type.Composite([Type.Omit(UpsertSecretTextRequest, ['projectId', 'externalId']), GlobalConnectionExtras]), - Type.Composite([Type.Omit(UpsertOAuth2Request, ['projectId', 'externalId']), GlobalConnectionExtras]), - Type.Composite([Type.Omit(UpsertCloudOAuth2Request, ['projectId', 'externalId']), GlobalConnectionExtras]), - Type.Composite([Type.Omit(UpsertPlatformOAuth2Request, ['projectId', 'externalId']), GlobalConnectionExtras]), - Type.Composite([Type.Omit(UpsertBasicAuthRequest, ['projectId', 'externalId']), GlobalConnectionExtras]), - Type.Composite([Type.Omit(UpsertCustomAuthRequest, ['projectId', 'externalId']), GlobalConnectionExtras]), - Type.Composite([Type.Omit(UpsertNoAuthRequest, ['projectId', 'externalId']), GlobalConnectionExtras]), +export const UpsertGlobalConnectionRequestBody = + z.union([ + UpsertSecretTextRequest.omit({ projectId: true, externalId: true }).merge(GlobalConnectionExtras), + UpsertOAuth2Request.omit({ projectId: true, externalId: true }).merge(GlobalConnectionExtras), + UpsertCloudOAuth2Request.omit({ projectId: true, externalId: true }).merge(GlobalConnectionExtras), + UpsertPlatformOAuth2Request.omit({ projectId: true, externalId: true }).merge(GlobalConnectionExtras), + UpsertBasicAuthRequest.omit({ projectId: true, externalId: true }).merge(GlobalConnectionExtras), + UpsertCustomAuthRequest.omit({ projectId: true, externalId: true }).merge(GlobalConnectionExtras), + UpsertNoAuthRequest.omit({ projectId: true, externalId: true }).merge(GlobalConnectionExtras), ]) -export type UpsertGlobalConnectionRequestBody = Static +export type UpsertGlobalConnectionRequestBody = z.infer -export const ReplaceAppConnectionsRequestBody = Type.Object({ - sourceAppConnectionId: Type.String(), - targetAppConnectionId: Type.String(), - projectId: Type.String(), +export const ReplaceAppConnectionsRequestBody = z.object({ + sourceAppConnectionId: z.string(), + targetAppConnectionId: z.string(), + projectId: z.string(), }) -export type ReplaceAppConnectionsRequestBody = Static +export type ReplaceAppConnectionsRequestBody = z.infer -export const ListFlowsFromAppConnectionRequestQuery = Type.Object({ - sourceAppConnectionIds: Type.Array(Type.String()), - projectId: Type.String(), +export const ListFlowsFromAppConnectionRequestQuery = z.object({ + sourceAppConnectionIds: z.array(z.string()), + projectId: z.string(), }) -export type ListFlowsFromAppConnectionRequestQuery = Static +export type ListFlowsFromAppConnectionRequestQuery = z.infer diff --git a/packages/shared/src/lib/automation/engine/engine-operation.ts b/packages/shared/src/lib/automation/engine/engine-operation.ts index cbe52378426..e250562afec 100644 --- a/packages/shared/src/lib/automation/engine/engine-operation.ts +++ b/packages/shared/src/lib/automation/engine/engine-operation.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { PlatformId } from '../../management/platform' import { ProjectId } from '../../management/project/project' import { ExecutionToolStatus, PredefinedInputsStructure } from '../agents' @@ -46,17 +46,17 @@ export const enum EngineSocketEvent { } -export const EngineStdout = Type.Object({ - message: Type.String(), +export const EngineStdout = z.object({ + message: z.string(), }) -export const EngineStderr = Type.Object({ - message: Type.String(), +export const EngineStderr = z.object({ + message: z.string(), }) -export type EngineStdout = Static -export type EngineStderr = Static +export type EngineStdout = z.infer +export type EngineStderr = z.infer export type BaseEngineOperation = { @@ -139,11 +139,11 @@ export type ExecuteTriggerOperation = BaseEngineOper } -export const TriggerPayload = Type.Object({ - body: Type.Unknown(), - rawBody: Type.Optional(Type.Unknown()), - headers: Type.Record(Type.String(), Type.String()), - queryParams: Type.Record(Type.String(), Type.String()), +export const TriggerPayload = z.object({ + body: z.unknown(), + rawBody: z.unknown().optional(), + headers: z.record(z.string(), z.string()), + queryParams: z.record(z.string(), z.string()), }) export type TriggerPayload = { @@ -197,13 +197,13 @@ type ExecuteOnEnableTriggerResponse = { scheduleOptions?: ScheduleOptions } -export const EngineHttpResponse = Type.Object({ - status: Type.Number(), - body: Type.Unknown(), - headers: Type.Record(Type.String(), Type.String()), +export const EngineHttpResponse = z.object({ + status: z.number(), + body: z.unknown(), + headers: z.record(z.string(), z.string()), }) -export type EngineHttpResponse = Static +export type EngineHttpResponse = z.infer export type ExecuteTriggerResponse = H extends TriggerHookType.RUN ? ExecuteTestOrRunTriggerResponse : H extends TriggerHookType.HANDSHAKE ? ExecuteHandshakeTriggerResponse : diff --git a/packages/shared/src/lib/automation/engine/requests.ts b/packages/shared/src/lib/automation/engine/requests.ts index e4fa326af15..157542457ec 100644 --- a/packages/shared/src/lib/automation/engine/requests.ts +++ b/packages/shared/src/lib/automation/engine/requests.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Nullable } from '../../core/common' import { FlowRunStatus, PauseMetadata } from '../flow-run/execution/flow-execution' import { StepOutput } from '../flow-run/execution/step-output' @@ -8,67 +8,67 @@ import { ProgressUpdateType } from './engine-operation' -export const UploadRunLogsRequest = Type.Object({ - runId: Type.String(), - tags: Type.Optional(Type.Array(Type.String())), - status: Type.Enum(FlowRunStatus), - projectId: Type.String(), - progressUpdateType: Type.Optional(Type.Enum(ProgressUpdateType)), - workerHandlerId: Nullable(Type.String()), - httpRequestId: Nullable(Type.String()), - logsFileId: Type.Optional(Type.String()), - stepNameToTest: Type.Optional(Type.String()), - failedStep: Type.Optional(FailedStep), - startTime: Type.Optional(Type.String()), - finishTime: Type.Optional(Type.String()), - stepResponse: Type.Optional(StepRunResponse), - pauseMetadata: Type.Optional(PauseMetadata), - stepsCount: Type.Optional(Type.Number()), +export const UploadRunLogsRequest = z.object({ + runId: z.string(), + tags: z.array(z.string()).optional(), + status: z.nativeEnum(FlowRunStatus), + projectId: z.string(), + progressUpdateType: z.nativeEnum(ProgressUpdateType).optional(), + workerHandlerId: Nullable(z.string()), + httpRequestId: Nullable(z.string()), + logsFileId: z.string().optional(), + stepNameToTest: z.string().optional(), + failedStep: FailedStep.optional(), + startTime: z.string().optional(), + finishTime: z.string().optional(), + stepResponse: StepRunResponse.optional(), + pauseMetadata: PauseMetadata.optional(), + stepsCount: z.number().optional(), }) -export type UploadRunLogsRequest = Static +export type UploadRunLogsRequest = z.infer -export const UpdateStepProgressRequest = Type.Object({ - projectId: Type.String(), +export const UpdateStepProgressRequest = z.object({ + projectId: z.string(), stepResponse: StepRunResponse, }) -export type UpdateStepProgressRequest = Static +export type UpdateStepProgressRequest = z.infer -export const UploadLogsQueryParams = Type.Object({ - token: Type.String(), +export const UploadLogsQueryParams = z.object({ + token: z.string(), }) -export type UploadLogsQueryParams = Static +export type UploadLogsQueryParams = z.infer export enum UploadLogsBehavior { UPLOAD_DIRECTLY = 'UPLOAD_DIRECTLY', REDIRECT_TO_S3 = 'REDIRECT_TO_S3', } -export const UploadLogsToken = Type.Object({ - logsFileId: Type.String(), - projectId: Type.String(), - flowRunId: Type.String(), - behavior: Type.Enum(UploadLogsBehavior), +export const UploadLogsToken = z.object({ + logsFileId: z.string(), + projectId: z.string(), + flowRunId: z.string(), + behavior: z.nativeEnum(UploadLogsBehavior), }) -export type UploadLogsToken = Static +export type UploadLogsToken = z.infer -export const SendFlowResponseRequest = Type.Object({ - workerHandlerId: Type.String(), - httpRequestId: Type.String(), - runResponse: Type.Object({ - status: Type.Number(), - body: Type.Any(), - headers: Type.Record(Type.String(), Type.String()), +export const SendFlowResponseRequest = z.object({ + workerHandlerId: z.string(), + httpRequestId: z.string(), + runResponse: z.object({ + status: z.number(), + body: z.any(), + headers: z.record(z.string(), z.string()), }), }) -export type SendFlowResponseRequest = Static -export const GetFlowVersionForWorkerRequest = Type.Object({ - versionId: Type.String(), +export type SendFlowResponseRequest = z.infer +export const GetFlowVersionForWorkerRequest = z.object({ + versionId: z.string(), }) -export type GetFlowVersionForWorkerRequest = Static +export type GetFlowVersionForWorkerRequest = z.infer export type UpdateRunProgressRequest = { flowRun: Omit diff --git a/packages/shared/src/lib/automation/flow-run/dto/list-flow-runs-request.ts b/packages/shared/src/lib/automation/flow-run/dto/list-flow-runs-request.ts index 172ac6965bc..bb1f93c29c2 100755 --- a/packages/shared/src/lib/automation/flow-run/dto/list-flow-runs-request.ts +++ b/packages/shared/src/lib/automation/flow-run/dto/list-flow-runs-request.ts @@ -1,19 +1,20 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' +import { OptionalArrayFromQuery, OptionalBooleanFromQuery } from '../../../core/common/base-model' import { ApId } from '../../../core/common/id-generator' import { FlowRunStatus } from '../execution/flow-execution' -export const ListFlowRunsRequestQuery = Type.Object({ - flowId: Type.Optional(Type.Array(ApId)), - tags: Type.Optional(Type.Array(Type.String({}))), - status: Type.Optional(Type.Array(Type.Enum(FlowRunStatus))), - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), - createdAfter: Type.Optional(Type.String({})), - createdBefore: Type.Optional(Type.String({})), +export const ListFlowRunsRequestQuery = z.object({ + flowId: OptionalArrayFromQuery(ApId), + tags: OptionalArrayFromQuery(z.string()), + status: OptionalArrayFromQuery(z.nativeEnum(FlowRunStatus)), + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + createdAfter: z.string().optional(), + createdBefore: z.string().optional(), projectId: ApId, - failedStepName: Type.Optional(Type.String({})), - flowRunIds: Type.Optional(Type.Array(ApId)), - includeArchived: Type.Optional(Type.Boolean({})), + failedStepName: z.string().optional(), + flowRunIds: OptionalArrayFromQuery(ApId), + includeArchived: OptionalBooleanFromQuery, }) -export type ListFlowRunsRequestQuery = Static +export type ListFlowRunsRequestQuery = z.infer diff --git a/packages/shared/src/lib/automation/flow-run/execution/execution-output.ts b/packages/shared/src/lib/automation/flow-run/execution/execution-output.ts index a4a7c073c1c..ba9b7f5b2e8 100755 --- a/packages/shared/src/lib/automation/flow-run/execution/execution-output.ts +++ b/packages/shared/src/lib/automation/flow-run/execution/execution-output.ts @@ -1,4 +1,4 @@ -import { Type } from '@sinclair/typebox' +import { z } from 'zod' import { TriggerPayload } from '../../engine' import { StepOutput } from './step-output' @@ -12,9 +12,9 @@ export type ExecutionState = { tags: string[] } -export const ExecutionState = Type.Object({ - steps: Type.Record(Type.String(), Type.Unknown()), - tags: Type.Array(Type.String()), +export const ExecutionState = z.object({ + steps: z.record(z.string(), z.unknown()), + tags: z.array(z.string()), }) export type ExecutioOutputFile = { diff --git a/packages/shared/src/lib/automation/flow-run/execution/flow-execution.ts b/packages/shared/src/lib/automation/flow-run/execution/flow-execution.ts index 9837caca52d..e719a8059c0 100644 --- a/packages/shared/src/lib/automation/flow-run/execution/flow-execution.ts +++ b/packages/shared/src/lib/automation/flow-run/execution/flow-execution.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ProgressUpdateType } from '../../engine/engine-operation' export enum FlowRunStatus { @@ -21,44 +21,44 @@ export enum PauseType { WEBHOOK = 'WEBHOOK', } -export const DelayPauseMetadata = Type.Object({ - type: Type.Literal(PauseType.DELAY), - resumeDateTime: Type.String(), - requestIdToReply: Type.Optional(Type.String()), - handlerId: Type.Optional(Type.String({})), - progressUpdateType: Type.Optional(Type.Enum(ProgressUpdateType)), +export const DelayPauseMetadata = z.object({ + type: z.literal(PauseType.DELAY), + resumeDateTime: z.string(), + requestIdToReply: z.string().optional(), + handlerId: z.string().optional(), + progressUpdateType: z.nativeEnum(ProgressUpdateType).optional(), }) -export type DelayPauseMetadata = Static +export type DelayPauseMetadata = z.infer -export const RespondResponse = Type.Object({ - status: Type.Optional(Type.Number()), - body: Type.Optional(Type.Unknown()), - headers: Type.Optional(Type.Record(Type.String(), Type.String())), +export const RespondResponse = z.object({ + status: z.number().optional(), + body: z.unknown().optional(), + headers: z.record(z.string(), z.string()).optional(), }) -export type RespondResponse = Static +export type RespondResponse = z.infer -export const StopResponse = Type.Object({ - status: Type.Optional(Type.Number()), - body: Type.Optional(Type.Unknown()), - headers: Type.Optional(Type.Record(Type.String(), Type.String())), +export const StopResponse = z.object({ + status: z.number().optional(), + body: z.unknown().optional(), + headers: z.record(z.string(), z.string()).optional(), }) -export type StopResponse = Static +export type StopResponse = z.infer -export const WebhookPauseMetadata = Type.Object({ - type: Type.Literal(PauseType.WEBHOOK), - requestId: Type.String(), - requestIdToReply: Type.Optional(Type.String()), +export const WebhookPauseMetadata = z.object({ + type: z.literal(PauseType.WEBHOOK), + requestId: z.string(), + requestIdToReply: z.string().optional(), response: RespondResponse, - handlerId: Type.Optional(Type.String({})), - progressUpdateType: Type.Optional(Type.Enum(ProgressUpdateType)), + handlerId: z.string().optional(), + progressUpdateType: z.nativeEnum(ProgressUpdateType).optional(), }) -export type WebhookPauseMetadata = Static +export type WebhookPauseMetadata = z.infer -export const PauseMetadata = Type.Union([DelayPauseMetadata, WebhookPauseMetadata]) -export type PauseMetadata = Static +export const PauseMetadata = z.union([DelayPauseMetadata, WebhookPauseMetadata]) +export type PauseMetadata = z.infer export const isFlowRunStateTerminal = ({ status, ignoreInternalError }: { status: FlowRunStatus, ignoreInternalError: boolean }): boolean => { switch (status) { @@ -87,7 +87,7 @@ export const FAILED_STATES = [ FlowRunStatus.QUOTA_EXCEEDED, FlowRunStatus.TIMEOUT, FlowRunStatus.MEMORY_LIMIT_EXCEEDED, -] +] export const isFailedState = (status: FlowRunStatus): boolean => { return FAILED_STATES.includes(status) -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/automation/flow-run/flow-run.ts b/packages/shared/src/lib/automation/flow-run/flow-run.ts index 739382cf3f2..3835bbd8342 100755 --- a/packages/shared/src/lib/automation/flow-run/flow-run.ts +++ b/packages/shared/src/lib/automation/flow-run/flow-run.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { ExecutionState } from './execution/execution-output' @@ -23,41 +23,41 @@ export type FlowRetryPayload = { strategy: FlowRetryStrategy } -export const FlowRun = Type.Object({ +export const FlowRun = z.object({ ...BaseModelSchema, - projectId: Type.String(), - flowId: Type.String(), - parentRunId: Type.Optional(Type.String()), - failParentOnFailure: Type.Boolean(), - triggeredBy: Type.Optional(Type.String()), - tags: Type.Optional(Type.Array(Type.String())), - flowVersionId: Type.String(), - flowVersion: Type.Optional(Type.Object({ - displayName: Type.Optional(Type.String()), - })), - logsFileId: Nullable(Type.String()), - status: Type.Enum(FlowRunStatus), - startTime: Type.Optional(Type.String()), - finishTime: Type.Optional(Type.String()), - environment: Type.Enum(RunEnvironment), - pauseMetadata: Type.Optional(PauseMetadata), + projectId: z.string(), + flowId: z.string(), + parentRunId: z.string().optional(), + failParentOnFailure: z.boolean(), + triggeredBy: z.string().optional(), + tags: z.array(z.string()).optional(), + flowVersionId: z.string(), + flowVersion: z.object({ + displayName: z.string().optional(), + }).optional(), + logsFileId: Nullable(z.string()), + status: z.nativeEnum(FlowRunStatus), + startTime: z.string().optional(), + finishTime: z.string().optional(), + environment: z.nativeEnum(RunEnvironment), + pauseMetadata: PauseMetadata.optional(), // The steps data may be missing if the flow has not started yet, // or if the run is older than AP_EXECUTION_DATA_RETENTION_DAYS and its execution data has been purged. - steps: Nullable(Type.Record(Type.String(), Type.Unknown())), - failedStep: Type.Optional(Type.Object({ - name: Type.String(), - displayName: Type.String(), - })), - stepNameToTest: Type.Optional(Type.String()), - archivedAt: Nullable(Type.String({ default: null })), - stepsCount: Type.Optional(Type.Number()), + steps: Nullable(z.record(z.string(), z.unknown())), + failedStep: z.object({ + name: z.string(), + displayName: z.string(), + }).optional(), + stepNameToTest: z.string().optional(), + archivedAt: Nullable(z.string()), + stepsCount: z.number().optional(), }) -export const FailedStep = Type.Object({ - name: Type.String(), - displayName: Type.String(), - message: Type.String(), +export const FailedStep = z.object({ + name: z.string(), + displayName: z.string(), + message: z.string(), }) -export type FailedStep = Static +export type FailedStep = z.infer -export type FlowRun = Static & ExecutionState +export type FlowRun = z.infer & ExecutionState diff --git a/packages/shared/src/lib/automation/flow-run/test-flow-run-request.ts b/packages/shared/src/lib/automation/flow-run/test-flow-run-request.ts index be2728460e4..4b07885caea 100755 --- a/packages/shared/src/lib/automation/flow-run/test-flow-run-request.ts +++ b/packages/shared/src/lib/automation/flow-run/test-flow-run-request.ts @@ -1,60 +1,60 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApId } from '../../core/common/id-generator' import { FlowRunStatus } from './execution/flow-execution' import { FlowRetryStrategy } from './flow-run' -export const TestFlowRunRequestBody = Type.Object({ +export const TestFlowRunRequestBody = z.object({ flowVersionId: ApId, }) -export type TestFlowRunRequestBody = Static +export type TestFlowRunRequestBody = z.infer -export const RetryFlowRequestBody = Type.Object({ - strategy: Type.Enum(FlowRetryStrategy), +export const RetryFlowRequestBody = z.object({ + strategy: z.nativeEnum(FlowRetryStrategy), projectId: ApId, }) -export type RetryFlowRequestBody = Static +export type RetryFlowRequestBody = z.infer -export const BulkActionOnRunsRequestBody = Type.Object({ +export const BulkActionOnRunsRequestBody = z.object({ projectId: ApId, - flowRunIds: Type.Optional(Type.Array(ApId)), - excludeFlowRunIds: Type.Optional(Type.Array(ApId)), - strategy: Type.Enum(FlowRetryStrategy), - status: Type.Optional(Type.Array(Type.Enum(FlowRunStatus))), - flowId: Type.Optional(Type.Array(ApId)), - createdAfter: Type.Optional(Type.String()), - createdBefore: Type.Optional(Type.String()), - failedStepName: Type.Optional(Type.String()), + flowRunIds: z.array(ApId).optional(), + excludeFlowRunIds: z.array(ApId).optional(), + strategy: z.nativeEnum(FlowRetryStrategy), + status: z.array(z.nativeEnum(FlowRunStatus)).optional(), + flowId: z.array(ApId).optional(), + createdAfter: z.string().optional(), + createdBefore: z.string().optional(), + failedStepName: z.string().optional(), }) -export type BulkActionOnRunsRequestBody = Static +export type BulkActionOnRunsRequestBody = z.infer -export const BulkCancelFlowRequestBody = Type.Object({ +export const BulkCancelFlowRequestBody = z.object({ projectId: ApId, - flowRunIds: Type.Optional(Type.Array(ApId)), - excludeFlowRunIds: Type.Optional(Type.Array(ApId)), - status: Type.Optional(Type.Array(Type.Union([ - Type.Literal(FlowRunStatus.PAUSED), - Type.Literal(FlowRunStatus.QUEUED), - ]))), - flowId: Type.Optional(Type.Array(ApId)), - createdAfter: Type.Optional(Type.String()), - createdBefore: Type.Optional(Type.String()), + flowRunIds: z.array(ApId).optional(), + excludeFlowRunIds: z.array(ApId).optional(), + status: z.array(z.union([ + z.literal(FlowRunStatus.PAUSED), + z.literal(FlowRunStatus.QUEUED), + ])).optional(), + flowId: z.array(ApId).optional(), + createdAfter: z.string().optional(), + createdBefore: z.string().optional(), }) -export type BulkCancelFlowRequestBody = Static +export type BulkCancelFlowRequestBody = z.infer -export const BulkArchiveActionOnRunsRequestBody = Type.Object({ +export const BulkArchiveActionOnRunsRequestBody = z.object({ projectId: ApId, - flowRunIds: Type.Optional(Type.Array(ApId)), - excludeFlowRunIds: Type.Optional(Type.Array(ApId)), - status: Type.Optional(Type.Array(Type.Enum(FlowRunStatus))), - flowId: Type.Optional(Type.Array(ApId)), - createdAfter: Type.Optional(Type.String()), - createdBefore: Type.Optional(Type.String()), - failedStepName: Type.Optional(Type.String()), + flowRunIds: z.array(ApId).optional(), + excludeFlowRunIds: z.array(ApId).optional(), + status: z.array(z.nativeEnum(FlowRunStatus)).optional(), + flowId: z.array(ApId).optional(), + createdAfter: z.string().optional(), + createdBefore: z.string().optional(), + failedStepName: z.string().optional(), }) -export type BulkArchiveActionOnRunsRequestBody = Static +export type BulkArchiveActionOnRunsRequestBody = z.infer diff --git a/packages/shared/src/lib/automation/flows/actions/action.ts b/packages/shared/src/lib/automation/flows/actions/action.ts index 327562a878e..858cbfa34c5 100755 --- a/packages/shared/src/lib/automation/flows/actions/action.ts +++ b/packages/shared/src/lib/automation/flows/actions/action.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { VersionType } from '../../pieces' import { PropertySettings } from '../properties' import { SampleDataSetting } from '../sample-data' @@ -21,84 +21,79 @@ export enum BranchExecutionType { } const commonActionProps = { - name: Type.String({}), - valid: Type.Boolean({}), - displayName: Type.String({}), - skip: Type.Optional(Type.Boolean({})), + name: z.string(), + valid: z.boolean(), + displayName: z.string(), + skip: z.boolean().optional(), } const commonActionSettings = { - sampleData: Type.Optional(SampleDataSetting), - customLogoUrl: Type.Optional(Type.String()), + sampleData: SampleDataSetting.optional(), + customLogoUrl: z.string().optional(), } -export const ActionErrorHandlingOptions = Type.Optional( - Type.Object({ - continueOnFailure: Type.Optional( - Type.Object({ - value: Type.Optional(Type.Boolean()), - }), - ), - retryOnFailure: Type.Optional( - Type.Object({ - value: Type.Optional(Type.Boolean()), - }), - ), - }), -) -export type ActionErrorHandlingOptions = Static< +export const ActionErrorHandlingOptions = z.object({ + continueOnFailure: z.object({ + value: z.boolean().optional(), + }).optional(), + retryOnFailure: z.object({ + value: z.boolean().optional(), + }).optional(), +}).optional() + +export type ActionErrorHandlingOptions = z.infer< typeof ActionErrorHandlingOptions > -export const SourceCode = Type.Object({ - packageJson: Type.String({}), - code: Type.String({}), +export const SourceCode = z.object({ + packageJson: z.string(), + code: z.string(), }) -export type SourceCode = Static +export type SourceCode = z.infer -export const CodeActionSettings = Type.Object({ +export const CodeActionSettings = z.object({ ...commonActionSettings, sourceCode: SourceCode, - input: Type.Record(Type.String({}), Type.Any()), + input: z.record(z.string(), z.any()), errorHandlingOptions: ActionErrorHandlingOptions, }) -export type CodeActionSettings = Static +export type CodeActionSettings = z.infer -export const CodeActionSchema = Type.Object({ +export const CodeActionSchema = z.object({ ...commonActionProps, - type: Type.Literal(FlowActionType.CODE), + type: z.literal(FlowActionType.CODE), settings: CodeActionSettings, }) -export const PieceActionSettings = Type.Object({ +export const PieceActionSettings = z.object({ ...commonActionSettings, - propertySettings: Type.Record(Type.String(), PropertySettings), - pieceName: Type.String({}), + propertySettings: z.record(z.string(), PropertySettings), + pieceName: z.string(), pieceVersion: VersionType, - actionName: Type.Optional(Type.String({})), - input: Type.Record(Type.String({}), Type.Unknown()), + actionName: z.string().optional(), + input: z.record(z.string(), z.unknown()), errorHandlingOptions: ActionErrorHandlingOptions, }) -export type PieceActionSettings = Static +export type PieceActionSettings = z.infer -export const PieceActionSchema = Type.Object({ +export const PieceActionSchema = z.object({ ...commonActionProps, - type: Type.Literal(FlowActionType.PIECE), + type: z.literal(FlowActionType.PIECE), settings: PieceActionSettings, }) // Loop Items -export const LoopOnItemsActionSettings = Type.Object({ +export const LoopOnItemsActionSettings = z.object({ ...commonActionSettings, - items: Type.String(), + items: z.string(), }) -export type LoopOnItemsActionSettings = Static< +export type LoopOnItemsActionSettings = z.infer< typeof LoopOnItemsActionSettings > -export const LoopOnItemsActionSchema = Type.Object({ +export const LoopOnItemsActionSchema = z.object({ ...commonActionProps, - type: Type.Literal(FlowActionType.LOOP_ON_ITEMS), + type: z.literal(FlowActionType.LOOP_ON_ITEMS), settings: LoopOnItemsActionSettings, }) @@ -150,194 +145,206 @@ export const textConditions = [ ] const BranchOperatorTextLiterals = [ - Type.Literal(BranchOperator.TEXT_CONTAINS), - Type.Literal(BranchOperator.TEXT_DOES_NOT_CONTAIN), - Type.Literal(BranchOperator.TEXT_EXACTLY_MATCHES), - Type.Literal(BranchOperator.TEXT_DOES_NOT_EXACTLY_MATCH), - Type.Literal(BranchOperator.TEXT_STARTS_WITH), - Type.Literal(BranchOperator.TEXT_DOES_NOT_START_WITH), - Type.Literal(BranchOperator.TEXT_ENDS_WITH), - Type.Literal(BranchOperator.TEXT_DOES_NOT_END_WITH), - Type.Literal(BranchOperator.LIST_CONTAINS), - Type.Literal(BranchOperator.LIST_DOES_NOT_CONTAIN), -] + z.literal(BranchOperator.TEXT_CONTAINS), + z.literal(BranchOperator.TEXT_DOES_NOT_CONTAIN), + z.literal(BranchOperator.TEXT_EXACTLY_MATCHES), + z.literal(BranchOperator.TEXT_DOES_NOT_EXACTLY_MATCH), + z.literal(BranchOperator.TEXT_STARTS_WITH), + z.literal(BranchOperator.TEXT_DOES_NOT_START_WITH), + z.literal(BranchOperator.TEXT_ENDS_WITH), + z.literal(BranchOperator.TEXT_DOES_NOT_END_WITH), + z.literal(BranchOperator.LIST_CONTAINS), + z.literal(BranchOperator.LIST_DOES_NOT_CONTAIN), +] as const const BranchOperatorNumberLiterals = [ - Type.Literal(BranchOperator.NUMBER_IS_GREATER_THAN), - Type.Literal(BranchOperator.NUMBER_IS_LESS_THAN), - Type.Literal(BranchOperator.NUMBER_IS_EQUAL_TO), -] + z.literal(BranchOperator.NUMBER_IS_GREATER_THAN), + z.literal(BranchOperator.NUMBER_IS_LESS_THAN), + z.literal(BranchOperator.NUMBER_IS_EQUAL_TO), +] as const const BranchOperatorDateLiterals = [ - Type.Literal(BranchOperator.DATE_IS_BEFORE), - Type.Literal(BranchOperator.DATE_IS_EQUAL), - Type.Literal(BranchOperator.DATE_IS_AFTER), -] + z.literal(BranchOperator.DATE_IS_BEFORE), + z.literal(BranchOperator.DATE_IS_EQUAL), + z.literal(BranchOperator.DATE_IS_AFTER), +] as const const BranchOperatorSingleValueLiterals = [ - Type.Literal(BranchOperator.EXISTS), - Type.Literal(BranchOperator.DOES_NOT_EXIST), - Type.Literal(BranchOperator.BOOLEAN_IS_TRUE), - Type.Literal(BranchOperator.BOOLEAN_IS_FALSE), - Type.Literal(BranchOperator.LIST_IS_EMPTY), - Type.Literal(BranchOperator.LIST_IS_NOT_EMPTY), -] - -const BranchTextConditionValid = (addMinLength: boolean) => - Type.Object({ - firstValue: Type.String(addMinLength ? { minLength: 1 } : {}), - secondValue: Type.String(addMinLength ? { minLength: 1 } : {}), - caseSensitive: Type.Optional(Type.Boolean()), - operator: Type.Optional(Type.Union(BranchOperatorTextLiterals)), + z.literal(BranchOperator.EXISTS), + z.literal(BranchOperator.DOES_NOT_EXIST), + z.literal(BranchOperator.BOOLEAN_IS_TRUE), + z.literal(BranchOperator.BOOLEAN_IS_FALSE), + z.literal(BranchOperator.LIST_IS_EMPTY), + z.literal(BranchOperator.LIST_IS_NOT_EMPTY), +] as const + +function buildBranchTextConditionValid(addMinLength: boolean) { + return z.object({ + firstValue: addMinLength ? z.string().min(1) : z.string(), + secondValue: addMinLength ? z.string().min(1) : z.string(), + caseSensitive: z.boolean().optional(), + operator: z.union(BranchOperatorTextLiterals).optional(), }) +} -const BranchNumberConditionValid = (addMinLength: boolean) => - Type.Object({ - firstValue: Type.String(addMinLength ? { minLength: 1 } : {}), - secondValue: Type.String(addMinLength ? { minLength: 1 } : {}), - operator: Type.Optional(Type.Union(BranchOperatorNumberLiterals)), +function buildBranchNumberConditionValid(addMinLength: boolean) { + return z.object({ + firstValue: addMinLength ? z.string().min(1) : z.string(), + secondValue: addMinLength ? z.string().min(1) : z.string(), + operator: z.union(BranchOperatorNumberLiterals).optional(), }) +} -const BranchDateConditionValid = (addMinLength: boolean) => - Type.Object({ - firstValue: Type.String(addMinLength ? { minLength: 1 } : {}), - secondValue: Type.String(addMinLength ? { minLength: 1 } : {}), - operator: Type.Optional(Type.Union(BranchOperatorDateLiterals)), +function buildBranchDateConditionValid(addMinLength: boolean) { + return z.object({ + firstValue: addMinLength ? z.string().min(1) : z.string(), + secondValue: addMinLength ? z.string().min(1) : z.string(), + operator: z.union(BranchOperatorDateLiterals).optional(), }) +} -const BranchSingleValueConditionValid = (addMinLength: boolean) => - Type.Object({ - firstValue: Type.String(addMinLength ? { minLength: 1 } : {}), - operator: Type.Optional(Type.Union(BranchOperatorSingleValueLiterals)), +function buildBranchSingleValueConditionValid(addMinLength: boolean) { + return z.object({ + firstValue: addMinLength ? z.string().min(1) : z.string(), + operator: z.union(BranchOperatorSingleValueLiterals).optional(), }) +} -const BranchConditionValid = (addMinLength: boolean) => - Type.Union([ - BranchTextConditionValid(addMinLength), - BranchNumberConditionValid(addMinLength), - BranchDateConditionValid(addMinLength), - BranchSingleValueConditionValid(addMinLength), +function buildBranchConditionValid(addMinLength: boolean) { + return z.union([ + buildBranchTextConditionValid(addMinLength), + buildBranchNumberConditionValid(addMinLength), + buildBranchDateConditionValid(addMinLength), + buildBranchSingleValueConditionValid(addMinLength), ]) +} -export const ValidBranchCondition = BranchConditionValid(true) -export type ValidBranchCondition = Static +export const ValidBranchCondition = buildBranchConditionValid(true) +export type ValidBranchCondition = z.infer // TODO remove this and use ValidBranchCondition everywhere -export const BranchCondition = BranchConditionValid(false) -export type BranchCondition = Static +export const BranchCondition = buildBranchConditionValid(false) +export type BranchCondition = z.infer -export const BranchTextCondition = BranchTextConditionValid(false) -export type BranchTextCondition = Static +export const BranchTextCondition = buildBranchTextConditionValid(false) +export type BranchTextCondition = z.infer -export const BranchNumberCondition = BranchNumberConditionValid(false) -export type BranchNumberCondition = Static +export const BranchNumberCondition = buildBranchNumberConditionValid(false) +export type BranchNumberCondition = z.infer -export const BranchDateCondition = BranchDateConditionValid(false) -export type BranchDateCondition = Static +export const BranchDateCondition = buildBranchDateConditionValid(false) +export type BranchDateCondition = z.infer export const BranchSingleValueCondition = - BranchSingleValueConditionValid(false) -export type BranchSingleValueCondition = Static< + buildBranchSingleValueConditionValid(false) +export type BranchSingleValueCondition = z.infer< typeof BranchSingleValueCondition > export const RouterBranchesSchema = (addMinLength: boolean) => - Type.Array( - Type.Union([ - Type.Object({ - conditions: Type.Array(Type.Array(BranchConditionValid(addMinLength))), - branchType: Type.Literal(BranchExecutionType.CONDITION), - branchName: Type.String(), + z.array( + z.union([ + z.object({ + conditions: z.array(z.array(buildBranchConditionValid(addMinLength))), + branchType: z.literal(BranchExecutionType.CONDITION), + branchName: z.string(), }), - Type.Object({ - branchType: Type.Literal(BranchExecutionType.FALLBACK), - branchName: Type.String(), + z.object({ + branchType: z.literal(BranchExecutionType.FALLBACK), + branchName: z.string(), }), ]), ) -export const RouterActionSettings = Type.Object({ +export const RouterActionSettings = z.object({ ...commonActionSettings, branches: RouterBranchesSchema(false), - executionType: Type.Enum(RouterExecutionType), + executionType: z.nativeEnum(RouterExecutionType), }) -export const RouterActionSettingsWithValidation = Type.Object({ +export const RouterActionSettingsWithValidation = z.object({ branches: RouterBranchesSchema(true), - executionType: Type.Enum(RouterExecutionType), + executionType: z.nativeEnum(RouterExecutionType), }) -export type RouterActionSettings = Static +export type RouterActionSettings = z.infer // Union of all actions -export const FlowAction = Type.Recursive((action) => - Type.Union([ - Type.Intersect([ - CodeActionSchema, - Type.Object({ - nextAction: Type.Optional(action), - }), - ]), - Type.Intersect([ - PieceActionSchema, - Type.Object({ - nextAction: Type.Optional(action), - }), - ]), - Type.Intersect([ - LoopOnItemsActionSchema, - Type.Object({ - nextAction: Type.Optional(action), - firstLoopAction: Type.Optional(action), - }), - ]), - Type.Intersect([ - Type.Object({ - ...commonActionProps, - type: Type.Literal(FlowActionType.ROUTER), - settings: RouterActionSettings, - }), - Type.Object({ - nextAction: Type.Optional(action), - children: Type.Array(Type.Union([action, Type.Null()])), - }), - ]), +export const FlowAction: z.ZodType = z.lazy(() => + z.union([ + CodeActionSchema.extend({ + nextAction: FlowAction.optional(), + }), + PieceActionSchema.extend({ + nextAction: FlowAction.optional(), + }), + LoopOnItemsActionSchema.extend({ + nextAction: FlowAction.optional(), + firstLoopAction: FlowAction.optional(), + }), + z.object({ + ...commonActionProps, + type: z.literal(FlowActionType.ROUTER), + settings: RouterActionSettings, + nextAction: FlowAction.optional(), + children: z.array(z.union([FlowAction, z.null()])), + }), ]), ) -export const RouterActionSchema = Type.Object({ +export const RouterActionSchema = z.object({ ...commonActionProps, - type: Type.Literal(FlowActionType.ROUTER), + type: z.literal(FlowActionType.ROUTER), settings: RouterActionSettings, }) -export const SingleActionSchema = Type.Union([ +export const SingleActionSchema = z.union([ CodeActionSchema, PieceActionSchema, LoopOnItemsActionSchema, RouterActionSchema, ]) -export type FlowAction = Static +// Manually defined to avoid z.infer in recursive types (causes TypeScript OOM) +type BaseActionProps = { + name: string + valid: boolean + displayName: string + skip?: boolean +} + +export type FlowAction = + | (BaseActionProps & { type: FlowActionType.CODE, settings: CodeActionSettings, nextAction?: FlowAction }) + | (BaseActionProps & { type: FlowActionType.PIECE, settings: PieceActionSettings, nextAction?: FlowAction }) + | (BaseActionProps & { type: FlowActionType.LOOP_ON_ITEMS, settings: LoopOnItemsActionSettings, nextAction?: FlowAction, firstLoopAction?: FlowAction }) + | (BaseActionProps & { type: FlowActionType.ROUTER, settings: RouterActionSettings, nextAction?: FlowAction, children: (FlowAction | null)[] }) -export type RouterAction = Static & { +export type RouterAction = BaseActionProps & { + type: FlowActionType.ROUTER + settings: RouterActionSettings nextAction?: FlowAction children: (FlowAction | null)[] } -export type LoopOnItemsAction = Static & { +export type LoopOnItemsAction = BaseActionProps & { + type: FlowActionType.LOOP_ON_ITEMS + settings: LoopOnItemsActionSettings nextAction?: FlowAction firstLoopAction?: FlowAction } -export type PieceAction = Static & { +export type PieceAction = BaseActionProps & { + type: FlowActionType.PIECE + settings: PieceActionSettings nextAction?: FlowAction } -export type CodeAction = Static & { +export type CodeAction = BaseActionProps & { + type: FlowActionType.CODE + settings: CodeActionSettings nextAction?: FlowAction } diff --git a/packages/shared/src/lib/automation/flows/dto/count-flows-request.ts b/packages/shared/src/lib/automation/flows/dto/count-flows-request.ts index 42bb7298a15..bd7e18f9429 100644 --- a/packages/shared/src/lib/automation/flows/dto/count-flows-request.ts +++ b/packages/shared/src/lib/automation/flows/dto/count-flows-request.ts @@ -1,8 +1,8 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const CountFlowsRequest = Type.Object({ - projectId: Type.String(), - folderId: Type.Optional(Type.String()), +export const CountFlowsRequest = z.object({ + projectId: z.string(), + folderId: z.string().optional(), }) -export type CountFlowsRequest = Static +export type CountFlowsRequest = z.infer diff --git a/packages/shared/src/lib/automation/flows/dto/create-flow-request.ts b/packages/shared/src/lib/automation/flows/dto/create-flow-request.ts index 30cad198d58..c47ab08366c 100755 --- a/packages/shared/src/lib/automation/flows/dto/create-flow-request.ts +++ b/packages/shared/src/lib/automation/flows/dto/create-flow-request.ts @@ -1,14 +1,14 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Metadata } from '../../../core/common/metadata' -export const CreateFlowRequest = Type.Object({ - displayName: Type.String({}), +export const CreateFlowRequest = z.object({ + displayName: z.string(), /**If folderId is provided, folderName is ignored */ - folderId: Type.Optional(Type.String({})), - folderName: Type.Optional(Type.String({})), - projectId: Type.String({}), - templateId: Type.Optional(Type.String({})), - metadata: Type.Optional(Metadata), + folderId: z.string().optional(), + folderName: z.string().optional(), + projectId: z.string(), + templateId: z.string().optional(), + metadata: Metadata.optional(), }) -export type CreateFlowRequest = Static +export type CreateFlowRequest = z.infer diff --git a/packages/shared/src/lib/automation/flows/dto/flow-mcp.requests.ts b/packages/shared/src/lib/automation/flows/dto/flow-mcp.requests.ts index c60612c5e34..e07279ce8ab 100644 --- a/packages/shared/src/lib/automation/flows/dto/flow-mcp.requests.ts +++ b/packages/shared/src/lib/automation/flows/dto/flow-mcp.requests.ts @@ -1,8 +1,8 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const CreateMCPServerFromStepParams = Type.Object({ - flowId: Type.String(), - flowVersionId: Type.String(), - stepName: Type.String(), +export const CreateMCPServerFromStepParams = z.object({ + flowId: z.string(), + flowVersionId: z.string(), + stepName: z.string(), }) -export type CreateMCPServerFromStepParams = Static \ No newline at end of file +export type CreateMCPServerFromStepParams = z.infer diff --git a/packages/shared/src/lib/automation/flows/dto/list-flows-request.ts b/packages/shared/src/lib/automation/flows/dto/list-flows-request.ts index 6933880cc7a..c6f04508c4b 100755 --- a/packages/shared/src/lib/automation/flows/dto/list-flows-request.ts +++ b/packages/shared/src/lib/automation/flows/dto/list-flows-request.ts @@ -1,32 +1,33 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' +import { OptionalArrayFromQuery } from '../../../core/common/base-model' import { Cursor } from '../../../core/common/seek-page' import { FlowStatus } from '../flow' import { FlowVersionState } from '../flow-version' -export const ListFlowsRequest = Type.Object({ - folderId: Type.Optional(Type.String()), - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), - status: Type.Optional(Type.Array(Type.Enum(FlowStatus))), - projectId: Type.String({}), - name: Type.Optional(Type.String({})), - agentExternalIds: Type.Optional(Type.Array(Type.String({}))), - versionState: Type.Optional(Type.Enum(FlowVersionState)), - connectionExternalIds: Type.Optional(Type.Array(Type.String({}))), - externalIds: Type.Optional(Type.Array(Type.String({}))), +export const ListFlowsRequest = z.object({ + folderId: z.string().optional(), + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + status: OptionalArrayFromQuery(z.nativeEnum(FlowStatus)), + projectId: z.string(), + name: z.string().optional(), + agentExternalIds: OptionalArrayFromQuery(z.string()), + versionState: z.nativeEnum(FlowVersionState).optional(), + connectionExternalIds: OptionalArrayFromQuery(z.string()), + externalIds: OptionalArrayFromQuery(z.string()), }) -export type ListFlowsRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } +export type ListFlowsRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } -export const GetFlowQueryParamsRequest = Type.Object({ - versionId: Type.Optional(Type.String({})), +export const GetFlowQueryParamsRequest = z.object({ + versionId: z.string().optional(), }) -export type GetFlowQueryParamsRequest = Static +export type GetFlowQueryParamsRequest = z.infer -export const ListFlowVersionRequest = Type.Object({ - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), +export const ListFlowVersionRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), }) -export type ListFlowVersionRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } +export type ListFlowVersionRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } diff --git a/packages/shared/src/lib/automation/flows/flow-version.ts b/packages/shared/src/lib/automation/flows/flow-version.ts index 54cf3df3cc8..3dd92235b16 100755 --- a/packages/shared/src/lib/automation/flows/flow-version.ts +++ b/packages/shared/src/lib/automation/flows/flow-version.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { UserWithMetaInformation } from '../../core/user' @@ -14,33 +14,33 @@ export enum FlowVersionState { DRAFT = 'DRAFT', } -export const FlowVersion = Type.Object({ +export const FlowVersion = z.object({ ...BaseModelSchema, - flowId: Type.String(), - displayName: Type.String(), + flowId: z.string(), + displayName: z.string(), trigger: FlowTrigger, - updatedBy: Nullable(Type.String()), - valid: Type.Boolean(), - schemaVersion: Nullable(Type.String()), - agentIds: Type.Array(Type.String()), - state: Type.Enum(FlowVersionState), - connectionIds: Type.Array(Type.String()), - backupFiles: Nullable(Type.Record(Type.String(), Type.String())), - notes: Type.Array(Note), + updatedBy: Nullable(z.string()), + valid: z.boolean(), + schemaVersion: Nullable(z.string()), + agentIds: z.array(z.string()), + state: z.nativeEnum(FlowVersionState), + connectionIds: z.array(z.string()), + backupFiles: Nullable(z.record(z.string(), z.string())), + notes: z.array(Note), }) -export type FlowVersion = Static +export type FlowVersion = z.infer -export const FlowVersionMetadata = Type.Object({ +export const FlowVersionMetadata = z.object({ ...BaseModelSchema, - flowId: Type.String(), - displayName: Type.String(), - valid: Type.Boolean(), - state: Type.Enum(FlowVersionState), - updatedBy: Nullable(Type.String()), - schemaVersion: Nullable(Type.String()), + flowId: z.string(), + displayName: z.string(), + valid: z.boolean(), + state: z.nativeEnum(FlowVersionState), + updatedBy: Nullable(z.string()), + schemaVersion: Nullable(z.string()), updatedByUser: Nullable(UserWithMetaInformation), }) -export type FlowVersionMetadata = Static +export type FlowVersionMetadata = z.infer diff --git a/packages/shared/src/lib/automation/flows/flow.ts b/packages/shared/src/lib/automation/flows/flow.ts index c145ab22bed..b9fcc00dfcd 100755 --- a/packages/shared/src/lib/automation/flows/flow.ts +++ b/packages/shared/src/lib/automation/flows/flow.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { Metadata } from '../../core/common/metadata' @@ -28,34 +28,30 @@ export type FlowExecutionState = { flow: Flow platformId: string } -export const Flow = Type.Object({ +export const Flow = z.object({ ...BaseModelSchema, - projectId: Type.String(), - externalId: Type.String(), - ownerId: Nullable(Type.String()), - folderId: Nullable(Type.String()), - status: Type.Enum(FlowStatus), - publishedVersionId: Nullable(Type.String()), + projectId: z.string(), + externalId: z.string(), + ownerId: Nullable(z.string()), + folderId: Nullable(z.string()), + status: z.nativeEnum(FlowStatus), + publishedVersionId: Nullable(z.string()), metadata: Nullable(Metadata), - operationStatus: Type.Enum(FlowOperationStatus), - timeSavedPerRun: Nullable(Type.Number()), - templateId: Nullable(Type.String()), + operationStatus: z.nativeEnum(FlowOperationStatus), + timeSavedPerRun: Nullable(z.number()), + templateId: Nullable(z.string()), }) -export type Flow = Static -export const PopulatedFlow = Type.Composite([ - Flow, - Type.Object({ - version: FlowVersion, - triggerSource: Type.Optional(Type.Pick(TriggerSource, ['schedule'])), - }), -]) -export type PopulatedFlow = Static - -export const PopulatedTriggerSource = Type.Composite([ - TriggerSource, - Type.Object({ - flow: Flow, - }), -]) -export type PopulatedTriggerSource = Static \ No newline at end of file +export type Flow = z.infer +export const PopulatedFlow = Flow.extend({ + version: FlowVersion, + triggerSource: TriggerSource.pick({ schedule: true }).optional(), +}) + +export type PopulatedFlow = z.infer + + +export const PopulatedTriggerSource = TriggerSource.extend({ + flow: Flow, +}) +export type PopulatedTriggerSource = z.infer diff --git a/packages/shared/src/lib/automation/flows/folders/folder-requests.ts b/packages/shared/src/lib/automation/flows/folders/folder-requests.ts index bf934a98a2d..d0dce4e23cf 100644 --- a/packages/shared/src/lib/automation/flows/folders/folder-requests.ts +++ b/packages/shared/src/lib/automation/flows/folders/folder-requests.ts @@ -1,30 +1,30 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Cursor } from '../../../core/common/seek-page' -export const CreateFolderRequest = Type.Object({ - displayName: Type.String(), - projectId: Type.String(), +export const CreateFolderRequest = z.object({ + displayName: z.string(), + projectId: z.string(), }) -export type CreateFolderRequest = Static +export type CreateFolderRequest = z.infer -export const UpdateFolderRequest = Type.Object({ - displayName: Type.String(), +export const UpdateFolderRequest = z.object({ + displayName: z.string(), }) -export type UpdateFolderRequest = Static +export type UpdateFolderRequest = z.infer -export const DeleteFolderRequest = Type.Object({ - id: Type.String(), +export const DeleteFolderRequest = z.object({ + id: z.string(), }) -export type DeleteFlowRequest = Static +export type DeleteFlowRequest = z.infer -export const ListFolderRequest = Type.Object({ - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), - projectId: Type.String(), +export const ListFolderRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + projectId: z.string(), }) -export type ListFolderRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } \ No newline at end of file +export type ListFolderRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } diff --git a/packages/shared/src/lib/automation/flows/folders/folder.ts b/packages/shared/src/lib/automation/flows/folders/folder.ts index cd227244b87..5c46cf0ef5d 100644 --- a/packages/shared/src/lib/automation/flows/folders/folder.ts +++ b/packages/shared/src/lib/automation/flows/folders/folder.ts @@ -1,18 +1,18 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../../core/common' export type FolderId = string -export const Folder = Type.Object({ +export const Folder = z.object({ ...BaseModelSchema, - id: Type.String(), - projectId: Type.String(), - displayName: Type.String(), - displayOrder: Type.Number(), + id: z.string(), + projectId: z.string(), + displayName: z.string(), + displayOrder: z.number(), }) export const UncategorizedFolderId = 'NULL' -export type Folder = Static +export type Folder = z.infer export type FolderDto = Folder & { numberOfFlows: number } diff --git a/packages/shared/src/lib/automation/flows/form.ts b/packages/shared/src/lib/automation/flows/form.ts index 9c9ea67b84f..4fe2807c28d 100644 --- a/packages/shared/src/lib/automation/flows/form.ts +++ b/packages/shared/src/lib/automation/flows/form.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' export enum FormInputType { TEXT = 'text', @@ -7,48 +7,48 @@ export enum FormInputType { TOGGLE = 'toggle', } -export const FormInput = Type.Object({ - displayName: Type.String(), - required: Type.Boolean(), - description: Type.String(), - type: Type.Enum(FormInputType), +export const FormInput = z.object({ + displayName: z.string(), + required: z.boolean(), + description: z.string(), + type: z.nativeEnum(FormInputType), }) -export type FormInput = Static +export type FormInput = z.infer -export const FormProps = Type.Object({ - inputs: Type.Array(FormInput), - waitForResponse: Type.Boolean(), +export const FormProps = z.object({ + inputs: z.array(FormInput), + waitForResponse: z.boolean(), }) -export type FormProps = Static +export type FormProps = z.infer -export const FormResponse = Type.Object({ - id: Type.String(), - title: Type.String(), +export const FormResponse = z.object({ + id: z.string(), + title: z.string(), props: FormProps, - projectId: Type.String(), - version: Type.String(), + projectId: z.string(), + version: z.string(), }) -export type FormResponse = Static +export type FormResponse = z.infer -export const ChatUIProps = Type.Object({ - botName: Type.String(), +export const ChatUIProps = z.object({ + botName: z.string(), }) -export type ChatUIProps = Static +export type ChatUIProps = z.infer -export const ChatUIResponse = Type.Object({ - id: Type.String(), - title: Type.String(), +export const ChatUIResponse = z.object({ + id: z.string(), + title: z.string(), props: ChatUIProps, - projectId: Type.String(), - platformLogoUrl: Type.String(), - platformName: Type.String(), + projectId: z.string(), + platformLogoUrl: z.string(), + platformName: z.string(), }) -export type ChatUIResponse = Static +export type ChatUIResponse = z.infer -export const USE_DRAFT_QUERY_PARAM_NAME = 'useDraft' \ No newline at end of file +export const USE_DRAFT_QUERY_PARAM_NAME = 'useDraft' diff --git a/packages/shared/src/lib/automation/flows/note.ts b/packages/shared/src/lib/automation/flows/note.ts index 7dd55e447c3..0c058a21f22 100644 --- a/packages/shared/src/lib/automation/flows/note.ts +++ b/packages/shared/src/lib/automation/flows/note.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Nullable } from '../../core/common' export enum NoteColorVariant { ORANGE = 'orange', @@ -8,20 +8,20 @@ export enum NoteColorVariant { PURPLE = 'purple', YELLOW = 'yellow', } -export const Note = Type.Object({ - id: Type.String(), - content: Type.String(), - ownerId: Nullable(Type.String()), - color: Type.Enum(NoteColorVariant), - position: Type.Object({ - x: Type.Number(), - y: Type.Number(), +export const Note = z.object({ + id: z.string(), + content: z.string(), + ownerId: Nullable(z.string()), + color: z.nativeEnum(NoteColorVariant), + position: z.object({ + x: z.number(), + y: z.number(), }), - size: Type.Object({ - width: Type.Number(), - height: Type.Number(), + size: z.object({ + width: z.number(), + height: z.number(), }), - createdAt: Type.String(), - updatedAt: Type.String(), + createdAt: z.string(), + updatedAt: z.string(), }) -export type Note = Static \ No newline at end of file +export type Note = z.infer diff --git a/packages/shared/src/lib/automation/flows/operations/add-action.ts b/packages/shared/src/lib/automation/flows/operations/add-action.ts index ce9596985f3..828aa4ce1a8 100644 --- a/packages/shared/src/lib/automation/flows/operations/add-action.ts +++ b/packages/shared/src/lib/automation/flows/operations/add-action.ts @@ -1,4 +1,3 @@ -import { TypeCompiler } from '@sinclair/typebox/compiler' import { isNil } from '../../../core/common' import { ActivepiecesError, ErrorCode } from '../../../core/common/activepieces-error' import { FlowAction, FlowActionType, LoopOnItemsAction, RouterAction, SingleActionSchema } from '../actions/action' @@ -6,8 +5,6 @@ import { FlowVersion } from '../flow-version' import { flowStructureUtil, Step } from '../util/flow-structure-util' import { AddActionRequest, StepLocationRelativeToParent, UpdateActionRequest } from './index' -const actionSchemaValidator = TypeCompiler.Compile(SingleActionSchema) - type ActionCreationProps = { nextAction?: FlowAction } @@ -59,7 +56,8 @@ function createAction(request: UpdateActionRequest, { } break } - const valid = (isNil(request.valid) ? true : request.valid) && actionSchemaValidator.Check(action) + const parseResult = SingleActionSchema.safeParse(action) + const valid = (isNil(request.valid) ? true : request.valid) && parseResult.success return { ...action, valid, @@ -131,4 +129,4 @@ function _addAction(flowVersion: FlowVersion, request: AddActionRequest): FlowVe }) } -export { _addAction } \ No newline at end of file +export { _addAction } diff --git a/packages/shared/src/lib/automation/flows/operations/index.ts b/packages/shared/src/lib/automation/flows/operations/index.ts index 43d7e2e8fe2..217b83b1e83 100644 --- a/packages/shared/src/lib/automation/flows/operations/index.ts +++ b/packages/shared/src/lib/automation/flows/operations/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Nullable } from '../../../core/common' import { Metadata } from '../../../core/common/metadata' import { BranchCondition, CodeActionSchema, LoopOnItemsActionSchema, PieceActionSchema, RouterActionSchema } from '../actions/action' @@ -52,47 +52,47 @@ export enum FlowOperationType { ADD_NOTE = 'ADD_NOTE', } -export const DeleteBranchRequest = Type.Object({ - branchIndex: Type.Number(), - stepName: Type.String(), +export const DeleteBranchRequest = z.object({ + branchIndex: z.number(), + stepName: z.string(), }) -export const UpdateNoteRequest = Type.Omit(Note, [ 'createdAt', 'updatedAt']) -export const DeleteNoteRequest = Type.Object({ - id: Type.String(), +export const UpdateNoteRequest = Note.omit({ createdAt: true, updatedAt: true }) +export const DeleteNoteRequest = z.object({ + id: z.string(), }) -export const AddNoteRequest = Type.Omit(Note, ['createdAt', 'updatedAt', 'ownerId']) +export const AddNoteRequest = Note.omit({ createdAt: true, updatedAt: true, ownerId: true }) -export const AddBranchRequest = Type.Object({ - branchIndex: Type.Number(), - stepName: Type.String(), - conditions: Type.Optional(Type.Array(Type.Array(BranchCondition))), - branchName: Type.String(), +export const AddBranchRequest = z.object({ + branchIndex: z.number(), + stepName: z.string(), + conditions: z.array(z.array(BranchCondition)).optional(), + branchName: z.string(), }) -export const MoveBranchRequest = Type.Object({ - sourceBranchIndex: Type.Number(), - targetBranchIndex: Type.Number(), - stepName: Type.String(), +export const MoveBranchRequest = z.object({ + sourceBranchIndex: z.number(), + targetBranchIndex: z.number(), + stepName: z.string(), }) -export type MoveBranchRequest = Static +export type MoveBranchRequest = z.infer -export const SkipActionRequest = Type.Object({ - names: Type.Array(Type.String()), - skip: Type.Boolean(), +export const SkipActionRequest = z.object({ + names: z.array(z.string()), + skip: z.boolean(), }) -export type SkipActionRequest = Static +export type SkipActionRequest = z.infer -export const DuplicateBranchRequest = Type.Object({ - branchIndex: Type.Number(), - stepName: Type.String(), +export const DuplicateBranchRequest = z.object({ + branchIndex: z.number(), + stepName: z.string(), }) -export type DeleteBranchRequest = Static -export type AddBranchRequest = Static -export type DuplicateBranchRequest = Static -export type UpdateNoteRequest = Static -export type DeleteNoteRequest = Static -export type AddNoteRequest = Static +export type DeleteBranchRequest = z.infer +export type AddBranchRequest = z.infer +export type DuplicateBranchRequest = z.infer +export type UpdateNoteRequest = z.infer +export type DeleteNoteRequest = z.infer +export type AddNoteRequest = z.infer export enum StepLocationRelativeToParent { AFTER = 'AFTER', @@ -100,333 +100,210 @@ export enum StepLocationRelativeToParent { INSIDE_BRANCH = 'INSIDE_BRANCH', } -export const UseAsDraftRequest = Type.Object({ - versionId: Type.String(), +export const UseAsDraftRequest = z.object({ + versionId: z.string(), }) -export type UseAsDraftRequest = Static +export type UseAsDraftRequest = z.infer -export const LockFlowRequest = Type.Object({}) +export const LockFlowRequest = z.object({}) -export type LockFlowRequest = Static +export type LockFlowRequest = z.infer -export const ImportFlowRequest = Type.Object({ - displayName: Type.String({}), +export const ImportFlowRequest = z.object({ + displayName: z.string(), trigger: FlowTrigger, - schemaVersion: Nullable(Type.String()), - notes: Nullable(Type.Array(Note)), + schemaVersion: Nullable(z.string()), + notes: Nullable(z.array(Note)), }) -export type ImportFlowRequest = Static +export type ImportFlowRequest = z.infer -export const ChangeFolderRequest = Type.Object({ - folderId: Nullable(Type.String({})), +export const ChangeFolderRequest = z.object({ + folderId: Nullable(z.string()), }) -export type ChangeFolderRequest = Static +export type ChangeFolderRequest = z.infer -export const ChangeNameRequest = Type.Object({ - displayName: Type.String({}), +export const ChangeNameRequest = z.object({ + displayName: z.string(), }) -export type ChangeNameRequest = Static +export type ChangeNameRequest = z.infer -export const DeleteActionRequest = Type.Object({ - names: Type.Array(Type.String()), +export const DeleteActionRequest = z.object({ + names: z.array(z.string()), }) -export type DeleteActionRequest = Static +export type DeleteActionRequest = z.infer -export const UpdateActionRequest = Type.Union([ +export const UpdateActionRequest = z.union([ CodeActionSchema, LoopOnItemsActionSchema, PieceActionSchema, RouterActionSchema, ]) -export type UpdateActionRequest = Static +export type UpdateActionRequest = z.infer -export const DuplicateStepRequest = Type.Object({ - stepName: Type.String(), +export const DuplicateStepRequest = z.object({ + stepName: z.string(), }) -export type DuplicateStepRequest = Static +export type DuplicateStepRequest = z.infer -export const MoveActionRequest = Type.Object({ - name: Type.String(), - newParentStep: Type.String(), - stepLocationRelativeToNewParent: Type.Optional( - Type.Enum(StepLocationRelativeToParent), - ), - branchIndex: Type.Optional(Type.Number()), +export const MoveActionRequest = z.object({ + name: z.string(), + newParentStep: z.string(), + stepLocationRelativeToNewParent: z.nativeEnum(StepLocationRelativeToParent).optional(), + branchIndex: z.number().optional(), }) -export type MoveActionRequest = Static - -export const AddActionRequest = Type.Object({ - parentStep: Type.String(), - stepLocationRelativeToParent: Type.Optional( - Type.Enum(StepLocationRelativeToParent), - ), - branchIndex: Type.Optional(Type.Number()), +export type MoveActionRequest = z.infer + +export const AddActionRequest = z.object({ + parentStep: z.string(), + stepLocationRelativeToParent: z.nativeEnum(StepLocationRelativeToParent).optional(), + branchIndex: z.number().optional(), action: UpdateActionRequest, }) -export type AddActionRequest = Static +export type AddActionRequest = z.infer -export const UpdateTriggerRequest = Type.Union([EmptyTrigger, PieceTrigger]) -export type UpdateTriggerRequest = Static +export const UpdateTriggerRequest = z.union([EmptyTrigger, PieceTrigger]) +export type UpdateTriggerRequest = z.infer -export const UpdateFlowStatusRequest = Type.Object({ - status: Type.Enum(FlowStatus), +export const UpdateFlowStatusRequest = z.object({ + status: z.nativeEnum(FlowStatus), }) -export type UpdateFlowStatusRequest = Static +export type UpdateFlowStatusRequest = z.infer -export const ChangePublishedVersionIdRequest = Type.Object({ - status: Type.Optional(Type.Enum(FlowStatus)), +export const ChangePublishedVersionIdRequest = z.object({ + status: z.nativeEnum(FlowStatus).optional(), }) -export type ChangePublishedVersionIdRequest = Static< +export type ChangePublishedVersionIdRequest = z.infer< typeof ChangePublishedVersionIdRequest > -export const UpdateMetadataRequest = Type.Object({ +export const UpdateMetadataRequest = z.object({ metadata: Nullable(Metadata), }) -export type UpdateMetadataRequest = Static +export type UpdateMetadataRequest = z.infer -export const UpdateMinutesSavedRequest = Type.Object({ - timeSavedPerRun: Nullable(Type.Number()), +export const UpdateMinutesSavedRequest = z.object({ + timeSavedPerRun: Nullable(z.number()), }) -export type UpdateMinutesSavedRequest = Static +export type UpdateMinutesSavedRequest = z.infer -export const UpdateOwnerRequest = Type.Object({ - ownerId: Type.String(), +export const UpdateOwnerRequest = z.object({ + ownerId: z.string(), }) -export type UpdateOwnerRequest = Static -export const FlowOperationRequest = Type.Union([ - Type.Object( - { - type: Type.Literal(FlowOperationType.MOVE_ACTION), - request: MoveActionRequest, - }, - { - title: 'Move Action', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.CHANGE_STATUS), - request: UpdateFlowStatusRequest, - }, - { - title: 'Change Status', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.LOCK_AND_PUBLISH), - request: ChangePublishedVersionIdRequest, - }, - { - title: 'Lock and Publish', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.USE_AS_DRAFT), - request: UseAsDraftRequest, - }, - { - title: 'Copy as Draft', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.LOCK_FLOW), - request: LockFlowRequest, - }, - { - title: 'Lock Flow', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.IMPORT_FLOW), - request: ImportFlowRequest, - }, - { - title: 'Import Flow', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.CHANGE_NAME), - request: ChangeNameRequest, - }, - { - title: 'Change Name', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.DELETE_ACTION), - request: DeleteActionRequest, - }, - { - title: 'Delete Action', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.UPDATE_ACTION), - request: UpdateActionRequest, - }, - { - title: 'Update Action', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.ADD_ACTION), - request: AddActionRequest, - }, - { - title: 'Add Action', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.UPDATE_TRIGGER), - request: UpdateTriggerRequest, - }, - { - title: 'Update Trigger', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.CHANGE_FOLDER), - request: ChangeFolderRequest, - }, - { - title: 'Change Folder', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.DUPLICATE_ACTION), - request: DuplicateStepRequest, - }, - { - title: 'Duplicate Action', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.DELETE_BRANCH), - request: DeleteBranchRequest, - }, - { - title: 'Delete Branch', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.ADD_BRANCH), - request: AddBranchRequest, - }, - { - title: 'Add Branch', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.DUPLICATE_BRANCH), - request: DuplicateBranchRequest, - }, - { - title: 'Duplicate Branch', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.SET_SKIP_ACTION), - request: SkipActionRequest, - }, - { - title: 'Skip Action', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.UPDATE_METADATA), - request: UpdateMetadataRequest, - }, - { - title: 'Update Metadata', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.MOVE_BRANCH), - request: MoveBranchRequest, - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.SAVE_SAMPLE_DATA), - request: SaveSampleDataRequest, - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.UPDATE_MINUTES_SAVED), - request: UpdateMinutesSavedRequest, - }, - { - title: 'Update Minutes Saved', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.UPDATE_OWNER), - request: UpdateOwnerRequest, - }, - { - title: 'Update Owner', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.UPDATE_NOTE), - request: UpdateNoteRequest, - }, - { - title: 'Update Note', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.DELETE_NOTE), - request: DeleteNoteRequest, - }, - { - title: 'Delete Note', - }, - ), - Type.Object( - { - type: Type.Literal(FlowOperationType.ADD_NOTE), - request: AddNoteRequest, - }, - { - title: 'Add Note', - }, - ), - +export type UpdateOwnerRequest = z.infer +export const FlowOperationRequest = z.union([ + z.object({ + type: z.literal(FlowOperationType.MOVE_ACTION), + request: MoveActionRequest, + }).describe('Move Action'), + z.object({ + type: z.literal(FlowOperationType.CHANGE_STATUS), + request: UpdateFlowStatusRequest, + }).describe('Change Status'), + z.object({ + type: z.literal(FlowOperationType.LOCK_AND_PUBLISH), + request: ChangePublishedVersionIdRequest, + }).describe('Lock and Publish'), + z.object({ + type: z.literal(FlowOperationType.USE_AS_DRAFT), + request: UseAsDraftRequest, + }).describe('Copy as Draft'), + z.object({ + type: z.literal(FlowOperationType.LOCK_FLOW), + request: LockFlowRequest, + }).describe('Lock Flow'), + z.object({ + type: z.literal(FlowOperationType.IMPORT_FLOW), + request: ImportFlowRequest, + }).describe('Import Flow'), + z.object({ + type: z.literal(FlowOperationType.CHANGE_NAME), + request: ChangeNameRequest, + }).describe('Change Name'), + z.object({ + type: z.literal(FlowOperationType.DELETE_ACTION), + request: DeleteActionRequest, + }).describe('Delete Action'), + z.object({ + type: z.literal(FlowOperationType.UPDATE_ACTION), + request: UpdateActionRequest, + }).describe('Update Action'), + z.object({ + type: z.literal(FlowOperationType.ADD_ACTION), + request: AddActionRequest, + }).describe('Add Action'), + z.object({ + type: z.literal(FlowOperationType.UPDATE_TRIGGER), + request: UpdateTriggerRequest, + }).describe('Update Trigger'), + z.object({ + type: z.literal(FlowOperationType.CHANGE_FOLDER), + request: ChangeFolderRequest, + }).describe('Change Folder'), + z.object({ + type: z.literal(FlowOperationType.DUPLICATE_ACTION), + request: DuplicateStepRequest, + }).describe('Duplicate Action'), + z.object({ + type: z.literal(FlowOperationType.DELETE_BRANCH), + request: DeleteBranchRequest, + }).describe('Delete Branch'), + z.object({ + type: z.literal(FlowOperationType.ADD_BRANCH), + request: AddBranchRequest, + }).describe('Add Branch'), + z.object({ + type: z.literal(FlowOperationType.DUPLICATE_BRANCH), + request: DuplicateBranchRequest, + }).describe('Duplicate Branch'), + z.object({ + type: z.literal(FlowOperationType.SET_SKIP_ACTION), + request: SkipActionRequest, + }).describe('Skip Action'), + z.object({ + type: z.literal(FlowOperationType.UPDATE_METADATA), + request: UpdateMetadataRequest, + }).describe('Update Metadata'), + z.object({ + type: z.literal(FlowOperationType.MOVE_BRANCH), + request: MoveBranchRequest, + }), + z.object({ + type: z.literal(FlowOperationType.SAVE_SAMPLE_DATA), + request: SaveSampleDataRequest, + }), + z.object({ + type: z.literal(FlowOperationType.UPDATE_MINUTES_SAVED), + request: UpdateMinutesSavedRequest, + }).describe('Update Minutes Saved'), + z.object({ + type: z.literal(FlowOperationType.UPDATE_OWNER), + request: UpdateOwnerRequest, + }).describe('Update Owner'), + z.object({ + type: z.literal(FlowOperationType.UPDATE_NOTE), + request: UpdateNoteRequest, + }).describe('Update Note'), + z.object({ + type: z.literal(FlowOperationType.DELETE_NOTE), + request: DeleteNoteRequest, + }).describe('Delete Note'), + z.object({ + type: z.literal(FlowOperationType.ADD_NOTE), + request: AddNoteRequest, + }).describe('Add Note'), + ]) -export type FlowOperationRequest = Static +export type FlowOperationRequest = z.infer export const flowOperations = { getActionsForCopy: _getActionsForCopy, @@ -520,7 +397,7 @@ export const flowOperations = { clonedVersion = notesOperations.addNote(clonedVersion, operation.request) break } - + default: break } diff --git a/packages/shared/src/lib/automation/flows/operations/update-action.ts b/packages/shared/src/lib/automation/flows/operations/update-action.ts index e985caabfcb..25617f0e6e2 100644 --- a/packages/shared/src/lib/automation/flows/operations/update-action.ts +++ b/packages/shared/src/lib/automation/flows/operations/update-action.ts @@ -1,18 +1,15 @@ -import { TypeCompiler } from '@sinclair/typebox/compiler' import { isNil } from '../../../core/common' import { FlowAction, FlowActionType, SingleActionSchema } from '../actions/action' import { FlowVersion } from '../flow-version' import { flowStructureUtil } from '../util/flow-structure-util' import { UpdateActionRequest } from './index' -const actionSchemaValidator = TypeCompiler.Compile(SingleActionSchema) - function _updateAction(flowVersion: FlowVersion, request: UpdateActionRequest): FlowVersion { return flowStructureUtil.transferFlow(flowVersion, (stepToUpdate) => { if (stepToUpdate.name !== request.name) { return stepToUpdate } - + const baseProps: Omit = { displayName: request.displayName, name: request.name, @@ -54,7 +51,7 @@ function _updateAction(flowVersion: FlowVersion, request: UpdateActionRequest): } break } - + case FlowActionType.ROUTER: { updatedAction = { ...baseProps, @@ -66,7 +63,8 @@ function _updateAction(flowVersion: FlowVersion, request: UpdateActionRequest): break } } - const valid = (isNil(request.valid) ? true : request.valid) && actionSchemaValidator.Check(updatedAction) + const parseResult = SingleActionSchema.safeParse(updatedAction) + const valid = (isNil(request.valid) ? true : request.valid) && parseResult.success return { ...updatedAction, valid, @@ -74,4 +72,4 @@ function _updateAction(flowVersion: FlowVersion, request: UpdateActionRequest): }) } -export { _updateAction } \ No newline at end of file +export { _updateAction } diff --git a/packages/shared/src/lib/automation/flows/operations/update-trigger.ts b/packages/shared/src/lib/automation/flows/operations/update-trigger.ts index 3b5920a5f6d..b5004c1ecf2 100644 --- a/packages/shared/src/lib/automation/flows/operations/update-trigger.ts +++ b/packages/shared/src/lib/automation/flows/operations/update-trigger.ts @@ -1,4 +1,3 @@ -import { TypeCompiler } from '@sinclair/typebox/compiler' import { isNil } from '../../../core/common' import { FlowAction } from '../actions/action' import { FlowVersion } from '../flow-version' @@ -6,8 +5,6 @@ import { FlowTrigger, FlowTriggerType } from '../triggers/trigger' import { flowStructureUtil } from '../util/flow-structure-util' import { UpdateTriggerRequest } from '.' -const triggerSchemaValidation = TypeCompiler.Compile(FlowTrigger) - function createTrigger(name: string, request: UpdateTriggerRequest, nextAction: FlowAction | undefined): FlowTrigger { const baseProperties = { displayName: request.displayName, @@ -32,7 +29,8 @@ function createTrigger(name: string, request: UpdateTriggerRequest, nextAction: } break } - const valid = (isNil(request.valid) ? true : request.valid) && triggerSchemaValidation.Check(trigger) + const parseResult = FlowTrigger.safeParse(trigger) + const valid = (isNil(request.valid) ? true : request.valid) && parseResult.success return { ...trigger, valid, @@ -50,4 +48,4 @@ function _updateTrigger(flowVersion: FlowVersion, request: UpdateTriggerRequest) }) } -export { _updateTrigger } \ No newline at end of file +export { _updateTrigger } diff --git a/packages/shared/src/lib/automation/flows/properties/property.ts b/packages/shared/src/lib/automation/flows/properties/property.ts index 42cd6934ee9..5864e16e403 100644 --- a/packages/shared/src/lib/automation/flows/properties/property.ts +++ b/packages/shared/src/lib/automation/flows/properties/property.ts @@ -1,12 +1,12 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' export enum PropertyExecutionType { MANUAL = 'MANUAL', DYNAMIC = 'DYNAMIC', } -export const PropertySettings = Type.Object({ - type: Type.Enum(PropertyExecutionType), - schema: Type.Optional(Type.Any()), +export const PropertySettings = z.object({ + type: z.nativeEnum(PropertyExecutionType), + schema: z.any().optional(), }) -export type PropertySettings = Static +export type PropertySettings = z.infer diff --git a/packages/shared/src/lib/automation/flows/sample-data/index.ts b/packages/shared/src/lib/automation/flows/sample-data/index.ts index 0921f728073..3466354ab34 100644 --- a/packages/shared/src/lib/automation/flows/sample-data/index.ts +++ b/packages/shared/src/lib/automation/flows/sample-data/index.ts @@ -1,4 +1,4 @@ -import { Pick, Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { File } from '../../../core/file' export enum SampleDataFileType { @@ -13,63 +13,60 @@ export enum SampleDataDataType { JSON = 'JSON', STRING = 'STRING', } -export const SaveSampleDataRequest = Type.Object({ - stepName: Type.String(), - payload: Type.Unknown(), - type: Type.Enum(SampleDataFileType), +export const SaveSampleDataRequest = z.object({ + stepName: z.string(), + payload: z.unknown(), + type: z.nativeEnum(SampleDataFileType), }) -export type SaveSampleDataRequest = Static +export type SaveSampleDataRequest = z.infer -export const GetSampleDataRequest = Type.Object({ - flowId: Type.String(), - flowVersionId: Type.String(), - stepName: Type.String(), - projectId: Type.String(), - type: Type.Enum(SampleDataFileType), +export const GetSampleDataRequest = z.object({ + flowId: z.string(), + flowVersionId: z.string(), + stepName: z.string(), + projectId: z.string(), + type: z.nativeEnum(SampleDataFileType), }) -export type GetSampleDataRequest = Static +export type GetSampleDataRequest = z.infer -export const CreateStepRunRequestBody = Type.Object({ - projectId: Type.String(), - flowVersionId: Type.String(), - stepName: Type.String(), +export const CreateStepRunRequestBody = z.object({ + projectId: z.string(), + flowVersionId: z.string(), + stepName: z.string(), }) -export type CreateStepRunRequestBody = Static +export type CreateStepRunRequestBody = z.infer -export const StepRunResponse = Type.Object({ - runId: Type.String(), - success: Type.Boolean(), - input: Type.Unknown(), - output: Type.Unknown(), - sampleDataFileId: Type.Optional(Type.String()), - sampleDataInputFileId: Type.Optional(Type.String()), - standardError: Type.String(), - standardOutput: Type.String(), +export const StepRunResponse = z.object({ + runId: z.string(), + success: z.boolean(), + input: z.unknown(), + output: z.unknown(), + sampleDataFileId: z.string().optional(), + sampleDataInputFileId: z.string().optional(), + standardError: z.string(), + standardOutput: z.string(), }) -export type StepRunResponse = Static +export type StepRunResponse = z.infer -export const StepExecutionPath = Type.Array(Type.Tuple([Type.String(), Type.Number()])) -export type StepExecutionPath = Static -export const SampleDataSetting = Type.Object( +export const StepExecutionPath = z.array(z.tuple([z.string(), z.number()])) +export type StepExecutionPath = z.infer +export const SampleDataSetting = z.object( { - sampleDataFileId: Type.Optional(Type.String()), - sampleDataInputFileId: Type.Optional(Type.String()), - lastTestDate: Type.Optional(Type.String()), + sampleDataFileId: z.string().optional(), + sampleDataInputFileId: z.string().optional(), + lastTestDate: z.string().optional(), }, - { - additionalProperties: true, - }, -) +).passthrough() -export type SampleDataSettings = Static +export type SampleDataSettings = z.infer export const DEFAULT_SAMPLE_DATA_SETTINGS: SampleDataSettings = { sampleDataFileId: undefined, sampleDataInputFileId: undefined, } -export const SaveSampleDataResponse = Pick(File, ['id', 'size', 'type']) -export type SaveSampleDataResponse = Static +export const SaveSampleDataResponse = File.pick({ id: true, size: true, type: true }) +export type SaveSampleDataResponse = z.infer diff --git a/packages/shared/src/lib/automation/flows/step-file/step-file.ts b/packages/shared/src/lib/automation/flows/step-file/step-file.ts index f3a23f519a8..3d2f6d69fea 100644 --- a/packages/shared/src/lib/automation/flows/step-file/step-file.ts +++ b/packages/shared/src/lib/automation/flows/step-file/step-file.ts @@ -1,19 +1,19 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApMultipartFile } from '../../../core/common' -export const StepFileUpsertRequest = Type.Object({ - flowId: Type.String(), - stepName: Type.String(), - file: Type.Optional(Type.Pick(ApMultipartFile, ['data'])), - contentLength: Type.Number(), - fileName: Type.String(), +export const StepFileUpsertRequest = z.object({ + flowId: z.string(), + stepName: z.string(), + file: ApMultipartFile.pick({ data: true }).optional(), + contentLength: z.number(), + fileName: z.string(), }) -export type StepFileUpsert = Static +export type StepFileUpsert = z.infer -export const StepFileUpsertResponse = Type.Object({ - uploadUrl: Type.Optional(Type.String()), - url: Type.String(), +export const StepFileUpsertResponse = z.object({ + uploadUrl: z.string().optional(), + url: z.string(), }) -export type StepFileUpsertResponse = Static \ No newline at end of file +export type StepFileUpsertResponse = z.infer diff --git a/packages/shared/src/lib/automation/flows/test-trigger.ts b/packages/shared/src/lib/automation/flows/test-trigger.ts index 1bad6a8d865..4459124a4b4 100644 --- a/packages/shared/src/lib/automation/flows/test-trigger.ts +++ b/packages/shared/src/lib/automation/flows/test-trigger.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApId } from '../../core/common/id-generator' export enum TriggerTestStrategy { @@ -6,19 +6,19 @@ export enum TriggerTestStrategy { TEST_FUNCTION = 'TEST_FUNCTION', } -export const TestTriggerRequestBody = Type.Object({ +export const TestTriggerRequestBody = z.object({ projectId: ApId, flowId: ApId, flowVersionId: ApId, - testStrategy: Type.Enum(TriggerTestStrategy), + testStrategy: z.nativeEnum(TriggerTestStrategy), }) -export type TestTriggerRequestBody = Static +export type TestTriggerRequestBody = z.infer -export const CancelTestTriggerRequestBody = Type.Object({ +export const CancelTestTriggerRequestBody = z.object({ projectId: ApId, flowId: ApId, }) -export type CancelTestTriggerRequestBody = Static \ No newline at end of file +export type CancelTestTriggerRequestBody = z.infer diff --git a/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-event.ts b/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-event.ts index 6bfd4b5ec0d..16ea2b396f1 100755 --- a/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-event.ts +++ b/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-event.ts @@ -1,23 +1,20 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModel } from '../../../../core/common' export type TriggerEventId = string -export const TriggerEvent = Type.Object({ - id: Type.String(), - projectId: Type.String(), - flowId: Type.String(), - sourceName: Type.String(), - fileId: Type.String(), +export const TriggerEvent = z.object({ + id: z.string(), + projectId: z.string(), + flowId: z.string(), + sourceName: z.string(), + fileId: z.string(), }) -export type TriggerEvent = Static & BaseModel +export type TriggerEvent = z.infer & BaseModel -export const TriggerEventWithPayload = Type.Composite([ - TriggerEvent, - Type.Object({ - payload: Type.Unknown(), - }), -]) +export const TriggerEventWithPayload = TriggerEvent.extend({ + payload: z.unknown(), +}) -export type TriggerEventWithPayload = Static \ No newline at end of file +export type TriggerEventWithPayload = z.infer diff --git a/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-events-dto.ts b/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-events-dto.ts index d2924520774..661ca6bd7cf 100755 --- a/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-events-dto.ts +++ b/packages/shared/src/lib/automation/flows/triggers/trigger-events/trigger-events-dto.ts @@ -1,24 +1,24 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApId } from '../../../../core/common/id-generator' import { Cursor } from '../../../../core/common/seek-page' import { FlowId } from '../../flow' -export const ListTriggerEventsRequest = Type.Object({ +export const ListTriggerEventsRequest = z.object({ projectId: ApId, - flowId: Type.String({}), - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), + flowId: z.string(), + limit: z.coerce.number().optional(), + cursor: z.string().optional(), }) -export type ListTriggerEventsRequest = Omit, 'flowId' | 'cursor'> & { +export type ListTriggerEventsRequest = Omit, 'flowId' | 'cursor'> & { flowId: FlowId cursor: Cursor | undefined } -export const SaveTriggerEventRequest = Type.Object({ +export const SaveTriggerEventRequest = z.object({ projectId: ApId, - flowId: Type.String({}), - mockData: Type.Unknown(), + flowId: z.string(), + mockData: z.unknown(), }) -export type SaveTriggerEventRequest = Static \ No newline at end of file +export type SaveTriggerEventRequest = z.infer diff --git a/packages/shared/src/lib/automation/flows/triggers/trigger-run.ts b/packages/shared/src/lib/automation/flows/triggers/trigger-run.ts index e01710c6bd2..76a4713c1db 100644 --- a/packages/shared/src/lib/automation/flows/triggers/trigger-run.ts +++ b/packages/shared/src/lib/automation/flows/triggers/trigger-run.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' export enum TriggerRunStatus { @@ -8,14 +8,14 @@ export enum TriggerRunStatus { TIMED_OUT = 'TIMED_OUT', } -export const TriggerStatusReport = Type.Object({ - pieces: Type.Record(Type.String(), Type.Object({ - dailyStats: Type.Record(Type.String(), Type.Object({ - success: Type.Number(), - failure: Type.Number(), +export const TriggerStatusReport = z.object({ + pieces: z.record(z.string(), z.object({ + dailyStats: z.record(z.string(), z.object({ + success: z.number(), + failure: z.number(), })), - totalRuns: Type.Number(), + totalRuns: z.number(), })), }) -export type TriggerStatusReport = Static \ No newline at end of file +export type TriggerStatusReport = z.infer diff --git a/packages/shared/src/lib/automation/flows/triggers/trigger.ts b/packages/shared/src/lib/automation/flows/triggers/trigger.ts index 8a02b5cbda3..86505799967 100755 --- a/packages/shared/src/lib/automation/flows/triggers/trigger.ts +++ b/packages/shared/src/lib/automation/flows/triggers/trigger.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { VersionType } from '../../pieces' import { CodeActionSettings, LoopOnItemsActionSettings, PieceActionSettings, RouterActionSettings } from '../actions/action' import { PropertySettings } from '../properties' @@ -7,17 +7,17 @@ import { SampleDataSetting } from '../sample-data' export const AUTHENTICATION_PROPERTY_NAME = 'auth' -export const PieceTriggerSettings = Type.Object({ - sampleData: Type.Optional(SampleDataSetting), - propertySettings: Type.Record(Type.String(), PropertySettings), - customLogoUrl: Type.Optional(Type.String()), - pieceName: Type.String({}), +export const PieceTriggerSettings = z.object({ + sampleData: SampleDataSetting.optional(), + propertySettings: z.record(z.string(), PropertySettings), + customLogoUrl: z.string().optional(), + pieceName: z.string(), pieceVersion: VersionType, - triggerName: Type.Optional(Type.String({})), - input: Type.Record(Type.String({}), Type.Any()), + triggerName: z.string().optional(), + input: z.record(z.string(), z.any()), }) -export type PieceTriggerSettings = Static +export type PieceTriggerSettings = z.infer export enum FlowTriggerType { @@ -26,36 +26,36 @@ export enum FlowTriggerType { } const commonProps = { - name: Type.String({}), - valid: Type.Boolean({}), - displayName: Type.String({}), - nextAction: Type.Optional(Type.Any()), + name: z.string(), + valid: z.boolean(), + displayName: z.string(), + nextAction: z.any().optional(), } -export const EmptyTrigger = Type.Object({ +export const EmptyTrigger = z.object({ ...commonProps, - type: Type.Literal(FlowTriggerType.EMPTY), - settings: Type.Any(), + type: z.literal(FlowTriggerType.EMPTY), + settings: z.any(), }) -export type EmptyTrigger = Static +export type EmptyTrigger = z.infer -export const PieceTrigger = Type.Object({ +export const PieceTrigger = z.object({ ...commonProps, - type: Type.Literal(FlowTriggerType.PIECE), + type: z.literal(FlowTriggerType.PIECE), settings: PieceTriggerSettings, }) -export type PieceTrigger = Static +export type PieceTrigger = z.infer -export const FlowTrigger = Type.Union([ +export const FlowTrigger = z.union([ PieceTrigger, EmptyTrigger, ]) -export type FlowTrigger = Static +export type FlowTrigger = z.infer export type StepSettings = diff --git a/packages/shared/src/lib/automation/forms/index.ts b/packages/shared/src/lib/automation/forms/index.ts index ef3109f6e31..dcd9c0b7276 100644 --- a/packages/shared/src/lib/automation/forms/index.ts +++ b/packages/shared/src/lib/automation/forms/index.ts @@ -1,20 +1,20 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -const FileResponseInterfaceV1 = Type.Object({ - base64Url: Type.String(), - fileName: Type.String(), - extension: Type.Optional(Type.String()), +const FileResponseInterfaceV1 = z.object({ + base64Url: z.string(), + fileName: z.string(), + extension: z.string().optional(), }) -const FileResponseInterfaceV2 = Type.Object({ - mimeType: Type.String(), - url: Type.String(), - fileName: Type.Optional(Type.String()), +const FileResponseInterfaceV2 = z.object({ + mimeType: z.string(), + url: z.string(), + fileName: z.string().optional(), }) -export const FileResponseInterface = Type.Union([FileResponseInterfaceV1, FileResponseInterfaceV2]) +export const FileResponseInterface = z.union([FileResponseInterfaceV1, FileResponseInterfaceV2]) -export type FileResponseInterface = Static +export type FileResponseInterface = z.infer @@ -28,31 +28,31 @@ export function createKeyForFormInput(displayName: string) { .toLowerCase() .replace(/\s+(\w)/g, (_, letter) => letter.toUpperCase()) .replace(/^(.)/, letter => letter.toLowerCase()) - + /**We do this because react form inputs must not contain quotes */ return inputKey.replaceAll(/[\\"''\n\r\t]/g, '') } - -export const HumanInputFormResult = Type.Union([ - Type.Object({ - type: Type.Literal(HumanInputFormResultTypes.FILE), + +export const HumanInputFormResult = z.union([ + z.object({ + type: z.literal(HumanInputFormResultTypes.FILE), value: FileResponseInterface, }), - Type.Object({ - type: Type.Literal(HumanInputFormResultTypes.MARKDOWN), - value: Type.String(), - files: Type.Optional(Type.Array(FileResponseInterface)), + z.object({ + type: z.literal(HumanInputFormResultTypes.MARKDOWN), + value: z.string(), + files: z.array(FileResponseInterface).optional(), }), ]) -export type HumanInputFormResult = Static +export type HumanInputFormResult = z.infer -export const ChatFormResponse = Type.Object({ - sessionId: Type.String(), - message: Type.String(), - files: Type.Optional(Type.Array(Type.String())), +export const ChatFormResponse = z.object({ + sessionId: z.string(), + message: z.string(), + files: z.array(z.string()).optional(), }) -export type ChatFormResponse = Static \ No newline at end of file +export type ChatFormResponse = z.infer diff --git a/packages/shared/src/lib/automation/mcp/mcp.ts b/packages/shared/src/lib/automation/mcp/mcp.ts index 1f0fa9edf1e..cbf0dcfdb07 100644 --- a/packages/shared/src/lib/automation/mcp/mcp.ts +++ b/packages/shared/src/lib/automation/mcp/mcp.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common' import { ApId } from '../../core/common/id-generator' import { PopulatedFlow } from '../flows/flow' @@ -12,23 +12,23 @@ export enum McpServerStatus { DISABLED = 'DISABLED', } -export const McpServer = Type.Object({ +export const McpServer = z.object({ ...BaseModelSchema, projectId: ApId, - status: Type.Enum(McpServerStatus), + status: z.nativeEnum(McpServerStatus), token: ApId, }) -export const PopulatedMcpServer = Type.Composite([McpServer, Type.Object({ - flows: Type.Array(PopulatedFlow), -})]) -export type PopulatedMcpServer = Static +export const PopulatedMcpServer = McpServer.extend({ + flows: z.array(PopulatedFlow), +}) +export type PopulatedMcpServer = z.infer -export type McpServer = Static +export type McpServer = z.infer -export const UpdateMcpServerRequest = Type.Object({ - status: Type.Enum(McpServerStatus), +export const UpdateMcpServerRequest = z.object({ + status: z.nativeEnum(McpServerStatus), }) -export type UpdateMcpServerRequest = Static +export type UpdateMcpServerRequest = z.infer diff --git a/packages/shared/src/lib/automation/mcp/pieces/mcp-piece.ts b/packages/shared/src/lib/automation/mcp/pieces/mcp-piece.ts index 6f1c0da54b5..c0eed306f0f 100644 --- a/packages/shared/src/lib/automation/mcp/pieces/mcp-piece.ts +++ b/packages/shared/src/lib/automation/mcp/pieces/mcp-piece.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' export enum McpPropertyType { TEXT = 'Text', @@ -9,25 +9,25 @@ export enum McpPropertyType { OBJECT = 'Object', } -export const McpProperty = Type.Object({ - name: Type.String(), - description: Type.Optional(Type.String()), - type: Type.String(), - required: Type.Boolean(), +export const McpProperty = z.object({ + name: z.string(), + description: z.string().optional(), + type: z.string(), + required: z.boolean(), }) -export type McpProperty = Static +export type McpProperty = z.infer -export const McpTrigger = Type.Object({ - pieceName: Type.String(), - triggerName: Type.String(), - input: Type.Object({ - toolName: Type.String(), - toolDescription: Type.String(), - inputSchema: Type.Array(McpProperty), - returnsResponse: Type.Boolean(), +export const McpTrigger = z.object({ + pieceName: z.string(), + triggerName: z.string(), + input: z.object({ + toolName: z.string(), + toolDescription: z.string(), + inputSchema: z.array(McpProperty), + returnsResponse: z.boolean(), }), }) -export type McpTrigger = Static +export type McpTrigger = z.infer diff --git a/packages/shared/src/lib/automation/pieces/dto/piece-requests.ts b/packages/shared/src/lib/automation/pieces/dto/piece-requests.ts index e3041d6a202..ddc61ff1019 100644 --- a/packages/shared/src/lib/automation/pieces/dto/piece-requests.ts +++ b/packages/shared/src/lib/automation/pieces/dto/piece-requests.ts @@ -1,5 +1,6 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApMultipartFile } from '../../../core/common' +import { OptionalArrayFromQuery, OptionalBooleanFromQuery } from '../../../core/common/base-model' import { ApEdition } from '../../../core/flag/flag' import { PackageType, PieceCategory } from '../piece' @@ -7,12 +8,10 @@ export const EXACT_VERSION_PATTERN = '^[0-9]+\\.[0-9]+\\.[0-9]+$' export const EXACT_VERSION_REGEX = new RegExp(EXACT_VERSION_PATTERN) const VERSION_PATTERN = '^([~^])?[0-9]+\\.[0-9]+\\.[0-9]+$' -export const ExactVersionType = Type.String({ - pattern: EXACT_VERSION_PATTERN, -}) -export const VersionType = Type.String({ - pattern: VERSION_PATTERN, -}) +export const ExactVersionType = z.string().regex(new RegExp(EXACT_VERSION_PATTERN)) + +export const VersionType = z.string().regex(new RegExp(VERSION_PATTERN)) + export enum SuggestionType { ACTION = 'ACTION', TRIGGER = 'TRIGGER', @@ -30,92 +29,84 @@ export enum PieceOrderBy { DESC = 'DESC', } -export const GetPieceRequestWithScopeParams = Type.Object({ - name: Type.String(), - scope: Type.String(), +export const GetPieceRequestWithScopeParams = z.object({ + name: z.string(), + scope: z.string(), }) -export type GetPieceRequestWithScopeParams = Static +export type GetPieceRequestWithScopeParams = z.infer -export const GetPieceRequestParams = Type.Object({ - name: Type.String(), +export const GetPieceRequestParams = z.object({ + name: z.string(), }) -export type GetPieceRequestParams = Static - -export const ListPiecesRequestQuery = Type.Object({ - projectId: Type.Optional(Type.String()), - release: Type.Optional(ExactVersionType), - includeTags: Type.Optional(Type.Boolean()), - includeHidden: Type.Optional(Type.Boolean()), - edition: Type.Optional(Type.Enum(ApEdition)), - searchQuery: Type.Optional(Type.String()), - sortBy: Type.Optional(Type.Enum(PieceSortBy)), - orderBy: Type.Optional(Type.Enum(PieceOrderBy)), - categories: Type.Optional(Type.Array(Type.Enum(PieceCategory))), - suggestionType: Type.Optional(Type.Enum(SuggestionType)), - locale: Type.Optional(Type.String()), +export type GetPieceRequestParams = z.infer + +export const ListPiecesRequestQuery = z.object({ + projectId: z.string().optional(), + release: ExactVersionType.optional(), + includeTags: OptionalBooleanFromQuery, + includeHidden: OptionalBooleanFromQuery, + edition: z.nativeEnum(ApEdition).optional(), + searchQuery: z.string().optional(), + sortBy: z.nativeEnum(PieceSortBy).optional(), + orderBy: z.nativeEnum(PieceOrderBy).optional(), + categories: OptionalArrayFromQuery(z.nativeEnum(PieceCategory)), + suggestionType: z.nativeEnum(SuggestionType).optional(), + locale: z.string().optional(), }) -export type ListPiecesRequestQuery = Static +export type ListPiecesRequestQuery = z.infer -export const RegistryPiecesRequestQuery = Type.Object({ +export const RegistryPiecesRequestQuery = z.object({ release: ExactVersionType, - edition: Type.Enum(ApEdition), + edition: z.nativeEnum(ApEdition), }) -export type RegistryPiecesRequestQuery = Static +export type RegistryPiecesRequestQuery = z.infer -export const GetPieceRequestQuery = Type.Object({ - version: Type.Optional(VersionType), - projectId: Type.Optional(Type.String()), - locale: Type.Optional(Type.String()), +export const GetPieceRequestQuery = z.object({ + version: VersionType.optional(), + projectId: z.string().optional(), + locale: z.string().optional(), }) -export type GetPieceRequestQuery = Static +export type GetPieceRequestQuery = z.infer -export const PieceOptionRequest = Type.Object({ - projectId: Type.String(), - pieceName: Type.String({}), +export const PieceOptionRequest = z.object({ + projectId: z.string(), + pieceName: z.string(), pieceVersion: VersionType, - actionOrTriggerName: Type.String({}), - propertyName: Type.String({}), - flowId: Type.String(), - flowVersionId: Type.String(), - input: Type.Any({}), - searchValue: Type.Optional(Type.String()), + actionOrTriggerName: z.string(), + propertyName: z.string(), + flowId: z.string(), + flowVersionId: z.string(), + input: z.any(), + searchValue: z.string().optional(), }) -export type PieceOptionRequest = Static +export type PieceOptionRequest = z.infer export enum PieceScope { PLATFORM = 'PLATFORM', } -export const AddPieceRequestBody = Type.Union([ - Type.Object({ - packageType: Type.Literal(PackageType.ARCHIVE), - scope: Type.Literal(PieceScope.PLATFORM), - pieceName: Type.String({ - minLength: 1, - }), +export const AddPieceRequestBody = z.union([ + z.object({ + packageType: z.literal(PackageType.ARCHIVE), + scope: z.literal(PieceScope.PLATFORM), + pieceName: z.string().min(1), pieceVersion: ExactVersionType, pieceArchive: ApMultipartFile, - }, { - title: 'Private Piece', - }), - Type.Object({ - packageType: Type.Literal(PackageType.REGISTRY), - scope: Type.Literal(PieceScope.PLATFORM), - pieceName: Type.String({ - minLength: 1, - }), + }).describe('Private Piece'), + z.object({ + packageType: z.literal(PackageType.REGISTRY), + scope: z.literal(PieceScope.PLATFORM), + pieceName: z.string().min(1), pieceVersion: ExactVersionType, - }, { - title: 'NPM Piece', - }), + }).describe('NPM Piece'), ]) -export type AddPieceRequestBody = Static +export type AddPieceRequestBody = z.infer diff --git a/packages/shared/src/lib/automation/pieces/piece.ts b/packages/shared/src/lib/automation/pieces/piece.ts index 32312ed7c78..6996f27b795 100644 --- a/packages/shared/src/lib/automation/pieces/piece.ts +++ b/packages/shared/src/lib/automation/pieces/piece.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' export enum PackageType { ARCHIVE = 'ARCHIVE', @@ -10,40 +10,40 @@ export enum PieceType { OFFICIAL = 'OFFICIAL', } -export const PrivatePiecePackage = Type.Object({ - packageType: Type.Literal(PackageType.ARCHIVE), - pieceType: Type.Enum(PieceType), - pieceName: Type.String(), - pieceVersion: Type.String(), - archiveId: Type.String(), - platformId: Type.String(), +export const PrivatePiecePackage = z.object({ + packageType: z.literal(PackageType.ARCHIVE), + pieceType: z.nativeEnum(PieceType), + pieceName: z.string(), + pieceVersion: z.string(), + archiveId: z.string(), + platformId: z.string(), }) -export type PrivatePiecePackage = Static +export type PrivatePiecePackage = z.infer -export const OfficialPiecePackage = Type.Object({ - packageType: Type.Literal(PackageType.REGISTRY), - pieceType: Type.Literal(PieceType.OFFICIAL), - pieceName: Type.String(), - pieceVersion: Type.String(), +export const OfficialPiecePackage = z.object({ + packageType: z.literal(PackageType.REGISTRY), + pieceType: z.literal(PieceType.OFFICIAL), + pieceName: z.string(), + pieceVersion: z.string(), }) -export type OfficialPiecePackage = Static +export type OfficialPiecePackage = z.infer -export const CustomNpmPiecePackage = Type.Object({ - packageType: Type.Literal(PackageType.REGISTRY), - pieceType: Type.Literal(PieceType.CUSTOM), - pieceName: Type.String(), - pieceVersion: Type.String(), - platformId: Type.String(), +export const CustomNpmPiecePackage = z.object({ + packageType: z.literal(PackageType.REGISTRY), + pieceType: z.literal(PieceType.CUSTOM), + pieceName: z.string(), + pieceVersion: z.string(), + platformId: z.string(), }) -export type CustomNpmPiecePackage = Static +export type CustomNpmPiecePackage = z.infer -export const PublicPiecePackage = Type.Union([OfficialPiecePackage, CustomNpmPiecePackage]) +export const PublicPiecePackage = z.union([OfficialPiecePackage, CustomNpmPiecePackage]) export type PublicPiecePackage = OfficialPiecePackage | CustomNpmPiecePackage -export const PiecePackage = Type.Union([PrivatePiecePackage, OfficialPiecePackage, CustomNpmPiecePackage]) +export const PiecePackage = z.union([PrivatePiecePackage, OfficialPiecePackage, CustomNpmPiecePackage]) export type PiecePackage = PrivatePiecePackage | OfficialPiecePackage | CustomNpmPiecePackage export enum PieceCategory { @@ -64,4 +64,4 @@ export enum PieceCategory { PAYMENT_PROCESSING = 'PAYMENT_PROCESSING', MARKETING = 'MARKETING', SALES_AND_CRM = 'SALES_AND_CRM', -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/automation/project-release/project-release.request.ts b/packages/shared/src/lib/automation/project-release/project-release.request.ts index 73f3af816cc..5a94ecfba6c 100644 --- a/packages/shared/src/lib/automation/project-release/project-release.request.ts +++ b/packages/shared/src/lib/automation/project-release/project-release.request.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' -import { DiscriminatedUnion, Nullable } from '../../core/common' +import { z } from 'zod' +import { Nullable } from '../../core/common' export enum ProjectReleaseType { GIT = 'GIT', @@ -8,62 +8,62 @@ export enum ProjectReleaseType { } const BaseProjectReleaseRequestBody = { - name: Type.String(), - description: Nullable(Type.String()), - selectedFlowsIds: Nullable(Type.Array(Type.String())), - projectId: Type.String(), + name: z.string(), + description: Nullable(z.string()), + selectedFlowsIds: Nullable(z.array(z.string())), + projectId: z.string(), } -export const CreateProjectReleaseFromGitRequestBody = Type.Object({ - type: Type.Literal(ProjectReleaseType.GIT), +export const CreateProjectReleaseFromGitRequestBody = z.object({ + type: z.literal(ProjectReleaseType.GIT), ...BaseProjectReleaseRequestBody, }) -export const CreateProjectReleaseFromRollbackRequestBody = Type.Object({ - type: Type.Literal(ProjectReleaseType.ROLLBACK), +export const CreateProjectReleaseFromRollbackRequestBody = z.object({ + type: z.literal(ProjectReleaseType.ROLLBACK), ...BaseProjectReleaseRequestBody, - projectReleaseId: Type.String(), + projectReleaseId: z.string(), }) -export const CreateProjectReleaseFromProjectRequestBody = Type.Object({ - type: Type.Literal(ProjectReleaseType.PROJECT), +export const CreateProjectReleaseFromProjectRequestBody = z.object({ + type: z.literal(ProjectReleaseType.PROJECT), ...BaseProjectReleaseRequestBody, - targetProjectId: Type.String(), + targetProjectId: z.string(), }) -export const CreateProjectReleaseRequestBody = DiscriminatedUnion('type', [ +export const CreateProjectReleaseRequestBody = z.discriminatedUnion('type', [ CreateProjectReleaseFromRollbackRequestBody, CreateProjectReleaseFromProjectRequestBody, CreateProjectReleaseFromGitRequestBody, ]) -export type CreateProjectReleaseRequestBody = Static +export type CreateProjectReleaseRequestBody = z.infer -export const DiffReleaseRequest = Type.Union([ - Type.Object({ - projectId: Type.String(), - type: Type.Literal(ProjectReleaseType.PROJECT), - targetProjectId: Type.String(), +export const DiffReleaseRequest = z.union([ + z.object({ + projectId: z.string(), + type: z.literal(ProjectReleaseType.PROJECT), + targetProjectId: z.string(), }), - Type.Object({ - projectId: Type.String(), - type: Type.Literal(ProjectReleaseType.ROLLBACK), - projectReleaseId: Type.String(), + z.object({ + projectId: z.string(), + type: z.literal(ProjectReleaseType.ROLLBACK), + projectReleaseId: z.string(), }), - Type.Object({ - projectId: Type.String(), - type: Type.Literal(ProjectReleaseType.GIT), + z.object({ + projectId: z.string(), + type: z.literal(ProjectReleaseType.GIT), }), ]) -export type DiffReleaseRequest = Static +export type DiffReleaseRequest = z.infer -export const ListProjectReleasesRequest = Type.Object({ - projectId: Type.String(), - cursor: Nullable(Type.String()), - limit: Type.Optional(Type.Number({ default: 10 })), +export const ListProjectReleasesRequest = z.object({ + projectId: z.string(), + cursor: z.string().optional(), + limit: z.coerce.number().default(10).optional(), }) -export type ListProjectReleasesRequest = Static +export type ListProjectReleasesRequest = z.infer diff --git a/packages/shared/src/lib/automation/project-release/project-release.ts b/packages/shared/src/lib/automation/project-release/project-release.ts index c6739fca918..65919392145 100644 --- a/packages/shared/src/lib/automation/project-release/project-release.ts +++ b/packages/shared/src/lib/automation/project-release/project-release.ts @@ -1,17 +1,17 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable } from '../../core/common' import { UserWithMetaInformation } from '../../core/user' import { ProjectReleaseType } from './project-release.request' -export const ProjectRelease = Type.Object({ +export const ProjectRelease = z.object({ ...BaseModelSchema, - projectId: Type.String(), - name: Type.String(), - description: Nullable(Type.String()), - importedBy: Nullable(Type.String()), - fileId: Type.String(), - type: Type.Enum(ProjectReleaseType), - importedByUser: Type.Optional(UserWithMetaInformation), + projectId: z.string(), + name: z.string(), + description: Nullable(z.string()), + importedBy: Nullable(z.string()), + fileId: z.string(), + type: z.nativeEnum(ProjectReleaseType), + importedByUser: UserWithMetaInformation.optional(), }) -export type ProjectRelease = Static +export type ProjectRelease = z.infer diff --git a/packages/shared/src/lib/automation/project-release/project-state.ts b/packages/shared/src/lib/automation/project-release/project-state.ts index 143a631c6b9..29b1ce5c6d2 100644 --- a/packages/shared/src/lib/automation/project-release/project-state.ts +++ b/packages/shared/src/lib/automation/project-release/project-state.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Nullable, NullableEnum } from '../../core/common' import { PopulatedFlow } from '../flows/flow' import { TableAutomationStatus, TableAutomationTrigger } from '../tables/table' @@ -20,140 +20,140 @@ export enum TableOperationType { } export const FlowState = PopulatedFlow -export type FlowState = Static +export type FlowState = z.infer -export const ConnectionState = Type.Object({ - externalId: Type.String(), - pieceName: Type.String(), - displayName: Type.String(), +export const ConnectionState = z.object({ + externalId: z.string(), + pieceName: z.string(), + displayName: z.string(), }) -export type ConnectionState = Static - -export const FieldState = Type.Object({ - name: Type.String(), - type: Type.String(), - data: Nullable(Type.Object({ - options: Type.Array(Type.Object({ - value: Type.String(), +export type ConnectionState = z.infer + +export const FieldState = z.object({ + name: z.string(), + type: z.string(), + data: Nullable(z.object({ + options: z.array(z.object({ + value: z.string(), })), })), - externalId: Type.String(), + externalId: z.string(), }) -export type FieldState = Static - -export const TableState = Type.Object({ - id: Type.String(), - name: Type.String(), - externalId: Type.String(), - fields: Type.Array(FieldState), - status: NullableEnum(Type.Enum(TableAutomationStatus)), - trigger: NullableEnum(Type.Enum(TableAutomationTrigger)), +export type FieldState = z.infer + +export const TableState = z.object({ + id: z.string(), + name: z.string(), + externalId: z.string(), + fields: z.array(FieldState), + status: NullableEnum(TableAutomationStatus), + trigger: NullableEnum(TableAutomationTrigger), }) -export type TableState = Static +export type TableState = z.infer -export const ProjectState = Type.Object({ - flows: Type.Array(PopulatedFlow), +export const ProjectState = z.object({ + flows: z.array(PopulatedFlow), // NOTE: This is optional because in old releases, the connections, tables, agents and mcp state is not present - connections: Type.Optional(Type.Array(ConnectionState)), - tables: Type.Optional(Type.Array(TableState)), + connections: z.array(ConnectionState).optional(), + tables: z.array(TableState).optional(), }) -export type ProjectState = Static +export type ProjectState = z.infer -export const ProjectOperation = Type.Union([ - Type.Object({ - type: Type.Literal(FlowProjectOperationType.UPDATE_FLOW), +export const ProjectOperation = z.union([ + z.object({ + type: z.literal(FlowProjectOperationType.UPDATE_FLOW), newFlowState: FlowState, flowState: FlowState, }), - Type.Object({ - type: Type.Literal(FlowProjectOperationType.CREATE_FLOW), + z.object({ + type: z.literal(FlowProjectOperationType.CREATE_FLOW), flowState: FlowState, }), - Type.Object({ - type: Type.Literal(FlowProjectOperationType.DELETE_FLOW), + z.object({ + type: z.literal(FlowProjectOperationType.DELETE_FLOW), flowState: FlowState, }), ]) -export type ProjectOperation = Static +export type ProjectOperation = z.infer -export const ConnectionOperation = Type.Union([ - Type.Object({ - type: Type.Literal(ConnectionOperationType.UPDATE_CONNECTION), +export const ConnectionOperation = z.union([ + z.object({ + type: z.literal(ConnectionOperationType.UPDATE_CONNECTION), newConnectionState: ConnectionState, connectionState: ConnectionState, }), - Type.Object({ - type: Type.Literal(ConnectionOperationType.CREATE_CONNECTION), + z.object({ + type: z.literal(ConnectionOperationType.CREATE_CONNECTION), connectionState: ConnectionState, }), ]) -export type ConnectionOperation = Static +export type ConnectionOperation = z.infer -export const TableOperation = Type.Union([ - Type.Object({ - type: Type.Literal(TableOperationType.UPDATE_TABLE), +export const TableOperation = z.union([ + z.object({ + type: z.literal(TableOperationType.UPDATE_TABLE), newTableState: TableState, tableState: TableState, }), - Type.Object({ - type: Type.Literal(TableOperationType.CREATE_TABLE), + z.object({ + type: z.literal(TableOperationType.CREATE_TABLE), tableState: TableState, }), - Type.Object({ - type: Type.Literal(TableOperationType.DELETE_TABLE), + z.object({ + type: z.literal(TableOperationType.DELETE_TABLE), tableState: TableState, }), ]) -export type TableOperation = Static +export type TableOperation = z.infer -export const DiffState = Type.Object({ - flows: Type.Array(ProjectOperation), - connections: Type.Array(ConnectionOperation), - tables: Type.Array(TableOperation), +export const DiffState = z.object({ + flows: z.array(ProjectOperation), + connections: z.array(ConnectionOperation), + tables: z.array(TableOperation), }) -export type DiffState = Static +export type DiffState = z.infer -export const FlowSyncError = Type.Object({ - flowId: Type.String(), - message: Type.String(), +export const FlowSyncError = z.object({ + flowId: z.string(), + message: z.string(), }) -export type FlowSyncError = Static - -export const FlowProjectOperation = Type.Union([ - Type.Object({ - type: Type.Literal(FlowProjectOperationType.CREATE_FLOW), - flow: Type.Object({ - id: Type.String(), - displayName: Type.String(), +export type FlowSyncError = z.infer + +export const FlowProjectOperation = z.union([ + z.object({ + type: z.literal(FlowProjectOperationType.CREATE_FLOW), + flow: z.object({ + id: z.string(), + displayName: z.string(), }), }), - Type.Object({ - type: Type.Literal(FlowProjectOperationType.UPDATE_FLOW), - flow: Type.Object({ - id: Type.String(), - displayName: Type.String(), + z.object({ + type: z.literal(FlowProjectOperationType.UPDATE_FLOW), + flow: z.object({ + id: z.string(), + displayName: z.string(), }), - targetFlow: Type.Object({ - id: Type.String(), - displayName: Type.String(), + targetFlow: z.object({ + id: z.string(), + displayName: z.string(), }), }), - Type.Object({ - type: Type.Literal(FlowProjectOperationType.DELETE_FLOW), - flow: Type.Object({ - id: Type.String(), - displayName: Type.String(), + z.object({ + type: z.literal(FlowProjectOperationType.DELETE_FLOW), + flow: z.object({ + id: z.string(), + displayName: z.string(), }), }), ]) -export type FlowProjectOperation = Static +export type FlowProjectOperation = z.infer -export const ProjectSyncPlan = Type.Object({ - flows: Type.Array(FlowProjectOperation), - connections: Type.Array(ConnectionOperation), - tables: Type.Array(TableOperation), - errors: Type.Array(FlowSyncError), +export const ProjectSyncPlan = z.object({ + flows: z.array(FlowProjectOperation), + connections: z.array(ConnectionOperation), + tables: z.array(TableOperation), + errors: z.array(FlowSyncError), }) -export type ProjectSyncPlan = Static +export type ProjectSyncPlan = z.infer diff --git a/packages/shared/src/lib/automation/tables/cell.ts b/packages/shared/src/lib/automation/tables/cell.ts index 4ae4b671916..e803a3d71f9 100644 --- a/packages/shared/src/lib/automation/tables/cell.ts +++ b/packages/shared/src/lib/automation/tables/cell.ts @@ -1,12 +1,12 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common' -export const Cell = Type.Object({ +export const Cell = z.object({ ...BaseModelSchema, - recordId: Type.String(), - fieldId: Type.String(), - projectId: Type.String(), - value: Type.Unknown(), + recordId: z.string(), + fieldId: z.string(), + projectId: z.string(), + value: z.unknown(), }) -export type Cell = Static +export type Cell = z.infer diff --git a/packages/shared/src/lib/automation/tables/dto/fields.dto.ts b/packages/shared/src/lib/automation/tables/dto/fields.dto.ts index 7546dc83b18..72398b1e371 100644 --- a/packages/shared/src/lib/automation/tables/dto/fields.dto.ts +++ b/packages/shared/src/lib/automation/tables/dto/fields.dto.ts @@ -1,34 +1,34 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { FieldType } from '../field' -const StaticDropdownData = Type.Object({ - options: Type.Array(Type.Object({ - value: Type.String(), +const StaticDropdownData = z.object({ + options: z.array(z.object({ + value: z.string(), })), }) -export const CreateFieldRequest = Type.Union([Type.Object({ - name: Type.String(), - type: Type.Literal(FieldType.STATIC_DROPDOWN), - tableId: Type.String(), +export const CreateFieldRequest = z.union([z.object({ + name: z.string(), + type: z.literal(FieldType.STATIC_DROPDOWN), + tableId: z.string(), data: StaticDropdownData, - externalId: Type.Optional(Type.String()), -}), Type.Object({ - name: Type.String(), - type: Type.Union([Type.Literal(FieldType.TEXT), Type.Literal(FieldType.NUMBER), Type.Literal(FieldType.DATE)]), - tableId: Type.String(), - externalId: Type.Optional(Type.String()), + externalId: z.string().optional(), +}), z.object({ + name: z.string(), + type: z.union([z.literal(FieldType.TEXT), z.literal(FieldType.NUMBER), z.literal(FieldType.DATE)]), + tableId: z.string(), + externalId: z.string().optional(), })]) -export const UpdateFieldRequest = Type.Object({ - name: Type.String(), +export const UpdateFieldRequest = z.object({ + name: z.string(), }) -export const ListFieldsRequestQuery = Type.Object({ - tableId: Type.String(), +export const ListFieldsRequestQuery = z.object({ + tableId: z.string(), }) -export type CreateFieldRequest = Static -export type UpdateFieldRequest = Static -export type ListFieldsRequestQuery = Static \ No newline at end of file +export type CreateFieldRequest = z.infer +export type UpdateFieldRequest = z.infer +export type ListFieldsRequestQuery = z.infer diff --git a/packages/shared/src/lib/automation/tables/dto/records.dto.ts b/packages/shared/src/lib/automation/tables/dto/records.dto.ts index 9f4857dbc11..6f29327bbb1 100644 --- a/packages/shared/src/lib/automation/tables/dto/records.dto.ts +++ b/packages/shared/src/lib/automation/tables/dto/records.dto.ts @@ -1,26 +1,27 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' +import { OptionalArrayFromQuery } from '../../../core/common/base-model' import { Cursor } from '../../../core/common/seek-page' -export const CreateRecordsRequest = Type.Object({ - records: Type.Array(Type.Array(Type.Object({ - fieldId: Type.String(), - value: Type.String(), +export const CreateRecordsRequest = z.object({ + records: z.array(z.array(z.object({ + fieldId: z.string(), + value: z.string(), }))), - tableId: Type.String(), + tableId: z.string(), }) -export type CreateRecordsRequest = Static +export type CreateRecordsRequest = z.infer -export const UpdateRecordRequest = Type.Object({ - cells: Type.Optional(Type.Array(Type.Object({ - fieldId: Type.String(), - value: Type.String(), - }))), - tableId: Type.String(), - agentUpdate: Type.Optional(Type.Boolean()), +export const UpdateRecordRequest = z.object({ + cells: z.array(z.object({ + fieldId: z.string(), + value: z.string(), + })).optional(), + tableId: z.string(), + agentUpdate: z.boolean().optional(), }) -export type UpdateRecordRequest = Static +export type UpdateRecordRequest = z.infer export enum FilterOperator { @@ -33,27 +34,27 @@ export enum FilterOperator { CO = 'co', } -export const Filter = Type.Object({ - fieldId: Type.String(), - value: Type.String(), - operator: Type.Optional(Type.Enum(FilterOperator)), +export const Filter = z.object({ + fieldId: z.string(), + value: z.string(), + operator: z.nativeEnum(FilterOperator).optional(), }) -export type Filter = Static +export type Filter = z.infer -export const ListRecordsRequest = Type.Object({ - tableId: Type.String(), - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), - filters: Type.Optional(Type.Array(Filter)), +export const ListRecordsRequest = z.object({ + tableId: z.string(), + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + filters: OptionalArrayFromQuery(Filter), }) -export type ListRecordsRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } +export type ListRecordsRequest = Omit, 'cursor'> & { cursor: Cursor | undefined } -export const DeleteRecordsRequest = Type.Object({ - tableId: Type.String(), - ids: Type.Array(Type.String()), +export const DeleteRecordsRequest = z.object({ + tableId: z.string(), + ids: z.array(z.string()), }) -export type DeleteRecordsRequest = Static +export type DeleteRecordsRequest = z.infer diff --git a/packages/shared/src/lib/automation/tables/dto/tables.dto.ts b/packages/shared/src/lib/automation/tables/dto/tables.dto.ts index ccf92c4c4e2..a9d03aadf20 100644 --- a/packages/shared/src/lib/automation/tables/dto/tables.dto.ts +++ b/packages/shared/src/lib/automation/tables/dto/tables.dto.ts @@ -1,62 +1,61 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Nullable } from '../../../core/common' +import { OptionalArrayFromQuery } from '../../../core/common/base-model' import { FieldState } from '../../project-release/project-state' import { TableAutomationStatus, TableAutomationTrigger } from '../table' import { TableWebhookEventType } from '../table-webhook' -export const CreateTableRequest = Type.Object({ - projectId: Type.String(), - name: Type.String(), - fields: Type.Optional(Type.Array(FieldState)), - externalId: Type.Optional(Type.String()), - folderId: Type.Optional(Type.String({})), - folderName: Type.Optional(Type.String({})), +export const CreateTableRequest = z.object({ + projectId: z.string(), + name: z.string(), + fields: z.array(FieldState).optional(), + externalId: z.string().optional(), + folderId: z.string().optional(), + folderName: z.string().optional(), }) -export type CreateTableRequest = Static +export type CreateTableRequest = z.infer -export const ExportTableResponse = Type.Object({ - fields: Type.Array(Type.Object({ id: Type.String(), name: Type.String() })), - rows: Type.Array(Type.Record(Type.String(), Type.String())), - name: Type.String(), - +export const ExportTableResponse = z.object({ + fields: z.array(z.object({ id: z.string(), name: z.string() })), + rows: z.array(z.record(z.string(), z.string())), + name: z.string(), }) -export type ExportTableResponse = Static +export type ExportTableResponse = z.infer -export const CreateTableWebhookRequest = Type.Object({ - events: Type.Array(Type.Enum(TableWebhookEventType)), - webhookUrl: Type.String(), - flowId: Type.String(), +export const CreateTableWebhookRequest = z.object({ + events: z.array(z.nativeEnum(TableWebhookEventType)), + webhookUrl: z.string(), + flowId: z.string(), }) -export type CreateTableWebhookRequest = Static +export type CreateTableWebhookRequest = z.infer -export const UpdateTableRequest = Type.Object({ - name: Type.Optional(Type.String()), - trigger: Type.Optional(Type.Enum(TableAutomationTrigger)), - status: Type.Optional(Type.Enum(TableAutomationStatus)), - folderId: Nullable(Type.String()), +export const UpdateTableRequest = z.object({ + name: z.string().optional(), + trigger: z.nativeEnum(TableAutomationTrigger).optional(), + status: z.nativeEnum(TableAutomationStatus).optional(), + folderId: Nullable(z.string()), }) -export type UpdateTableRequest = Static +export type UpdateTableRequest = z.infer -export const ListTablesRequest = Type.Object({ - projectId: Type.String(), - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), - name: Type.Optional(Type.String({})), - externalIds: Type.Optional(Type.Array(Type.String())), - folderId: Type.Optional(Type.String()), +export const ListTablesRequest = z.object({ + projectId: z.string(), + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + name: z.string().optional(), + externalIds: OptionalArrayFromQuery(z.string()), + folderId: z.string().optional(), }) -export type ListTablesRequest = Static +export type ListTablesRequest = z.infer -export const CountTablesRequest = Type.Object({ - projectId: Type.String(), - folderId: Type.Optional(Type.String()), +export const CountTablesRequest = z.object({ + projectId: z.string(), + folderId: z.string().optional(), }) -export type CountTablesRequest = Static - +export type CountTablesRequest = z.infer diff --git a/packages/shared/src/lib/automation/tables/field.ts b/packages/shared/src/lib/automation/tables/field.ts index 3e3dcdb39e5..366db809cca 100644 --- a/packages/shared/src/lib/automation/tables/field.ts +++ b/packages/shared/src/lib/automation/tables/field.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common' export enum FieldType { @@ -8,30 +8,30 @@ export enum FieldType { STATIC_DROPDOWN = 'STATIC_DROPDOWN', } -export const Field = Type.Union([Type.Object({ +export const Field = z.union([z.object({ ...BaseModelSchema, - name: Type.String(), - externalId: Type.String(), - type: Type.Literal(FieldType.STATIC_DROPDOWN), - tableId: Type.String(), - projectId: Type.String(), - data: Type.Object({ - options: Type.Array(Type.Object({ - value: Type.String(), + name: z.string(), + externalId: z.string(), + type: z.literal(FieldType.STATIC_DROPDOWN), + tableId: z.string(), + projectId: z.string(), + data: z.object({ + options: z.array(z.object({ + value: z.string(), })), }), -}), Type.Object({ +}), z.object({ ...BaseModelSchema, - name: Type.String(), - externalId: Type.String(), - type: Type.Union([Type.Literal(FieldType.TEXT), Type.Literal(FieldType.NUMBER), Type.Literal(FieldType.DATE)]), - tableId: Type.String(), - projectId: Type.String(), + name: z.string(), + externalId: z.string(), + type: z.union([z.literal(FieldType.TEXT), z.literal(FieldType.NUMBER), z.literal(FieldType.DATE)]), + tableId: z.string(), + projectId: z.string(), })]) -export type Field = Static +export type Field = z.infer export const StaticDropdownEmptyOption = { label: '', value: '', -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/automation/tables/record.ts b/packages/shared/src/lib/automation/tables/record.ts index 5d4d80a5481..03d5c508391 100644 --- a/packages/shared/src/lib/automation/tables/record.ts +++ b/packages/shared/src/lib/automation/tables/record.ts @@ -1,25 +1,19 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common' import { Cell } from './cell' -export const Record = Type.Object({ +export const Record = z.object({ ...BaseModelSchema, - tableId: Type.String(), - projectId: Type.String(), + tableId: z.string(), + projectId: z.string(), }) -export type Record = Static +export type Record = z.infer -export const PopulatedRecord = Type.Composite([ - Record, - Type.Object({ - cells: Type.Record(Type.String(), Type.Composite([ - Type.Pick(Cell, ['updated', 'created', 'value']), - Type.Object({ - fieldName: Type.String(), - }), - ])), - }), -]) +export const PopulatedRecord = Record.extend({ + cells: z.record(z.string(), Cell.pick({ updated: true, created: true, value: true }).extend({ + fieldName: z.string(), + })), +}) -export type PopulatedRecord = Static +export type PopulatedRecord = z.infer diff --git a/packages/shared/src/lib/automation/tables/table-webhook.ts b/packages/shared/src/lib/automation/tables/table-webhook.ts index 2e126e718ae..498e945bb5b 100644 --- a/packages/shared/src/lib/automation/tables/table-webhook.ts +++ b/packages/shared/src/lib/automation/tables/table-webhook.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common' export enum TableWebhookEventType { @@ -7,12 +7,12 @@ export enum TableWebhookEventType { RECORD_DELETED = 'RECORD_DELETED', } -export const TableWebhook = Type.Object({ +export const TableWebhook = z.object({ ...BaseModelSchema, - projectId: Type.String(), - tableId: Type.String(), - events: Type.Array(Type.Enum(TableWebhookEventType)), - flowId: Type.String(), + projectId: z.string(), + tableId: z.string(), + events: z.array(z.nativeEnum(TableWebhookEventType)), + flowId: z.string(), }) -export type TableWebhook = Static +export type TableWebhook = z.infer diff --git a/packages/shared/src/lib/automation/tables/table.ts b/packages/shared/src/lib/automation/tables/table.ts index aa23b73b919..a3961ae19fd 100644 --- a/packages/shared/src/lib/automation/tables/table.ts +++ b/packages/shared/src/lib/automation/tables/table.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable, NullableEnum } from '../../core/common' import { Field } from './field' @@ -12,24 +12,21 @@ export enum TableAutomationStatus { DISABLED = 'DISABLED', } -export const Table = Type.Object({ +export const Table = z.object({ ...BaseModelSchema, - name: Type.String(), - folderId: Nullable(Type.String()), - projectId: Type.String(), - externalId: Type.String(), - status: NullableEnum(Type.Enum(TableAutomationStatus)), - trigger: NullableEnum(Type.Enum(TableAutomationTrigger)), + name: z.string(), + folderId: Nullable(z.string()), + projectId: z.string(), + externalId: z.string(), + status: NullableEnum(TableAutomationStatus), + trigger: NullableEnum(TableAutomationTrigger), }) -export type Table = Static +export type Table = z.infer -export const PopulatedTable = Type.Composite([ - Table, - Type.Object({ - fields: Type.Array(Field), - }), -]) +export const PopulatedTable = Table.extend({ + fields: z.array(Field), +}) -export type PopulatedTable = Static \ No newline at end of file +export type PopulatedTable = z.infer diff --git a/packages/shared/src/lib/automation/trigger/index.ts b/packages/shared/src/lib/automation/trigger/index.ts index 48524fe5a5d..79b60f1ae82 100644 --- a/packages/shared/src/lib/automation/trigger/index.ts +++ b/packages/shared/src/lib/automation/trigger/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable } from '../../core/common' export enum TriggerStrategy { @@ -19,31 +19,31 @@ export enum TriggerSourceScheduleType { CRON_EXPRESSION = 'CRON_EXPRESSION', } -export const WebhookHandshakeConfiguration = Type.Object({ - strategy: Type.Enum(WebhookHandshakeStrategy), - paramName: Type.Optional(Type.String()), +export const WebhookHandshakeConfiguration = z.object({ + strategy: z.nativeEnum(WebhookHandshakeStrategy), + paramName: z.string().optional(), }) -export type WebhookHandshakeConfiguration = Static - -export const ScheduleOptions = Type.Object({ - type: Type.Enum(TriggerSourceScheduleType), - cronExpression: Type.String(), - timezone: Type.String(), +export type WebhookHandshakeConfiguration = z.infer + +export const ScheduleOptions = z.object({ + type: z.nativeEnum(TriggerSourceScheduleType), + cronExpression: z.string(), + timezone: z.string(), }) -export type ScheduleOptions = Static +export type ScheduleOptions = z.infer -export const TriggerSource = Type.Object({ +export const TriggerSource = z.object({ ...BaseModelSchema, - type: Type.Enum(TriggerStrategy), - projectId: Type.String(), - flowId: Type.String(), - triggerName: Type.String(), + type: z.nativeEnum(TriggerStrategy), + projectId: z.string(), + flowId: z.string(), + triggerName: z.string(), schedule: Nullable(ScheduleOptions), - flowVersionId: Type.String(), - pieceName: Type.String(), - pieceVersion: Type.String(), - deleted: Nullable(Type.String()), - simulate: Type.Boolean(), + flowVersionId: z.string(), + pieceName: z.string(), + pieceVersion: z.string(), + deleted: Nullable(z.string()), + simulate: z.boolean(), }) -export type TriggerSource = Static +export type TriggerSource = z.infer diff --git a/packages/shared/src/lib/automation/webhook/dto.ts b/packages/shared/src/lib/automation/webhook/dto.ts index e4157b14e1a..1e8db7fd3da 100644 --- a/packages/shared/src/lib/automation/webhook/dto.ts +++ b/packages/shared/src/lib/automation/webhook/dto.ts @@ -1,8 +1,8 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApId } from '../../core/common/id-generator' -export const WebhookUrlParams = Type.Object({ +export const WebhookUrlParams = z.object({ flowId: ApId, }) -export type WebhookUrlParams = Static +export type WebhookUrlParams = z.infer diff --git a/packages/shared/src/lib/automation/websocket/index.ts b/packages/shared/src/lib/automation/websocket/index.ts index 7da555e29ea..58e18f86d9f 100644 --- a/packages/shared/src/lib/automation/websocket/index.ts +++ b/packages/shared/src/lib/automation/websocket/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { TriggerUpdateStatusErrorParams } from '../../core/common/activepieces-error' import { PopulatedFlow } from '../flows/flow' import { StepRunResponse } from '../flows/sample-data' @@ -20,12 +20,12 @@ export type FlowStatusUpdatedResponse = { error: TriggerUpdateStatusErrorParams | undefined } -export const BadgeAwarded = Type.Object({ - badge: Type.String(), - userId: Type.String(), +export const BadgeAwarded = z.object({ + badge: z.string(), + userId: z.string(), }) -export type BadgeAwarded = Static +export type BadgeAwarded = z.infer export type EmitTestStepProgressRequest = StepRunResponse & { projectId: string } diff --git a/packages/shared/src/lib/automation/workers/index.ts b/packages/shared/src/lib/automation/workers/index.ts index 68f3bd39d1a..3fa1d4bcdce 100644 --- a/packages/shared/src/lib/automation/workers/index.ts +++ b/packages/shared/src/lib/automation/workers/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common' import { JobData } from './job-data' @@ -8,45 +8,45 @@ export enum WorkerMachineStatus { } -export const MachineInformation = Type.Object({ - cpuUsagePercentage: Type.Number(), - diskInfo: Type.Object({ - total: Type.Number(), - free: Type.Number(), - used: Type.Number(), - percentage: Type.Number(), +export const MachineInformation = z.object({ + cpuUsagePercentage: z.number(), + diskInfo: z.object({ + total: z.number(), + free: z.number(), + used: z.number(), + percentage: z.number(), }), - workerId: Type.String(), - workerProps: Type.Record(Type.String(), Type.String()), - ramUsagePercentage: Type.Number(), - totalAvailableRamInBytes: Type.Number(), - totalCpuCores: Type.Number(), - ip: Type.String(), - totalSandboxes: Type.Number(), - freeSandboxes: Type.Number(), + workerId: z.string(), + workerProps: z.record(z.string(), z.string()), + ramUsagePercentage: z.number(), + totalAvailableRamInBytes: z.number(), + totalCpuCores: z.number(), + ip: z.string(), + totalSandboxes: z.number(), + freeSandboxes: z.number(), }) -export type MachineInformation = Static +export type MachineInformation = z.infer -export const WorkerMachine = Type.Object({ +export const WorkerMachine = z.object({ ...BaseModelSchema, information: MachineInformation, }) -export type WorkerMachine = Static +export type WorkerMachine = z.infer -export const WorkerMachineWithStatus = Type.Composite([WorkerMachine, Type.Object({ - status: Type.Enum(WorkerMachineStatus), -})]) +export const WorkerMachineWithStatus = WorkerMachine.extend({ + status: z.nativeEnum(WorkerMachineStatus), +}) -export type WorkerMachineWithStatus = Static +export type WorkerMachineWithStatus = z.infer -export const ConsumeJobRequest = Type.Object({ - jobId: Type.String(), +export const ConsumeJobRequest = z.object({ + jobId: z.string(), jobData: JobData, - timeoutInSeconds: Type.Number(), - attempsStarted: Type.Number(), - engineToken: Type.String(), + timeoutInSeconds: z.number(), + attempsStarted: z.number(), + engineToken: z.string(), }) export enum ConsumeJobResponseStatus { @@ -54,67 +54,67 @@ export enum ConsumeJobResponseStatus { INTERNAL_ERROR = 'INTERNAL_ERROR', } -export type ConsumeJobRequest = Static +export type ConsumeJobRequest = z.infer -export const ConsumeJobResponse = Type.Object({ - status: Type.Enum(ConsumeJobResponseStatus), - errorMessage: Type.Optional(Type.String()), - delayInSeconds: Type.Optional(Type.Number()), +export const ConsumeJobResponse = z.object({ + status: z.nativeEnum(ConsumeJobResponseStatus), + errorMessage: z.string().optional(), + delayInSeconds: z.number().optional(), }) -export type ConsumeJobResponse = Static +export type ConsumeJobResponse = z.infer export const WorkerMachineHealthcheckRequest = MachineInformation -export type WorkerMachineHealthcheckRequest = Static - -export const WorkerSettingsResponse = Type.Object({ - PUBLIC_URL: Type.String(), - TRIGGER_TIMEOUT_SECONDS: Type.Number(), - TRIGGER_HOOKS_TIMEOUT_SECONDS: Type.Number(), - PAUSED_FLOW_TIMEOUT_DAYS: Type.Number(), - EXECUTION_MODE: Type.String(), - FLOW_TIMEOUT_SECONDS: Type.Number(), - WORKER_CONCURRENCY: Type.Number(), - LOG_LEVEL: Type.String(), - LOG_PRETTY: Type.String(), - ENVIRONMENT: Type.String(), - APP_WEBHOOK_SECRETS: Type.String(), - MAX_FLOW_RUN_LOG_SIZE_MB: Type.Number(), - MAX_FILE_SIZE_MB: Type.Number(), - SANDBOX_MEMORY_LIMIT: Type.String(), - SANDBOX_PROPAGATED_ENV_VARS: Type.Array(Type.String()), - DEV_PIECES: Type.Array(Type.String()), - SENTRY_DSN: Type.Optional(Type.String()), - LOKI_PASSWORD: Type.Optional(Type.String()), - LOKI_URL: Type.Optional(Type.String()), - LOKI_USERNAME: Type.Optional(Type.String()), - OTEL_ENABLED: Type.Boolean(), - HYPERDX_TOKEN: Type.Optional(Type.String()), - FILE_STORAGE_LOCATION: Type.String(), - S3_USE_SIGNED_URLS: Type.String(), - QUEUE_MODE: Type.Optional(Type.String()), - REDIS_TYPE: Type.String(), - REDIS_SSL_CA_FILE: Type.Optional(Type.String()), - REDIS_DB: Type.Optional(Type.Number()), - REDIS_HOST: Type.Optional(Type.String()), - REDIS_PASSWORD: Type.Optional(Type.String()), - REDIS_PORT: Type.Optional(Type.String()), - REDIS_URL: Type.Optional(Type.String()), - REDIS_USER: Type.Optional(Type.String()), - REDIS_USE_SSL: Type.Optional(Type.Boolean()), - REDIS_SENTINEL_ROLE: Type.Optional(Type.String()), - REDIS_SENTINEL_HOSTS: Type.Optional(Type.String()), - REDIS_SENTINEL_NAME: Type.Optional(Type.String()), - REDIS_FAILED_JOB_RETENTION_DAYS: Type.Number(), - REDIS_FAILED_JOB_RETENTION_MAX_COUNT: Type.Number(), - PROJECT_RATE_LIMITER_ENABLED: Type.Boolean(), - MAX_CONCURRENT_JOBS_PER_PROJECT: Type.Number(), - JWT_SECRET: Type.String(), - EVENT_DESTINATION_TIMEOUT_SECONDS: Type.Number(), - PLATFORM_ID_FOR_DEDICATED_WORKER: Type.Optional(Type.String()), - EDITION: Type.String(), +export type WorkerMachineHealthcheckRequest = z.infer + +export const WorkerSettingsResponse = z.object({ + PUBLIC_URL: z.string(), + TRIGGER_TIMEOUT_SECONDS: z.number(), + TRIGGER_HOOKS_TIMEOUT_SECONDS: z.number(), + PAUSED_FLOW_TIMEOUT_DAYS: z.number(), + EXECUTION_MODE: z.string(), + FLOW_TIMEOUT_SECONDS: z.number(), + WORKER_CONCURRENCY: z.number(), + LOG_LEVEL: z.string(), + LOG_PRETTY: z.string(), + ENVIRONMENT: z.string(), + APP_WEBHOOK_SECRETS: z.string(), + MAX_FLOW_RUN_LOG_SIZE_MB: z.number(), + MAX_FILE_SIZE_MB: z.number(), + SANDBOX_MEMORY_LIMIT: z.string(), + SANDBOX_PROPAGATED_ENV_VARS: z.array(z.string()), + DEV_PIECES: z.array(z.string()), + SENTRY_DSN: z.string().optional(), + LOKI_PASSWORD: z.string().optional(), + LOKI_URL: z.string().optional(), + LOKI_USERNAME: z.string().optional(), + OTEL_ENABLED: z.boolean(), + HYPERDX_TOKEN: z.string().optional(), + FILE_STORAGE_LOCATION: z.string(), + S3_USE_SIGNED_URLS: z.string(), + QUEUE_MODE: z.string().optional(), + REDIS_TYPE: z.string(), + REDIS_SSL_CA_FILE: z.string().optional(), + REDIS_DB: z.number().optional(), + REDIS_HOST: z.string().optional(), + REDIS_PASSWORD: z.string().optional(), + REDIS_PORT: z.string().optional(), + REDIS_URL: z.string().optional(), + REDIS_USER: z.string().optional(), + REDIS_USE_SSL: z.boolean().optional(), + REDIS_SENTINEL_ROLE: z.string().optional(), + REDIS_SENTINEL_HOSTS: z.string().optional(), + REDIS_SENTINEL_NAME: z.string().optional(), + REDIS_FAILED_JOB_RETENTION_DAYS: z.number(), + REDIS_FAILED_JOB_RETENTION_MAX_COUNT: z.number(), + PROJECT_RATE_LIMITER_ENABLED: z.boolean(), + MAX_CONCURRENT_JOBS_PER_PROJECT: z.number(), + JWT_SECRET: z.string(), + EVENT_DESTINATION_TIMEOUT_SECONDS: z.number(), + PLATFORM_ID_FOR_DEDICATED_WORKER: z.string().optional(), + EDITION: z.string(), }) -export type WorkerSettingsResponse = Static \ No newline at end of file +export type WorkerSettingsResponse = z.infer diff --git a/packages/shared/src/lib/automation/workers/job-data.ts b/packages/shared/src/lib/automation/workers/job-data.ts index d29aa118e97..94c90222668 100644 --- a/packages/shared/src/lib/automation/workers/job-data.ts +++ b/packages/shared/src/lib/automation/workers/job-data.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { isNil } from '../../core/common' import { ProgressUpdateType, TriggerHookType, TriggerPayload } from '../engine' import { ExecutionType } from '../flow-run/execution/execution-output' @@ -75,154 +75,154 @@ export const NON_SCHEDULED_JOB_TYPES: WorkerJobType[] = [ ] as const // Never change without increasing LATEST_JOB_DATA_SCHEMA_VERSION, and adding a migration -export const RenewWebhookJobData = Type.Object({ - schemaVersion: Type.Number(), - projectId: Type.String(), - platformId: Type.String(), - flowVersionId: Type.String(), - flowId: Type.String(), - jobType: Type.Literal(WorkerJobType.RENEW_WEBHOOK), +export const RenewWebhookJobData = z.object({ + schemaVersion: z.number(), + projectId: z.string(), + platformId: z.string(), + flowVersionId: z.string(), + flowId: z.string(), + jobType: z.literal(WorkerJobType.RENEW_WEBHOOK), }) -export type RenewWebhookJobData = Static +export type RenewWebhookJobData = z.infer // Never change without increasing LATEST_JOB_DATA_SCHEMA_VERSION, and adding a migration -export const PollingJobData = Type.Object({ - projectId: Type.String(), - platformId: Type.String(), - schemaVersion: Type.Number(), - flowVersionId: Type.String(), - flowId: Type.String(), - triggerType: Type.Enum(FlowTriggerType), - jobType: Type.Literal(WorkerJobType.EXECUTE_POLLING), +export const PollingJobData = z.object({ + projectId: z.string(), + platformId: z.string(), + schemaVersion: z.number(), + flowVersionId: z.string(), + flowId: z.string(), + triggerType: z.nativeEnum(FlowTriggerType), + jobType: z.literal(WorkerJobType.EXECUTE_POLLING), }) -export type PollingJobData = Static - -export const ExecuteFlowJobData = Type.Object({ - projectId: Type.String(), - platformId: Type.String(), - jobType: Type.Literal(WorkerJobType.EXECUTE_FLOW), - environment: Type.Enum(RunEnvironment), - schemaVersion: Type.Number(), - flowId: Type.String(), - flowVersionId: Type.String(), - runId: Type.String(), - synchronousHandlerId: Type.Optional(Type.Union([Type.String(), Type.Null()])), - httpRequestId: Type.Optional(Type.String()), - payload: Type.Any(), - executeTrigger: Type.Optional(Type.Boolean()), - executionType: Type.Enum(ExecutionType), - progressUpdateType: Type.Enum(ProgressUpdateType), - stepNameToTest: Type.Optional(Type.String()), - sampleData: Type.Optional(Type.Record(Type.String(), Type.Unknown())), - logsUploadUrl: Type.String(), - logsFileId: Type.String(), - traceContext: Type.Optional(Type.Record(Type.String(), Type.String())), +export type PollingJobData = z.infer + +export const ExecuteFlowJobData = z.object({ + projectId: z.string(), + platformId: z.string(), + jobType: z.literal(WorkerJobType.EXECUTE_FLOW), + environment: z.nativeEnum(RunEnvironment), + schemaVersion: z.number(), + flowId: z.string(), + flowVersionId: z.string(), + runId: z.string(), + synchronousHandlerId: z.union([z.string(), z.null()]).optional(), + httpRequestId: z.string().optional(), + payload: z.any(), + executeTrigger: z.boolean().optional(), + executionType: z.nativeEnum(ExecutionType), + progressUpdateType: z.nativeEnum(ProgressUpdateType), + stepNameToTest: z.string().optional(), + sampleData: z.record(z.string(), z.unknown()).optional(), + logsUploadUrl: z.string(), + logsFileId: z.string(), + traceContext: z.record(z.string(), z.string()).optional(), }) -export type ExecuteFlowJobData = Static - -export const WebhookJobData = Type.Object({ - projectId: Type.String(), - platformId: Type.String(), - schemaVersion: Type.Number(), - requestId: Type.String(), - payload: Type.Any(), - runEnvironment: Type.Enum(RunEnvironment), - flowId: Type.String(), - saveSampleData: Type.Boolean(), - flowVersionIdToRun: Type.String(), - execute: Type.Boolean(), - jobType: Type.Literal(WorkerJobType.EXECUTE_WEBHOOK), - parentRunId: Type.Optional(Type.String()), - failParentOnFailure: Type.Optional(Type.Boolean()), - traceContext: Type.Optional(Type.Record(Type.String(), Type.String())), +export type ExecuteFlowJobData = z.infer + +export const WebhookJobData = z.object({ + projectId: z.string(), + platformId: z.string(), + schemaVersion: z.number(), + requestId: z.string(), + payload: z.any(), + runEnvironment: z.nativeEnum(RunEnvironment), + flowId: z.string(), + saveSampleData: z.boolean(), + flowVersionIdToRun: z.string(), + execute: z.boolean(), + jobType: z.literal(WorkerJobType.EXECUTE_WEBHOOK), + parentRunId: z.string().optional(), + failParentOnFailure: z.boolean().optional(), + traceContext: z.record(z.string(), z.string()).optional(), }) -export type WebhookJobData = Static - -export const ExecuteValidateAuthJobData = Type.Object({ - requestId: Type.String(), - webserverId: Type.String(), - jobType: Type.Literal(WorkerJobType.EXECUTE_VALIDATION), - projectId: Type.Optional(Type.String()), - platformId: Type.String(), +export type WebhookJobData = z.infer + +export const ExecuteValidateAuthJobData = z.object({ + requestId: z.string(), + webserverId: z.string(), + jobType: z.literal(WorkerJobType.EXECUTE_VALIDATION), + projectId: z.string().optional(), + platformId: z.string(), piece: PiecePackage, - schemaVersion: Type.Number(), - connectionValue: Type.Unknown(), + schemaVersion: z.number(), + connectionValue: z.unknown(), }) -export type ExecuteValidateAuthJobData = Static - - -export const ExecuteTriggerHookJobData = Type.Object({ - requestId: Type.String(), - jobType: Type.Literal(WorkerJobType.EXECUTE_TRIGGER_HOOK), - platformId: Type.String(), - projectId: Type.String(), - schemaVersion: Type.Number(), - flowId: Type.String(), - flowVersionId: Type.String(), - test: Type.Boolean(), - webserverId: Type.String(), - hookType: Type.Enum(TriggerHookType), - triggerPayload: Type.Optional(TriggerPayload), +export type ExecuteValidateAuthJobData = z.infer + + +export const ExecuteTriggerHookJobData = z.object({ + requestId: z.string(), + jobType: z.literal(WorkerJobType.EXECUTE_TRIGGER_HOOK), + platformId: z.string(), + projectId: z.string(), + schemaVersion: z.number(), + flowId: z.string(), + flowVersionId: z.string(), + test: z.boolean(), + webserverId: z.string(), + hookType: z.nativeEnum(TriggerHookType), + triggerPayload: TriggerPayload.optional(), }) -export type ExecuteTriggerHookJobData = Static - -export const ExecutePropertyJobData = Type.Object({ - requestId: Type.String(), - jobType: Type.Literal(WorkerJobType.EXECUTE_PROPERTY), - projectId: Type.String(), - platformId: Type.String(), - schemaVersion: Type.Number(), - flowVersion: Type.Optional(FlowVersion), - propertyName: Type.String(), +export type ExecuteTriggerHookJobData = z.infer + +export const ExecutePropertyJobData = z.object({ + requestId: z.string(), + jobType: z.literal(WorkerJobType.EXECUTE_PROPERTY), + projectId: z.string(), + platformId: z.string(), + schemaVersion: z.number(), + flowVersion: FlowVersion.optional(), + propertyName: z.string(), piece: PiecePackage, - actionOrTriggerName: Type.String(), - input: Type.Record(Type.String(), Type.Unknown()), - webserverId: Type.String(), - sampleData: Type.Record(Type.String(), Type.Unknown()), - searchValue: Type.Optional(Type.String()), + actionOrTriggerName: z.string(), + input: z.record(z.string(), z.unknown()), + webserverId: z.string(), + sampleData: z.record(z.string(), z.unknown()), + searchValue: z.string().optional(), }) -export type ExecutePropertyJobData = Static - -export const ExecuteExtractPieceMetadataJobData = Type.Object({ - requestId: Type.String(), - webserverId: Type.String(), - schemaVersion: Type.Number(), - jobType: Type.Literal(WorkerJobType.EXECUTE_EXTRACT_PIECE_INFORMATION), - projectId: Type.Undefined(), - platformId: Type.String(), +export type ExecutePropertyJobData = z.infer + +export const ExecuteExtractPieceMetadataJobData = z.object({ + requestId: z.string(), + webserverId: z.string(), + schemaVersion: z.number(), + jobType: z.literal(WorkerJobType.EXECUTE_EXTRACT_PIECE_INFORMATION), + projectId: z.undefined(), + platformId: z.string(), piece: PiecePackage, }) -export type ExecuteExtractPieceMetadataJobData = Static +export type ExecuteExtractPieceMetadataJobData = z.infer -export const UserInteractionJobData = Type.Union([ +export const UserInteractionJobData = z.union([ ExecuteValidateAuthJobData, ExecuteTriggerHookJobData, ExecutePropertyJobData, ExecuteExtractPieceMetadataJobData, ]) -export type UserInteractionJobData = Static +export type UserInteractionJobData = z.infer -export const UserInteractionJobDataWithoutWatchingInformation = Type.Union([ - Type.Omit(ExecuteValidateAuthJobData, ['webserverId', 'requestId', 'schemaVersion']), - Type.Omit(ExecuteTriggerHookJobData, ['webserverId', 'requestId', 'schemaVersion']), - Type.Omit(ExecutePropertyJobData, ['webserverId', 'requestId', 'schemaVersion']), - Type.Omit(ExecuteExtractPieceMetadataJobData, ['webserverId', 'requestId', 'schemaVersion']), +export const UserInteractionJobDataWithoutWatchingInformation = z.union([ + ExecuteValidateAuthJobData.omit({ webserverId: true, requestId: true, schemaVersion: true }), + ExecuteTriggerHookJobData.omit({ webserverId: true, requestId: true, schemaVersion: true }), + ExecutePropertyJobData.omit({ webserverId: true, requestId: true, schemaVersion: true }), + ExecuteExtractPieceMetadataJobData.omit({ webserverId: true, requestId: true, schemaVersion: true }), ]) -export type UserInteractionJobDataWithoutWatchingInformation = Static - -export const EventDestinationJobData = Type.Object({ - schemaVersion: Type.Number(), - platformId: Type.String(), - projectId: Type.Optional(Type.String()), - webhookId: Type.String(), - webhookUrl: Type.String(), - payload: Type.Unknown(), - jobType: Type.Literal(WorkerJobType.EVENT_DESTINATION), +export type UserInteractionJobDataWithoutWatchingInformation = z.infer + +export const EventDestinationJobData = z.object({ + schemaVersion: z.number(), + platformId: z.string(), + projectId: z.string().optional(), + webhookId: z.string(), + webhookUrl: z.string(), + payload: z.unknown(), + jobType: z.literal(WorkerJobType.EVENT_DESTINATION), }) -export type EventDestinationJobData = Static +export type EventDestinationJobData = z.infer -export const JobData = Type.Union([ +export const JobData = z.union([ PollingJobData, RenewWebhookJobData, ExecuteFlowJobData, @@ -230,4 +230,4 @@ export const JobData = Type.Union([ UserInteractionJobData, EventDestinationJobData, ]) -export type JobData = Static +export type JobData = z.infer diff --git a/packages/shared/src/lib/automation/workers/queue-metrics.ts b/packages/shared/src/lib/automation/workers/queue-metrics.ts index 3b8c687e28c..08a41b6a288 100644 --- a/packages/shared/src/lib/automation/workers/queue-metrics.ts +++ b/packages/shared/src/lib/automation/workers/queue-metrics.ts @@ -1,20 +1,20 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const WorkerJobStats = Type.Object({ - active: Type.Number(), - delayed: Type.Number(), - prioritized: Type.Number(), - waiting: Type.Number(), - 'waiting-children': Type.Number(), - completed: Type.Number(), - failed: Type.Number(), - paused: Type.Number(), +export const WorkerJobStats = z.object({ + active: z.number(), + delayed: z.number(), + prioritized: z.number(), + waiting: z.number(), + 'waiting-children': z.number(), + completed: z.number(), + failed: z.number(), + paused: z.number(), }) -export type WorkerJobStats = Static +export type WorkerJobStats = z.infer -export const QueueMetricsResponse = Type.Object({ +export const QueueMetricsResponse = z.object({ stats: WorkerJobStats, }) -export type QueueMetricsResponse = Static +export type QueueMetricsResponse = z.infer diff --git a/packages/shared/src/lib/core/authentication/dto/authentication-response.ts b/packages/shared/src/lib/core/authentication/dto/authentication-response.ts index ac6aad9622c..780da69f3fa 100755 --- a/packages/shared/src/lib/core/authentication/dto/authentication-response.ts +++ b/packages/shared/src/lib/core/authentication/dto/authentication-response.ts @@ -1,17 +1,17 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { User } from '../../user/user' import { UserIdentity } from '../user-identity' -export const UserWithoutPassword = Type.Pick(User, ['id', 'platformRole', 'status', 'externalId', 'platformId']) -export type UserWithoutPassword = Static +export const UserWithoutPassword = User.pick({ id: true, platformRole: true, status: true, externalId: true, platformId: true }) +export type UserWithoutPassword = z.infer -export const AuthenticationResponse = Type.Composite([ - UserWithoutPassword, - Type.Pick(UserIdentity, ['verified', 'firstName', 'lastName', 'email', 'trackEvents', 'newsLetter']), - Type.Object({ - token: Type.String(), - projectId: Type.String(), +export const AuthenticationResponse = UserWithoutPassword.merge( + UserIdentity.pick({ verified: true, firstName: true, lastName: true, email: true, trackEvents: true, newsLetter: true }), +).merge( + z.object({ + token: z.string(), + projectId: z.string(), }), -]) -export type AuthenticationResponse = Static +) +export type AuthenticationResponse = z.infer diff --git a/packages/shared/src/lib/core/authentication/dto/sign-in-request.ts b/packages/shared/src/lib/core/authentication/dto/sign-in-request.ts index aa6490c27ff..544d150ca76 100755 --- a/packages/shared/src/lib/core/authentication/dto/sign-in-request.ts +++ b/packages/shared/src/lib/core/authentication/dto/sign-in-request.ts @@ -1,9 +1,9 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { EmailType, PasswordType } from '../../user/user' -export const SignInRequest = Type.Object({ +export const SignInRequest = z.object({ email: EmailType, password: PasswordType, }) -export type SignInRequest = Static +export type SignInRequest = z.infer diff --git a/packages/shared/src/lib/core/authentication/dto/sign-up-request.ts b/packages/shared/src/lib/core/authentication/dto/sign-up-request.ts index 134c8593cc6..7237e8c0f08 100755 --- a/packages/shared/src/lib/core/authentication/dto/sign-up-request.ts +++ b/packages/shared/src/lib/core/authentication/dto/sign-up-request.ts @@ -1,25 +1,21 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { SAFE_STRING_PATTERN } from '../../common' import { ApId } from '../../common/id-generator' import { EmailType, PasswordType } from '../../user/user' -export const SignUpRequest = Type.Object({ +export const SignUpRequest = z.object({ email: EmailType, password: PasswordType, - firstName: Type.String({ - pattern: SAFE_STRING_PATTERN, - }), - lastName: Type.String({ - pattern: SAFE_STRING_PATTERN, - }), - trackEvents: Type.Boolean(), - newsLetter: Type.Boolean(), + firstName: z.string().regex(new RegExp(SAFE_STRING_PATTERN)), + lastName: z.string().regex(new RegExp(SAFE_STRING_PATTERN)), + trackEvents: z.boolean(), + newsLetter: z.boolean(), }) -export type SignUpRequest = Static +export type SignUpRequest = z.infer -export const SwitchPlatformRequest = Type.Object({ +export const SwitchPlatformRequest = z.object({ platformId: ApId, }) -export type SwitchPlatformRequest = Static +export type SwitchPlatformRequest = z.infer diff --git a/packages/shared/src/lib/core/authentication/user-identity.ts b/packages/shared/src/lib/core/authentication/user-identity.ts index 83ee603a5aa..e093d0c7149 100644 --- a/packages/shared/src/lib/core/authentication/user-identity.ts +++ b/packages/shared/src/lib/core/authentication/user-identity.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable } from '../common' @@ -8,18 +8,18 @@ export enum UserIdentityProvider { SAML = 'SAML', JWT = 'JWT', } -export const UserIdentity = Type.Object({ +export const UserIdentity = z.object({ ...BaseModelSchema, - firstName: Type.String(), - lastName: Type.String(), - email: Type.String(), - password: Type.String(), - trackEvents: Type.Boolean(), - newsLetter: Type.Boolean(), - verified: Type.Boolean(), - tokenVersion: Type.Optional(Type.String()), - provider: Type.Enum(UserIdentityProvider), - imageUrl: Nullable(Type.String()), + firstName: z.string(), + lastName: z.string(), + email: z.string(), + password: z.string(), + trackEvents: z.boolean(), + newsLetter: z.boolean(), + verified: z.boolean(), + tokenVersion: z.string().optional(), + provider: z.nativeEnum(UserIdentityProvider), + imageUrl: Nullable(z.string()), }) -export type UserIdentity = Static +export type UserIdentity = z.infer diff --git a/packages/shared/src/lib/core/common/base-model.ts b/packages/shared/src/lib/core/common/base-model.ts index 1e1ba322bf3..c8a27d4603e 100755 --- a/packages/shared/src/lib/core/common/base-model.ts +++ b/packages/shared/src/lib/core/common/base-model.ts @@ -1,4 +1,4 @@ -import { CreateType, Kind, SchemaOptions, Static, TEnum, TLiteral, TObject, TSchema, TUnion, Type } from '@sinclair/typebox' +import { z } from 'zod' export type BaseModel = { id: T @@ -6,60 +6,31 @@ export type BaseModel = { updated: string } +export const DateOrString = z.preprocess( + (val) => (val instanceof Date ? val.toISOString() : val), + z.string(), +) + export const BaseModelSchema = { - id: Type.String(), - created: Type.String(), - updated: Type.String(), + id: z.string(), + created: DateOrString, + updated: DateOrString, } // Used to generate valid nullable in OpenAPI Schema -export const Nullable = (schema: T) => Type.Optional(Type.Unsafe | null>({ - ...schema, nullable: true, -})) - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export function NullableEnum>(schema: T) { - const values = schema.anyOf.map(f => f.const) - return Type.Optional(Type.Unsafe | null>({ type: 'string', enum: values, nullable: true })) -} - +export const Nullable = (schema: T) => schema.nullable().optional() -// ------------------------------------------------------------------ -// TDiscriminatedUnionObject -// -// Constructs a base TObject type requiring 1 discriminator property -// ------------------------------------------------------------------ -// prettier-ignore -type TDiscriminatedUnionProperties = { - [_ in Discriminator]: TLiteral +export function NullableEnum>(enumObj: T) { + return z.nativeEnum(enumObj).nullable().optional() } -// prettier-ignore -type TDiscriminatedUnionObject = TObject> -// ------------------------------------------------------------------ -// DiscriminatedUnion -// ------------------------------------------------------------------ -export type TDiscriminatedUnion = { - [Kind]: 'DiscriminatedUnion' - static: Static> - anyOf: Types - discriminator: { - propertyName: string - mapping?: Record - } -} & TSchema +export const OptionalBooleanFromQuery = z.preprocess( + (val) => val === 'true' || val === true ? true : val === 'false' || val === false ? false : undefined, + z.boolean().optional(), +) -/** Creates a DiscriminatedUnion that works with OpenAPI. */ -export function DiscriminatedUnion[]>( - discriminator: Discriminator, - types: [...Types], - options?: SchemaOptions, -): TDiscriminatedUnion { - return CreateType({ - [Kind]: 'DiscriminatedUnion', - anyOf: types, - discriminator: { - propertyName: discriminator, - }, - }, options) as never -} \ No newline at end of file +export const OptionalArrayFromQuery = (schema: T) => + z.preprocess( + (val) => (Array.isArray(val) ? val : val !== undefined ? [val] : undefined), + z.array(schema).optional(), + ) diff --git a/packages/shared/src/lib/core/common/color.ts b/packages/shared/src/lib/core/common/color.ts index 3fa1331488f..96a1f61d1ff 100644 --- a/packages/shared/src/lib/core/common/color.ts +++ b/packages/shared/src/lib/core/common/color.ts @@ -1,6 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const ColorHex = Type.String({ - pattern: '^#[0-9A-Fa-f]{6}$', -}) -export type ColorHex = Static +export const ColorHex = z.string().regex(/^#[0-9A-Fa-f]{6}$/) +export type ColorHex = z.infer diff --git a/packages/shared/src/lib/core/common/id-generator.ts b/packages/shared/src/lib/core/common/id-generator.ts index be3e874df21..43e7d5982a2 100755 --- a/packages/shared/src/lib/core/common/id-generator.ts +++ b/packages/shared/src/lib/core/common/id-generator.ts @@ -1,15 +1,13 @@ -import { Static, Type } from '@sinclair/typebox' import { customAlphabet } from 'nanoid' +import { z } from 'zod' const ALPHABET = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' const ID_LENGTH = 21 -export const ApId = Type.String({ - pattern: `^[0-9a-zA-Z]{${ID_LENGTH}}$`, -}) +export const ApId = z.string().regex(new RegExp(`^[0-9a-zA-Z]{${ID_LENGTH}}$`)) -export type ApId = Static +export type ApId = z.infer export const apId = customAlphabet(ALPHABET, ID_LENGTH) -export const secureApId = (length: number) => customAlphabet(ALPHABET, length)() \ No newline at end of file +export const secureApId = (length: number) => customAlphabet(ALPHABET, length)() diff --git a/packages/shared/src/lib/core/common/metadata.ts b/packages/shared/src/lib/core/common/metadata.ts index b8e41195edb..d4cbbc05aa1 100644 --- a/packages/shared/src/lib/core/common/metadata.ts +++ b/packages/shared/src/lib/core/common/metadata.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' /** * Flexible key-value record type for storing arbitrary data @@ -18,5 +18,5 @@ import { Static, Type } from '@sinclair/typebox' * customField: "customValue" * } */ -export const Metadata = Type.Record(Type.String(), Type.Unknown()) -export type Metadata = Static +export const Metadata = z.record(z.string(), z.unknown()) +export type Metadata = z.infer diff --git a/packages/shared/src/lib/core/common/multipart-file.ts b/packages/shared/src/lib/core/common/multipart-file.ts index bba59bedc5e..dd792518567 100644 --- a/packages/shared/src/lib/core/common/multipart-file.ts +++ b/packages/shared/src/lib/core/common/multipart-file.ts @@ -1,17 +1,17 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const ApMultipartFile = Type.Object({ - filename: Type.String(), - data: Type.Unknown(), - type: Type.Literal('file'), - mimetype: Type.Optional(Type.String()), +export const ApMultipartFile = z.object({ + filename: z.string(), + data: z.unknown(), + type: z.literal('file'), + mimetype: z.string().optional(), }) -export type ApMultipartFile = Static & { +export type ApMultipartFile = z.infer & { data: Buffer } export const isMultipartFile = (value: unknown): value is ApMultipartFile => { return typeof value === 'object' && value !== null && 'type' in value && value.type === 'file' && 'filename' in value && 'data' in value && value.data instanceof Buffer -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/core/common/seek-page.ts b/packages/shared/src/lib/core/common/seek-page.ts index d574c39f2b9..560ce31ce13 100755 --- a/packages/shared/src/lib/core/common/seek-page.ts +++ b/packages/shared/src/lib/core/common/seek-page.ts @@ -1,4 +1,4 @@ -import { TSchema, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Nullable } from './base-model' export type Cursor = string | null @@ -9,8 +9,8 @@ export type SeekPage = { data: T[] } -export const SeekPage = (t: TSchema): TSchema => Type.Object({ - data: Type.Array(t), - next: Nullable(Type.String({ description: 'Cursor to the next page' })), - previous: Nullable(Type.String({ description: 'Cursor to the previous page' })), +export const SeekPage = (t: z.ZodType): z.ZodType => z.object({ + data: z.array(t), + next: Nullable(z.string()), + previous: Nullable(z.string()), }) diff --git a/packages/shared/src/lib/core/federated-authn/index.ts b/packages/shared/src/lib/core/federated-authn/index.ts index ccfd9be0f66..7a6ec14b31a 100644 --- a/packages/shared/src/lib/core/federated-authn/index.ts +++ b/packages/shared/src/lib/core/federated-authn/index.ts @@ -1,51 +1,51 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Nullable } from '../common' import { ThirdPartyAuthnProviderEnum } from './authn-provider-name' export * from './authn-provider-name' -export const federatedAuthnLoginResponse = Type.Object({ - loginUrl: Type.String(), +export const federatedAuthnLoginResponse = z.object({ + loginUrl: z.string(), }) -export type FederatedAuthnLoginResponse = Static +export type FederatedAuthnLoginResponse = z.infer -export const ClaimTokenRequest = Type.Object({ - providerName: Type.Enum(ThirdPartyAuthnProviderEnum), - code: Type.String(), +export const ClaimTokenRequest = z.object({ + providerName: z.nativeEnum(ThirdPartyAuthnProviderEnum), + code: z.string(), }) -export type ClaimTokenRequest = Static +export type ClaimTokenRequest = z.infer -export const GoogleAuthnProviderConfig = Type.Object({ - clientId: Type.String(), - clientSecret: Type.String(), +export const GoogleAuthnProviderConfig = z.object({ + clientId: z.string(), + clientSecret: z.string(), }) -export type GoogleAuthnProviderConfig = Static +export type GoogleAuthnProviderConfig = z.infer -export const GithubAuthnProviderConfig = Type.Object({ - clientId: Type.String(), - clientSecret: Type.String(), +export const GithubAuthnProviderConfig = z.object({ + clientId: z.string(), + clientSecret: z.string(), }) -export type GithubAuthnProviderConfig = Static +export type GithubAuthnProviderConfig = z.infer -export const SAMLAuthnProviderConfig = Type.Object({ - idpMetadata: Type.String(), - idpCertificate: Type.String(), +export const SAMLAuthnProviderConfig = z.object({ + idpMetadata: z.string(), + idpCertificate: z.string(), }) -export type SAMLAuthnProviderConfig = Static +export type SAMLAuthnProviderConfig = z.infer -export const FederatedAuthnProviderConfig = Type.Object({ +export const FederatedAuthnProviderConfig = z.object({ google: Nullable(GoogleAuthnProviderConfig), github: Nullable(GithubAuthnProviderConfig), saml: Nullable(SAMLAuthnProviderConfig), }) -export type FederatedAuthnProviderConfig = Static +export type FederatedAuthnProviderConfig = z.infer -export const FederatedAuthnProviderConfigWithoutSensitiveData = Type.Object({ - google: Nullable(Type.Pick(GoogleAuthnProviderConfig, ['clientId'])), - github: Nullable(Type.Pick(GithubAuthnProviderConfig, ['clientId'])), - saml: Nullable(Type.Object({})), +export const FederatedAuthnProviderConfigWithoutSensitiveData = z.object({ + google: Nullable(GoogleAuthnProviderConfig.pick({ clientId: true })), + github: Nullable(GithubAuthnProviderConfig.pick({ clientId: true })), + saml: Nullable(z.object({})), }) -export type FederatedAuthnProviderConfigWithoutSensitiveData = Static \ No newline at end of file +export type FederatedAuthnProviderConfigWithoutSensitiveData = z.infer diff --git a/packages/shared/src/lib/core/file/index.ts b/packages/shared/src/lib/core/file/index.ts index 70f5721f556..8c520225985 100644 --- a/packages/shared/src/lib/core/file/index.ts +++ b/packages/shared/src/lib/core/file/index.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema } from '../common/base-model' +import { z } from 'zod' +import { BaseModelSchema, Nullable } from '../common/base-model' import { ApId } from '../common/id-generator' export type FileId = ApId @@ -10,8 +10,8 @@ export enum FileType { PACKAGE_ARCHIVE = 'PACKAGE_ARCHIVE', FLOW_STEP_FILE = 'FLOW_STEP_FILE', SAMPLE_DATA = 'SAMPLE_DATA', - /* - @deprecated activepieces no longer stores trigger payload + /* + @deprecated activepieces no longer stores trigger payload */ TRIGGER_PAYLOAD = 'TRIGGER_PAYLOAD', SAMPLE_DATA_INPUT = 'SAMPLE_DATA_INPUT', @@ -38,20 +38,20 @@ export enum FileLocation { DB = 'DB', } -export const File = Type.Object({ +export const File = z.object({ ...BaseModelSchema, - projectId: Type.Optional(Type.String()), - platformId: Type.Optional(Type.String()), - type: Type.Enum(FileType), - compression: Type.Enum(FileCompression), - data: Type.Optional(Type.Unknown()), - location: Type.Enum(FileLocation), - size: Type.Optional(Type.Number()), - fileName: Type.Optional(Type.String()), - s3Key: Type.Optional(Type.String()), - metadata: Type.Optional(Type.Record(Type.String(), Type.String())), + projectId: Nullable(z.string()), + platformId: Nullable(z.string()), + type: z.nativeEnum(FileType), + compression: z.nativeEnum(FileCompression), + data: z.unknown().optional(), + location: z.nativeEnum(FileLocation), + size: Nullable(z.number()), + fileName: Nullable(z.string()), + s3Key: Nullable(z.string()), + metadata: Nullable(z.record(z.string(), z.string())), }) -export type File = Static & { +export type File = z.infer & { data: Buffer -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/core/flag/flag.requests.ts b/packages/shared/src/lib/core/flag/flag.requests.ts index ca821713a73..07ff68dc2d0 100644 --- a/packages/shared/src/lib/core/flag/flag.requests.ts +++ b/packages/shared/src/lib/core/flag/flag.requests.ts @@ -1,6 +1,6 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const UpdateTemplatesCategoriesFlagRequestBody = Type.Object({ - value: Type.Array(Type.String()), +export const UpdateTemplatesCategoriesFlagRequestBody = z.object({ + value: z.array(z.string()), }) -export type UpdateTemplatesCategoriesFlagRequestBody = Static \ No newline at end of file +export type UpdateTemplatesCategoriesFlagRequestBody = z.infer diff --git a/packages/shared/src/lib/core/health/index.ts b/packages/shared/src/lib/core/health/index.ts index 9c0b248f622..c8b57ba7cbf 100644 --- a/packages/shared/src/lib/core/health/index.ts +++ b/packages/shared/src/lib/core/health/index.ts @@ -1,10 +1,10 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const GetSystemHealthChecksResponse = Type.Object({ - cpu: Type.Boolean(), - disk: Type.Boolean(), - ram: Type.Boolean(), - database: Type.Boolean(), +export const GetSystemHealthChecksResponse = z.object({ + cpu: z.boolean(), + disk: z.boolean(), + ram: z.boolean(), + database: z.boolean(), }) -export type GetSystemHealthChecksResponse = Static \ No newline at end of file +export type GetSystemHealthChecksResponse = z.infer diff --git a/packages/shared/src/lib/core/license-keys/index.ts b/packages/shared/src/lib/core/license-keys/index.ts index 91ab9f0b940..396adc587be 100644 --- a/packages/shared/src/lib/core/license-keys/index.ts +++ b/packages/shared/src/lib/core/license-keys/index.ts @@ -1,48 +1,48 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const VerifyLicenseKeyRequestBody = Type.Object({ - licenseKey: Type.String(), - platformId: Type.String(), +export const VerifyLicenseKeyRequestBody = z.object({ + licenseKey: z.string(), + platformId: z.string(), }) -export type VerifyLicenseKeyRequestBody = Static - -export const LicenseKeyEntity = Type.Object({ - id: Type.String(), - email: Type.String(), - expiresAt: Type.String(), - activatedAt: Type.String(), - createdAt: Type.String(), - key: Type.String(), - ssoEnabled: Type.Boolean(), - scimEnabled: Type.Boolean(), - environmentsEnabled: Type.Boolean(), - showPoweredBy: Type.Boolean(), - embeddingEnabled: Type.Boolean(), - auditLogEnabled: Type.Boolean(), - customAppearanceEnabled: Type.Boolean(), - manageProjectsEnabled: Type.Boolean(), - managePiecesEnabled: Type.Boolean(), - manageTemplatesEnabled: Type.Boolean(), - apiKeysEnabled: Type.Boolean(), - customDomainsEnabled: Type.Boolean(), - projectRolesEnabled: Type.Boolean(), - analyticsEnabled: Type.Boolean(), - globalConnectionsEnabled: Type.Boolean(), - customRolesEnabled: Type.Boolean(), - eventStreamingEnabled: Type.Boolean(), - secretManagersEnabled: Type.Boolean(), +export type VerifyLicenseKeyRequestBody = z.infer + +export const LicenseKeyEntity = z.object({ + id: z.string(), + email: z.string(), + expiresAt: z.string(), + activatedAt: z.string(), + createdAt: z.string(), + key: z.string(), + ssoEnabled: z.boolean(), + scimEnabled: z.boolean(), + environmentsEnabled: z.boolean(), + showPoweredBy: z.boolean(), + embeddingEnabled: z.boolean(), + auditLogEnabled: z.boolean(), + customAppearanceEnabled: z.boolean(), + manageProjectsEnabled: z.boolean(), + managePiecesEnabled: z.boolean(), + manageTemplatesEnabled: z.boolean(), + apiKeysEnabled: z.boolean(), + customDomainsEnabled: z.boolean(), + projectRolesEnabled: z.boolean(), + analyticsEnabled: z.boolean(), + globalConnectionsEnabled: z.boolean(), + customRolesEnabled: z.boolean(), + eventStreamingEnabled: z.boolean(), + secretManagersEnabled: z.boolean(), }) -export const CreateTrialLicenseKeyRequestBody = Type.Composite([Type.Object({ - email: Type.String(), - companyName: Type.String(), - goal: Type.String(), - keyType: Type.Optional(Type.String()), -}), Type.Omit(LicenseKeyEntity, ['id', 'email', 'expiresAt', 'activatedAt', 'key', 'createdAt'])]) +export const CreateTrialLicenseKeyRequestBody = z.object({ + email: z.string(), + companyName: z.string(), + goal: z.string(), + keyType: z.string().optional(), +}).merge(LicenseKeyEntity.omit({ id: true, email: true, expiresAt: true, activatedAt: true, key: true, createdAt: true })) -export type CreateTrialLicenseKeyRequestBody = Static +export type CreateTrialLicenseKeyRequestBody = z.infer -export type LicenseKeyEntity = Static +export type LicenseKeyEntity = z.infer diff --git a/packages/shared/src/lib/core/store-entry/dto/store-entry-request.ts b/packages/shared/src/lib/core/store-entry/dto/store-entry-request.ts index 9df1934c0bf..227cdffaeab 100755 --- a/packages/shared/src/lib/core/store-entry/dto/store-entry-request.ts +++ b/packages/shared/src/lib/core/store-entry/dto/store-entry-request.ts @@ -1,23 +1,21 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { STORE_KEY_MAX_LENGTH } from '../store-entry' -export const PutStoreEntryRequest = Type.Object({ - key: Type.String({ - maxLength: STORE_KEY_MAX_LENGTH, - }), - value: Type.Optional(Type.Any({})), +export const PutStoreEntryRequest = z.object({ + key: z.string().max(STORE_KEY_MAX_LENGTH), + value: z.any().optional(), }) -export type PutStoreEntryRequest = Static +export type PutStoreEntryRequest = z.infer -export const GetStoreEntryRequest = Type.Object({ - key: Type.String({}), +export const GetStoreEntryRequest = z.object({ + key: z.string(), }) -export type GetStoreEntryRequest = Static +export type GetStoreEntryRequest = z.infer -export const DeleteStoreEntryRequest = Type.Object({ - key: Type.String({}), +export const DeleteStoreEntryRequest = z.object({ + key: z.string(), }) -export type DeleteStoreEntryRequest = Static +export type DeleteStoreEntryRequest = z.infer diff --git a/packages/shared/src/lib/core/tag/index.ts b/packages/shared/src/lib/core/tag/index.ts index 170a0e8da39..88a1964afdf 100644 --- a/packages/shared/src/lib/core/tag/index.ts +++ b/packages/shared/src/lib/core/tag/index.ts @@ -1,39 +1,39 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../common/base-model' -export const Tag = Type.Object({ +export const Tag = z.object({ ...BaseModelSchema, - platformId: Type.String(), - name: Type.String(), + platformId: z.string(), + name: z.string(), }) -export type Tag = Static +export type Tag = z.infer -export const PieceTag = Type.Object({ +export const PieceTag = z.object({ ...BaseModelSchema, - pieceName: Type.String(), - tagId: Type.String(), - platformId: Type.String(), + pieceName: z.string(), + tagId: z.string(), + platformId: z.string(), }) -export type PieceTag = Static +export type PieceTag = z.infer -export const ListTagsRequest = Type.Object({ - limit: Type.Optional(Type.Number()), - cursor: Type.Optional(Type.String()), +export const ListTagsRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), }) -export type ListTagsRequest = Static +export type ListTagsRequest = z.infer -export const SetPieceTagsRequest = Type.Object({ - piecesName: Type.Array(Type.String()), - tags: Type.Array(Type.String()), +export const SetPieceTagsRequest = z.object({ + piecesName: z.array(z.string()), + tags: z.array(z.string()), }) -export type SetPieceTagsRequest = Static +export type SetPieceTagsRequest = z.infer -export const UpsertTagRequest = Type.Object({ - name: Type.String(), +export const UpsertTagRequest = z.object({ + name: z.string(), }) -export type UpsertTagRequest = Static +export type UpsertTagRequest = z.infer diff --git a/packages/shared/src/lib/core/user/badges/index.ts b/packages/shared/src/lib/core/user/badges/index.ts index fc8f5947579..d5bea24aa3d 100644 --- a/packages/shared/src/lib/core/user/badges/index.ts +++ b/packages/shared/src/lib/core/user/badges/index.ts @@ -1,14 +1,14 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../common' -export const UserBadge = Type.Object({ +export const UserBadge = z.object({ ...BaseModelSchema, - name: Type.String(), - userId: Type.String(), + name: z.string(), + userId: z.string(), }) -export type UserBadge = Static +export type UserBadge = z.infer export const BADGES = { 'first-build': { diff --git a/packages/shared/src/lib/core/user/index.ts b/packages/shared/src/lib/core/user/index.ts index af20e4cdeb5..463605906d3 100644 --- a/packages/shared/src/lib/core/user/index.ts +++ b/packages/shared/src/lib/core/user/index.ts @@ -1,22 +1,22 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { PlatformRole, UserStatus } from './user' export * from './user' export * from './badges' -export const UpdateUserRequestBody = Type.Object({ - status: Type.Optional(Type.Enum(UserStatus)), - platformRole: Type.Optional(Type.Enum(PlatformRole)), - externalId: Type.Optional(Type.String()), +export const UpdateUserRequestBody = z.object({ + status: z.nativeEnum(UserStatus).optional(), + platformRole: z.nativeEnum(PlatformRole).optional(), + externalId: z.string().optional(), }) -export type UpdateUserRequestBody = Static +export type UpdateUserRequestBody = z.infer -export const ListUsersRequestBody = Type.Object({ - cursor: Type.Optional(Type.String()), - limit: Type.Optional(Type.Number()), - externalId: Type.Optional(Type.String()), +export const ListUsersRequestBody = z.object({ + cursor: z.string().optional(), + limit: z.coerce.number().optional(), + externalId: z.string().optional(), }) -export type ListUsersRequestBody = Static +export type ListUsersRequestBody = z.infer diff --git a/packages/shared/src/lib/core/user/user.ts b/packages/shared/src/lib/core/user/user.ts index e0f001ab1d6..f96c1130180 100755 --- a/packages/shared/src/lib/core/user/user.ts +++ b/packages/shared/src/lib/core/user/user.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema, Nullable } from '../common/base-model' +import { z } from 'zod' +import { BaseModelSchema, DateOrString, Nullable } from '../common/base-model' import { ApId } from '../common/id-generator' import { UserBadge } from './badges' @@ -30,51 +30,46 @@ export enum UserStatus { INACTIVE = 'INACTIVE', } -export const EmailType = Type.String({ - format: 'email', -}) +export const EmailType = z.string().email() -export const PasswordType = Type.String({ - minLength: 8, - maxLength: 64, -}) +export const PasswordType = z.string().min(8).max(64) -export const User = Type.Object({ +export const User = z.object({ ...BaseModelSchema, - platformRole: Type.Enum(PlatformRole), - status: Type.Enum(UserStatus), - identityId: Type.String(), - externalId: Nullable(Type.String()), - platformId: Nullable(Type.String()), - lastActiveDate: Nullable(Type.String()), + platformRole: z.nativeEnum(PlatformRole), + status: z.nativeEnum(UserStatus), + identityId: z.string(), + externalId: Nullable(z.string()), + platformId: Nullable(z.string()), + lastActiveDate: Nullable(DateOrString), }) -export type User = Static - -export const UserWithMetaInformation = Type.Object({ - id: Type.String(), - email: Type.String(), - firstName: Type.String(), - status: Type.Enum(UserStatus), - externalId: Nullable(Type.String()), - platformId: Nullable(Type.String()), - platformRole: Type.Enum(PlatformRole), - lastName: Type.String(), - created: Type.String(), - updated: Type.String(), - lastActiveDate: Nullable(Type.String()), - imageUrl: Nullable(Type.String()), +export type User = z.infer + +export const UserWithMetaInformation = z.object({ + id: z.string(), + email: z.string(), + firstName: z.string(), + status: z.nativeEnum(UserStatus), + externalId: Nullable(z.string()), + platformId: Nullable(z.string()), + platformRole: z.nativeEnum(PlatformRole), + lastName: z.string(), + created: DateOrString, + updated: DateOrString, + lastActiveDate: Nullable(DateOrString), + imageUrl: Nullable(z.string()), }) -export type UserWithMetaInformation = Static +export type UserWithMetaInformation = z.infer -export const UserWithBadges = Type.Object({ - ...UserWithMetaInformation.properties, - badges: Type.Array(Type.Pick(UserBadge, ['name', 'created'])), +export const UserWithBadges = z.object({ + ...UserWithMetaInformation.shape, + badges: z.array(UserBadge.pick({ name: true, created: true })), }) -export type UserWithBadges = Static +export type UserWithBadges = z.infer export const AP_MAXIMUM_PROFILE_PICTURE_SIZE = 5 * 1024 * 1024 // 5 MB @@ -85,19 +80,19 @@ export const PROFILE_PICTURE_ALLOWED_TYPES = [ 'image/webp', ] -export const UpdateMeRequestBody = Type.Object({ - profilePicture: Type.Optional(Type.Any()), +export const UpdateMeRequestBody = z.object({ + profilePicture: z.any().optional(), }) -export type UpdateMeRequestBody = Static +export type UpdateMeRequestBody = z.infer -export const UpdateMeResponse = Type.Object({ - email: Type.String(), - firstName: Type.String(), - lastName: Type.String(), - trackEvents: Type.Boolean(), - newsLetter: Type.Boolean(), - imageUrl: Nullable(Type.String()), +export const UpdateMeResponse = z.object({ + email: z.string(), + firstName: z.string(), + lastName: z.string(), + trackEvents: z.boolean(), + newsLetter: z.boolean(), + imageUrl: Nullable(z.string()), }) -export type UpdateMeResponse = Static \ No newline at end of file +export type UpdateMeResponse = z.infer diff --git a/packages/shared/src/lib/ee/alerts/alerts-dto.ts b/packages/shared/src/lib/ee/alerts/alerts-dto.ts index ec4ce6bdeb7..6225d098e6a 100644 --- a/packages/shared/src/lib/ee/alerts/alerts-dto.ts +++ b/packages/shared/src/lib/ee/alerts/alerts-dto.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' @@ -7,11 +7,11 @@ export enum AlertChannel { } -export const Alert = Type.Object({ +export const Alert = z.object({ ...BaseModelSchema, projectId: ApId, - channel: Type.Enum(AlertChannel), - receiver: Type.String({}), + channel: z.nativeEnum(AlertChannel), + receiver: z.string(), }) -export type Alert = Static \ No newline at end of file +export type Alert = z.infer diff --git a/packages/shared/src/lib/ee/alerts/alerts-requests.ts b/packages/shared/src/lib/ee/alerts/alerts-requests.ts index 10127454b2a..b1af492b891 100644 --- a/packages/shared/src/lib/ee/alerts/alerts-requests.ts +++ b/packages/shared/src/lib/ee/alerts/alerts-requests.ts @@ -1,18 +1,18 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApId } from '../../core/common/id-generator' import { AlertChannel } from './alerts-dto' -export const ListAlertsParams = Type.Object({ +export const ListAlertsParams = z.object({ projectId: ApId, - cursor: Type.Optional(Type.String()), - limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 100 })), + cursor: z.string().optional(), + limit: z.coerce.number().int().min(1).max(100).optional(), }) -export type ListAlertsParams = Static +export type ListAlertsParams = z.infer -export const CreateAlertParams = Type.Object({ +export const CreateAlertParams = z.object({ projectId: ApId, - channel: Type.Enum(AlertChannel), - receiver: Type.String({}), + channel: z.nativeEnum(AlertChannel), + receiver: z.string(), }) -export type CreateAlertParams = Static \ No newline at end of file +export type CreateAlertParams = z.infer diff --git a/packages/shared/src/lib/ee/api-key/index.ts b/packages/shared/src/lib/ee/api-key/index.ts index a8b1915e8bf..520aef62e95 100644 --- a/packages/shared/src/lib/ee/api-key/index.ts +++ b/packages/shared/src/lib/ee/api-key/index.ts @@ -1,35 +1,32 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema } from '../../core/common/base-model' +import { z } from 'zod' +import { BaseModelSchema, Nullable } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' -export const ApiKey = Type.Object({ +export const ApiKey = z.object({ ...BaseModelSchema, platformId: ApId, - displayName: Type.String(), - hashedValue: Type.String(), - truncatedValue: Type.String(), - lastUsedAt: Type.Optional(Type.String()), + displayName: z.string(), + hashedValue: z.string(), + truncatedValue: z.string(), + lastUsedAt: Nullable(z.string()), }) -export type ApiKey = Static +export type ApiKey = z.infer -export const ApiKeyResponseWithValue = Type.Composite([ - Type.Omit(ApiKey, ['hashedValue']), - Type.Object({ - value: Type.String(), - }), -]) +export const ApiKeyResponseWithValue = ApiKey.omit({ hashedValue: true }).extend({ + value: z.string(), +}) -export type ApiKeyResponseWithValue = Static +export type ApiKeyResponseWithValue = z.infer -export const ApiKeyResponseWithoutValue = Type.Omit(ApiKey, ['hashedValue']) +export const ApiKeyResponseWithoutValue = ApiKey.omit({ hashedValue: true }) -export type ApiKeyResponseWithoutValue = Static +export type ApiKeyResponseWithoutValue = z.infer -export const CreateApiKeyRequest = Type.Object({ - displayName: Type.String(), +export const CreateApiKeyRequest = z.object({ + displayName: z.string(), }) -export type CreateApiKeyRequest = Static +export type CreateApiKeyRequest = z.infer diff --git a/packages/shared/src/lib/ee/audit-events/index.ts b/packages/shared/src/lib/ee/audit-events/index.ts index 98c9e6bf33f..9ce108c227e 100644 --- a/packages/shared/src/lib/ee/audit-events/index.ts +++ b/packages/shared/src/lib/ee/audit-events/index.ts @@ -1,29 +1,25 @@ -import { Static, Type } from '@sinclair/typebox' -import { AppConnectionWithoutSensitiveData } from '../../automation/app-connection/app-connection' -import { FlowRun } from '../../automation/flow-run/flow-run' +import { z } from 'zod' import { Flow } from '../../automation/flows/flow' import { FlowVersion } from '../../automation/flows/flow-version' import { Folder } from '../../automation/flows/folders/folder' import { FlowOperationRequest, FlowOperationType } from '../../automation/flows/operations' -import { ProjectRelease } from '../../automation/project-release/project-release' -import { BaseModelSchema } from '../../core/common/base-model' -import { User } from '../../core/user/user' -import { Project } from '../../management/project/project' +import { BaseModelSchema, DateOrString, Nullable, OptionalArrayFromQuery } from '../../core/common/base-model' +import { UserWithMetaInformation } from '../../core/user/user' import { ProjectRole } from '../../management/project-role/project-role' import { SigningKey } from '../signing-key' -export const ListAuditEventsRequest = Type.Object({ - limit: Type.Optional(Type.Number()), - cursor: Type.Optional(Type.String()), - action: Type.Optional(Type.Array(Type.String())), - projectId: Type.Optional(Type.Array(Type.String())), - userId: Type.Optional(Type.String()), - createdBefore: Type.Optional(Type.String()), - createdAfter: Type.Optional(Type.String()), +export const ListAuditEventsRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + action: OptionalArrayFromQuery(z.string()), + projectId: OptionalArrayFromQuery(z.string()), + userId: z.string().optional(), + createdBefore: z.string().optional(), + createdAfter: z.string().optional(), }) -export type ListAuditEventsRequest = Static +export type ListAuditEventsRequest = z.infer -const UserMeta = Type.Pick(User, ['email', 'id', 'firstName', 'lastName']) +const UserMeta = UserWithMetaInformation.pick({ email: true, id: true, firstName: true, lastName: true }) export enum ApplicationEventName { FLOW_CREATED = 'flow.created', @@ -50,199 +46,230 @@ export enum ApplicationEventName { const BaseAuditEventProps = { ...BaseModelSchema, - platformId: Type.String(), - projectId: Type.Optional(Type.String()), - projectDisplayName: Type.Optional(Type.String()), - userId: Type.Optional(Type.String()), - userEmail: Type.Optional(Type.String()), - ip: Type.Optional(Type.String()), + platformId: z.string(), + projectId: z.string().optional(), + projectDisplayName: z.string().optional(), + userId: z.string().optional(), + userEmail: z.string().optional(), + ip: z.string().optional(), } -export const ConnectionEvent = Type.Object({ +export const ConnectionEvent = z.object({ ...BaseAuditEventProps, - action: Type.Union([ - Type.Literal(ApplicationEventName.CONNECTION_DELETED), - Type.Literal(ApplicationEventName.CONNECTION_UPSERTED), + action: z.union([ + z.literal(ApplicationEventName.CONNECTION_DELETED), + z.literal(ApplicationEventName.CONNECTION_UPSERTED), ]), - data: Type.Object({ - connection: Type.Pick(AppConnectionWithoutSensitiveData, [ - 'displayName', - 'externalId', - 'pieceName', - 'status', - 'type', - 'id', - 'created', - 'updated', - ]), - project: Type.Optional(Type.Pick(Project, ['displayName'])), + data: z.object({ + connection: z.object({ + displayName: z.string(), + externalId: z.string(), + pieceName: z.string(), + status: z.string(), + type: z.string(), + id: z.string(), + created: DateOrString, + updated: DateOrString, + }), + project: z.object({ + displayName: z.string(), + }).optional(), }), }) -export type ConnectionEvent = Static +export type ConnectionEvent = z.infer -export const FolderEvent = Type.Object({ +export const FolderEvent = z.object({ ...BaseAuditEventProps, - action: Type.Union([ - Type.Literal(ApplicationEventName.FOLDER_UPDATED), - Type.Literal(ApplicationEventName.FOLDER_CREATED), - Type.Literal(ApplicationEventName.FOLDER_DELETED), + action: z.union([ + z.literal(ApplicationEventName.FOLDER_UPDATED), + z.literal(ApplicationEventName.FOLDER_CREATED), + z.literal(ApplicationEventName.FOLDER_DELETED), ]), - data: Type.Object({ - folder: Type.Pick(Folder, ['id', 'displayName', 'created', 'updated']), - project: Type.Optional(Type.Pick(Project, ['displayName'])), + data: z.object({ + folder: Folder.pick({ id: true, displayName: true, created: true, updated: true }), + project: z.object({ + displayName: z.string(), + }).optional(), }), }) -export type FolderEvent = Static +export type FolderEvent = z.infer -export const FlowRunEvent = Type.Object({ +export const FlowRunEvent = z.object({ ...BaseAuditEventProps, - action: Type.Union([ - Type.Literal(ApplicationEventName.FLOW_RUN_STARTED), - Type.Literal(ApplicationEventName.FLOW_RUN_FINISHED), - Type.Literal(ApplicationEventName.FLOW_RUN_RESUMED), + action: z.union([ + z.literal(ApplicationEventName.FLOW_RUN_STARTED), + z.literal(ApplicationEventName.FLOW_RUN_FINISHED), + z.literal(ApplicationEventName.FLOW_RUN_RESUMED), ]), - data: Type.Object({ - flowRun: Type.Pick(FlowRun, [ - 'id', - 'startTime', - 'finishTime', - 'duration', - 'triggeredBy', - 'environment', - 'flowId', - 'flowVersionId', - 'stepNameToTest', - 'flowDisplayName', - 'status', - ]), - project: Type.Optional(Type.Pick(Project, ['displayName'])), + data: z.object({ + flowRun: z.object({ + id: z.string(), + startTime: z.string().optional(), + finishTime: z.string().optional(), + duration: z.number().optional(), + triggeredBy: z.string().optional(), + environment: z.string(), + flowId: z.string(), + flowVersionId: z.string(), + stepNameToTest: z.string().optional(), + flowDisplayName: z.string().optional(), + status: z.string(), + }), + project: z.object({ + displayName: z.string(), + }).optional(), }), }) -export type FlowRunEvent = Static +export type FlowRunEvent = z.infer -export const FlowCreatedEvent = Type.Object({ +export const FlowCreatedEvent = z.object({ ...BaseAuditEventProps, - action: Type.Literal(ApplicationEventName.FLOW_CREATED), - data: Type.Object({ - flow: Type.Pick(Flow, ['id', 'created', 'updated']), - project: Type.Optional(Type.Pick(Project, ['displayName'])), + action: z.literal(ApplicationEventName.FLOW_CREATED), + data: z.object({ + flow: Flow.pick({ id: true, created: true, updated: true }), + project: z.object({ + displayName: z.string(), + }).optional(), }), }) -export type FlowCreatedEvent = Static +export type FlowCreatedEvent = z.infer -export const FlowDeletedEvent = Type.Object({ +export const FlowDeletedEvent = z.object({ ...BaseAuditEventProps, - action: Type.Literal(ApplicationEventName.FLOW_DELETED), - data: Type.Object({ - flow: Type.Pick(Flow, ['id', 'created', 'updated']), - flowVersion: Type.Pick(FlowVersion, [ - 'id', - 'displayName', - 'flowId', - 'created', - 'updated', - ]), - project: Type.Optional(Type.Pick(Project, ['displayName'])), + action: z.literal(ApplicationEventName.FLOW_DELETED), + data: z.object({ + flow: Flow.pick({ id: true, created: true, updated: true }), + flowVersion: FlowVersion.pick({ + id: true, + displayName: true, + flowId: true, + created: true, + updated: true, + }), + project: z.object({ + displayName: z.string(), + }).optional(), }), }) -export type FlowDeletedEvent = Static +export type FlowDeletedEvent = z.infer -export const FlowUpdatedEvent = Type.Object({ +export const FlowUpdatedEvent = z.object({ ...BaseAuditEventProps, - action: Type.Literal(ApplicationEventName.FLOW_UPDATED), - data: Type.Object({ - flowVersion: Type.Pick(FlowVersion, [ - 'id', - 'displayName', - 'flowId', - 'created', - 'updated', - ]), + action: z.literal(ApplicationEventName.FLOW_UPDATED), + data: z.object({ + flowVersion: FlowVersion.pick({ + id: true, + displayName: true, + flowId: true, + created: true, + updated: true, + }), request: FlowOperationRequest, - project: Type.Optional(Type.Pick(Project, ['displayName'])), + project: z.object({ + displayName: z.string(), + }).optional(), }), }) -export type FlowUpdatedEvent = Static +export type FlowUpdatedEvent = z.infer -export const AuthenticationEvent = Type.Object({ +export const AuthenticationEvent = z.object({ ...BaseAuditEventProps, - action: Type.Union([ - Type.Literal(ApplicationEventName.USER_SIGNED_IN), - Type.Literal(ApplicationEventName.USER_PASSWORD_RESET), - Type.Literal(ApplicationEventName.USER_EMAIL_VERIFIED), + action: z.union([ + z.literal(ApplicationEventName.USER_SIGNED_IN), + z.literal(ApplicationEventName.USER_PASSWORD_RESET), + z.literal(ApplicationEventName.USER_EMAIL_VERIFIED), ]), - data: Type.Object({ - user: Type.Optional(UserMeta), + data: z.object({ + user: UserMeta.optional(), }), }) -export type AuthenticationEvent = Static +export type AuthenticationEvent = z.infer -export const SignUpEvent = Type.Object({ +export const SignUpEvent = z.object({ ...BaseAuditEventProps, - action: Type.Literal(ApplicationEventName.USER_SIGNED_UP), - data: Type.Object({ - source: Type.Union([ - Type.Literal('credentials'), - Type.Literal('sso'), - Type.Literal('managed'), + action: z.literal(ApplicationEventName.USER_SIGNED_UP), + data: z.object({ + source: z.union([ + z.literal('credentials'), + z.literal('sso'), + z.literal('managed'), ]), - user: Type.Optional(UserMeta), + user: UserMeta.optional(), }), }) -export type SignUpEvent = Static +export type SignUpEvent = z.infer -export const SigningKeyEvent = Type.Object({ +export const SigningKeyEvent = z.object({ ...BaseAuditEventProps, - action: Type.Union([Type.Literal(ApplicationEventName.SIGNING_KEY_CREATED)]), - data: Type.Object({ - signingKey: Type.Pick(SigningKey, [ - 'id', - 'created', - 'updated', - 'displayName', - ]), + action: z.union([z.literal(ApplicationEventName.SIGNING_KEY_CREATED)]), + data: z.object({ + signingKey: SigningKey.pick({ + id: true, + created: true, + updated: true, + displayName: true, + }), }), }) -export type SigningKeyEvent = Static +export type SigningKeyEvent = z.infer -export const ProjectRoleEvent = Type.Object({ +export const ProjectRoleEvent = z.object({ ...BaseAuditEventProps, - action: Type.Union([ - Type.Literal(ApplicationEventName.PROJECT_ROLE_CREATED), - Type.Literal(ApplicationEventName.PROJECT_ROLE_UPDATED), - Type.Literal(ApplicationEventName.PROJECT_ROLE_DELETED), + action: z.union([ + z.literal(ApplicationEventName.PROJECT_ROLE_CREATED), + z.literal(ApplicationEventName.PROJECT_ROLE_UPDATED), + z.literal(ApplicationEventName.PROJECT_ROLE_DELETED), ]), - data: Type.Object({ - projectRole: Type.Pick(ProjectRole, [ - 'id', - 'created', - 'updated', - 'name', - 'permissions', - 'platformId', - ]), + data: z.object({ + projectRole: ProjectRole.pick({ + id: true, + created: true, + updated: true, + name: true, + permissions: true, + platformId: true, + }), }), }) -export type ProjectRoleEvent = Static +export type ProjectRoleEvent = z.infer -export const ProjectReleaseEvent = Type.Object({ +export const ProjectReleaseEvent = z.object({ ...BaseAuditEventProps, - action: Type.Literal(ApplicationEventName.PROJECT_RELEASE_CREATED), - data: Type.Object({ - release: Type.Pick(ProjectRelease, ['name', 'description', 'type', 'projectId', 'importedByUser']), + action: z.literal(ApplicationEventName.PROJECT_RELEASE_CREATED), + data: z.object({ + release: z.object({ + name: z.string(), + description: Nullable(z.string()), + type: z.string(), + projectId: z.string(), + importedByUser: z.object({ + id: z.string(), + email: z.string(), + firstName: z.string(), + status: z.string(), + externalId: Nullable(z.string()), + platformId: Nullable(z.string()), + platformRole: z.string(), + lastName: z.string(), + created: DateOrString, + updated: DateOrString, + lastActiveDate: Nullable(z.string()), + imageUrl: Nullable(z.string()), + }).optional(), + }), }), }) -export type ProjectReleaseEvent = Static +export type ProjectReleaseEvent = z.infer -export const ApplicationEvent = Type.Union([ +export const ApplicationEvent = z.union([ ConnectionEvent, FlowCreatedEvent, FlowDeletedEvent, @@ -256,7 +283,7 @@ export const ApplicationEvent = Type.Union([ ProjectReleaseEvent, ]) -export type ApplicationEvent = Static +export type ApplicationEvent = z.infer export function summarizeApplicationEvent(event: ApplicationEvent) { switch (event.action) { @@ -388,4 +415,4 @@ function convertUpdateActionToDetails(event: FlowUpdatedEvent) { case FlowOperationType.DELETE_NOTE: return `Deleted note in flow "${event.data.flowVersion.displayName}".` } -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/ee/authn/enterprise-local-authn/requests.ts b/packages/shared/src/lib/ee/authn/enterprise-local-authn/requests.ts index 6717a19ecd4..41806f4dc74 100644 --- a/packages/shared/src/lib/ee/authn/enterprise-local-authn/requests.ts +++ b/packages/shared/src/lib/ee/authn/enterprise-local-authn/requests.ts @@ -1,26 +1,22 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { SignUpRequest } from '../../../core/authentication/dto/sign-up-request' import { ApId } from '../../../core/common/id-generator' -export const VerifyEmailRequestBody = Type.Object({ +export const VerifyEmailRequestBody = z.object({ identityId: ApId, - otp: Type.String(), + otp: z.string(), }) -export type VerifyEmailRequestBody = Static +export type VerifyEmailRequestBody = z.infer -export const ResetPasswordRequestBody = Type.Object({ +export const ResetPasswordRequestBody = z.object({ identityId: ApId, - otp: Type.String(), - newPassword: Type.String(), + otp: z.string(), + newPassword: z.string(), }) -export type ResetPasswordRequestBody = Static +export type ResetPasswordRequestBody = z.infer -export const SignUpAndAcceptRequestBody = Type.Composite([ - Type.Omit(SignUpRequest, ['referringUserId', 'email']), - Type.Object({ - invitationToken: Type.String(), - }), -]) - -export type SignUpAndAcceptRequestBody = Static +export const SignUpAndAcceptRequestBody = SignUpRequest.omit({ email: true }).extend({ + invitationToken: z.string(), +}) +export type SignUpAndAcceptRequestBody = z.infer diff --git a/packages/shared/src/lib/ee/billing/index.ts b/packages/shared/src/lib/ee/billing/index.ts index d2e554b9360..330e09c1de3 100644 --- a/packages/shared/src/lib/ee/billing/index.ts +++ b/packages/shared/src/lib/ee/billing/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { isNil, Nullable } from '../../core/common' import { AiCreditsAutoTopUpState, PlanName, PlatformPlanWithOnlyLimits, PlatformUsageMetric, TeamProjectsLimit } from '../../management/platform' import { PiecesFilterType } from '../../management/project' @@ -27,33 +27,33 @@ export const METRIC_TO_USAGE_MAPPING = { [PlatformUsageMetric.ACTIVE_FLOWS]: 'activeFlows', } as const -export const UpdateActiveFlowsAddonParamsSchema = Type.Object({ - newActiveFlowsLimit: Type.Number(), +export const UpdateActiveFlowsAddonParamsSchema = z.object({ + newActiveFlowsLimit: z.number(), }) -export type UpdateActiveFlowsAddonParams = Static +export type UpdateActiveFlowsAddonParams = z.infer -export const CreateCheckoutSessionParamsSchema = Type.Object({ - newActiveFlowsLimit: Type.Number(), +export const CreateCheckoutSessionParamsSchema = z.object({ + newActiveFlowsLimit: z.number(), }) -export type CreateSubscriptionParams = Static +export type CreateSubscriptionParams = z.infer -export const CreateAICreditCheckoutSessionParamsSchema = Type.Object({ - aiCredits: Type.Number(), +export const CreateAICreditCheckoutSessionParamsSchema = z.object({ + aiCredits: z.number(), }) -export type CreateAICreditCheckoutSessionParamsSchema = Static - -export const UpdateAICreditsAutoTopUpParamsSchema = Type.Union([ - Type.Object({ - state: Type.Literal(AiCreditsAutoTopUpState.ENABLED), - minThreshold: Type.Number(), - creditsToAdd: Type.Number(), - maxMonthlyLimit: Nullable(Type.Number()), +export type CreateAICreditCheckoutSessionParamsSchema = z.infer + +export const UpdateAICreditsAutoTopUpParamsSchema = z.union([ + z.object({ + state: z.literal(AiCreditsAutoTopUpState.ENABLED), + minThreshold: z.number(), + creditsToAdd: z.number(), + maxMonthlyLimit: Nullable(z.number()), }), - Type.Object({ - state: Type.Literal(AiCreditsAutoTopUpState.DISABLED), + z.object({ + state: z.literal(AiCreditsAutoTopUpState.DISABLED), }), ]) -export type UpdateAICreditsAutoTopUpParamsSchema = Static +export type UpdateAICreditsAutoTopUpParamsSchema = z.infer export enum PRICE_NAMES { AI_CREDITS = 'ai-credit', @@ -132,10 +132,10 @@ export const APPSUMO_PLAN = (planName: PlanName): PlatformPlanWithOnlyLimits => activeFlowsLimit: undefined, }) -export const isCloudPlanButNotEnterprise = (plan?: string): boolean => { +export const isCloudPlanButNotEnterprise = (plan?: string | null): boolean => { if (isNil(plan)) { return false } return plan === PlanName.STANDARD -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/ee/custom-domains/index.ts b/packages/shared/src/lib/ee/custom-domains/index.ts index 8817efecd40..d5469a4a7b5 100644 --- a/packages/shared/src/lib/ee/custom-domains/index.ts +++ b/packages/shared/src/lib/ee/custom-domains/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common/base-model' export enum CustomDomainStatus { @@ -6,27 +6,25 @@ export enum CustomDomainStatus { PENDING = 'PENDING', } -export const CustomDomain = Type.Object({ +export const CustomDomain = z.object({ ...BaseModelSchema, - domain: Type.String(), - platformId: Type.String(), - status: Type.Enum(CustomDomainStatus), + domain: z.string(), + platformId: z.string(), + status: z.nativeEnum(CustomDomainStatus), }) -export type CustomDomain = Static +export type CustomDomain = z.infer -export const AddDomainRequest = Type.Object({ - domain: Type.String({ - pattern: '^(?!.*\\.example\\.com$)(?!.*\\.example\\.net$).*', - }), +export const AddDomainRequest = z.object({ + domain: z.string().regex(/^(?!.*\.example\.com$)(?!.*\.example\.net$).*/), }) -export type AddDomainRequest = Static +export type AddDomainRequest = z.infer -export const ListCustomDomainsRequest = Type.Object({ - limit: Type.Optional(Type.Number()), - cursor: Type.Optional(Type.String()), +export const ListCustomDomainsRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), }) -export type ListCustomDomainsRequest = Static \ No newline at end of file +export type ListCustomDomainsRequest = z.infer diff --git a/packages/shared/src/lib/ee/event-destinations/dto.ts b/packages/shared/src/lib/ee/event-destinations/dto.ts index 3ad3faf8101..56eea06df14 100644 --- a/packages/shared/src/lib/ee/event-destinations/dto.ts +++ b/packages/shared/src/lib/ee/event-destinations/dto.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ApplicationEventName } from '../audit-events' export enum EventDestinationScope { @@ -6,29 +6,29 @@ export enum EventDestinationScope { PROJECT = 'PROJECT', } -export const ListPlatformEventDestinationsRequestBody = Type.Object({ - cursor: Type.Optional(Type.String()), - limit: Type.Optional(Type.Number()), +export const ListPlatformEventDestinationsRequestBody = z.object({ + cursor: z.string().optional(), + limit: z.coerce.number().optional(), }) -export type ListPlatformEventDestinationsRequestBody = Static +export type ListPlatformEventDestinationsRequestBody = z.infer -export const CreatePlatformEventDestinationRequestBody = Type.Object({ - events: Type.Array(Type.Enum(ApplicationEventName)), - url: Type.String({ format: 'uri' }), +export const CreatePlatformEventDestinationRequestBody = z.object({ + events: z.array(z.nativeEnum(ApplicationEventName)), + url: z.string().url(), }) -export type CreatePlatformEventDestinationRequestBody = Static +export type CreatePlatformEventDestinationRequestBody = z.infer export const UpdatePlatformEventDestinationRequestBody = CreatePlatformEventDestinationRequestBody -export type UpdatePlatformEventDestinationRequestBody = Static +export type UpdatePlatformEventDestinationRequestBody = z.infer -export const TestPlatformEventDestinationRequestBody = Type.Object({ - url: Type.String({ format: 'uri' }), +export const TestPlatformEventDestinationRequestBody = z.object({ + url: z.string().url(), }) -export type TestPlatformEventDestinationRequestBody = Static \ No newline at end of file +export type TestPlatformEventDestinationRequestBody = z.infer diff --git a/packages/shared/src/lib/ee/event-destinations/index.ts b/packages/shared/src/lib/ee/event-destinations/index.ts index 588e8d2f4f7..d667220c7ca 100644 --- a/packages/shared/src/lib/ee/event-destinations/index.ts +++ b/packages/shared/src/lib/ee/event-destinations/index.ts @@ -1,33 +1,33 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema, DiscriminatedUnion } from '../../core/common/base-model' +import { z } from 'zod' +import { BaseModelSchema } from '../../core/common/base-model' import { ApplicationEventName } from '../audit-events/index' import { EventDestinationScope } from './dto' const EventDestinationBase = { ...BaseModelSchema, - platformId: Type.String(), - events: Type.Array(Type.Enum(ApplicationEventName)), - url: Type.String({ format: 'uri' }), + platformId: z.string(), + events: z.array(z.nativeEnum(ApplicationEventName)), + url: z.string().url(), } -const EventDestinationProjectScope = Type.Object({ +const EventDestinationProjectScope = z.object({ ...EventDestinationBase, - scope: Type.Literal(EventDestinationScope.PROJECT), - projectId: Type.String(), + scope: z.literal(EventDestinationScope.PROJECT), + projectId: z.string(), }) -export const EventDestinationPlatformScope = Type.Object({ +export const EventDestinationPlatformScope = z.object({ ...EventDestinationBase, - scope: Type.Literal(EventDestinationScope.PLATFORM), + scope: z.literal(EventDestinationScope.PLATFORM), }) -export const EventDestination = DiscriminatedUnion('scope', [ +export const EventDestination = z.discriminatedUnion('scope', [ EventDestinationPlatformScope, EventDestinationProjectScope, ]) -export type EventDestination = Static +export type EventDestination = z.infer export * from './dto' diff --git a/packages/shared/src/lib/ee/git-repo/index.ts b/packages/shared/src/lib/ee/git-repo/index.ts index 66acc6ecccf..43c54f28e5c 100644 --- a/packages/shared/src/lib/ee/git-repo/index.ts +++ b/packages/shared/src/lib/ee/git-repo/index.ts @@ -1,25 +1,25 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema } from '../../core/common/base-model' +import { z } from 'zod' +import { BaseModelSchema, Nullable } from '../../core/common/base-model' export enum GitBranchType { PRODUCTION = 'PRODUCTION', DEVELOPMENT = 'DEVELOPMENT', } -export const GitRepo = Type.Object({ +export const GitRepo = z.object({ ...BaseModelSchema, - remoteUrl: Type.String(), - branch: Type.String(), - branchType: Type.Enum(GitBranchType), - projectId: Type.String(), - sshPrivateKey: Type.String(), - slug: Type.String(), + remoteUrl: z.string(), + branch: z.string(), + branchType: z.nativeEnum(GitBranchType), + projectId: z.string(), + sshPrivateKey: Nullable(z.string()), + slug: z.string(), }) -export type GitRepo = Static +export type GitRepo = z.infer -export const GitRepoWithoutSensitiveData = Type.Omit(GitRepo, ['sshPrivateKey']) -export type GitRepoWithoutSensitiveData = Static +export const GitRepoWithoutSensitiveData = GitRepo.omit({ sshPrivateKey: true }) +export type GitRepoWithoutSensitiveData = z.infer export enum GitPushOperationType { PUSH_FLOW = 'PUSH_FLOW', @@ -29,55 +29,39 @@ export enum GitPushOperationType { PUSH_EVERYTHING = 'PUSH_EVERYTHING', } -export const PushFlowsGitRepoRequest = Type.Object({ - type: Type.Union([Type.Literal(GitPushOperationType.PUSH_FLOW), Type.Literal(GitPushOperationType.DELETE_FLOW)]), - commitMessage: Type.String({ - minLength: 1, - }), - externalFlowIds: Type.Array(Type.String()), +export const PushFlowsGitRepoRequest = z.object({ + type: z.union([z.literal(GitPushOperationType.PUSH_FLOW), z.literal(GitPushOperationType.DELETE_FLOW)]), + commitMessage: z.string().min(1), + externalFlowIds: z.array(z.string()), }) -export type PushFlowsGitRepoRequest = Static +export type PushFlowsGitRepoRequest = z.infer -export const PushTablesGitRepoRequest = Type.Object({ - type: Type.Union([Type.Literal(GitPushOperationType.PUSH_TABLE), Type.Literal(GitPushOperationType.DELETE_TABLE)]), - commitMessage: Type.String({ - minLength: 1, - }), - externalTableIds: Type.Array(Type.String()), +export const PushTablesGitRepoRequest = z.object({ + type: z.union([z.literal(GitPushOperationType.PUSH_TABLE), z.literal(GitPushOperationType.DELETE_TABLE)]), + commitMessage: z.string().min(1), + externalTableIds: z.array(z.string()), }) -export type PushTablesGitRepoRequest = Static +export type PushTablesGitRepoRequest = z.infer -export const PushEverythingGitRepoRequest = Type.Object({ - type: Type.Literal(GitPushOperationType.PUSH_EVERYTHING), - commitMessage: Type.String({ - minLength: 1, - }), +export const PushEverythingGitRepoRequest = z.object({ + type: z.literal(GitPushOperationType.PUSH_EVERYTHING), + commitMessage: z.string().min(1), }) -export type PushEverythingGitRepoRequest = Static +export type PushEverythingGitRepoRequest = z.infer -export const PushGitRepoRequest = Type.Union([PushFlowsGitRepoRequest, PushTablesGitRepoRequest, PushEverythingGitRepoRequest]) +export const PushGitRepoRequest = z.union([PushFlowsGitRepoRequest, PushTablesGitRepoRequest, PushEverythingGitRepoRequest]) -export type PushGitRepoRequest = Static +export type PushGitRepoRequest = z.infer -export const ConfigureRepoRequest = Type.Object({ - projectId: Type.String({ - minLength: 1, - }), - remoteUrl: Type.String({ - pattern: '^git@', - }), - branch: Type.String({ - minLength: 1, - }), - branchType: Type.Enum(GitBranchType), - sshPrivateKey: Type.String({ - minLength: 1, - }), - slug: Type.String({ - minLength: 1, - }), +export const ConfigureRepoRequest = z.object({ + projectId: z.string().min(1), + remoteUrl: z.string().regex(/^git@/), + branch: z.string().min(1), + branchType: z.nativeEnum(GitBranchType), + sshPrivateKey: z.string().min(1), + slug: z.string().min(1), }) -export type ConfigureRepoRequest = Static \ No newline at end of file +export type ConfigureRepoRequest = z.infer diff --git a/packages/shared/src/lib/ee/managed-authn/managed-authn-requests.ts b/packages/shared/src/lib/ee/managed-authn/managed-authn-requests.ts index 45de93107b0..1752a818e85 100644 --- a/packages/shared/src/lib/ee/managed-authn/managed-authn-requests.ts +++ b/packages/shared/src/lib/ee/managed-authn/managed-authn-requests.ts @@ -1,8 +1,8 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const ManagedAuthnRequestBody = Type.Object({ - //if you change this you need to update the embed-sdk I can't import it there because it can't have dependencies - externalAccessToken: Type.String(), +export const ManagedAuthnRequestBody = z.object({ + //if you change this you need to update the embed-sdk I can't import it there because it can't have dependencies + externalAccessToken: z.string(), }) -export type ManagedAuthnRequestBody = Static +export type ManagedAuthnRequestBody = z.infer diff --git a/packages/shared/src/lib/ee/oauth-apps/oauth-app.ts b/packages/shared/src/lib/ee/oauth-apps/oauth-app.ts index 4c28ad818f8..3e766110571 100644 --- a/packages/shared/src/lib/ee/oauth-apps/oauth-app.ts +++ b/packages/shared/src/lib/ee/oauth-apps/oauth-app.ts @@ -1,26 +1,26 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common/base-model' -export const OAuthApp = Type.Object({ +export const OAuthApp = z.object({ ...BaseModelSchema, - pieceName: Type.String(), - platformId: Type.String(), - clientId: Type.String(), + pieceName: z.string(), + platformId: z.string(), + clientId: z.string(), }) -export type OAuthApp = Static +export type OAuthApp = z.infer -export const UpsertOAuth2AppRequest = Type.Object({ - pieceName: Type.String(), - clientId: Type.String(), - clientSecret: Type.String(), +export const UpsertOAuth2AppRequest = z.object({ + pieceName: z.string(), + clientId: z.string(), + clientSecret: z.string(), }) -export type UpsertOAuth2AppRequest = Static +export type UpsertOAuth2AppRequest = z.infer -export const ListOAuth2AppRequest = Type.Object({ - limit: Type.Optional(Type.Number()), - cursor: Type.Optional(Type.String()), +export const ListOAuth2AppRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), }) -export type ListOAuth2AppRequest = Static \ No newline at end of file +export type ListOAuth2AppRequest = z.infer diff --git a/packages/shared/src/lib/ee/otp/otp-model.ts b/packages/shared/src/lib/ee/otp/otp-model.ts index 3fc2abb7dd8..95f4c12cdd1 100644 --- a/packages/shared/src/lib/ee/otp/otp-model.ts +++ b/packages/shared/src/lib/ee/otp/otp-model.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { OtpType } from './otp-type' @@ -10,12 +10,12 @@ export enum OtpState { CONFIRMED = 'CONFIRMED', } -export const OtpModel = Type.Object({ +export const OtpModel = z.object({ ...BaseModelSchema, - type: Type.Enum(OtpType), + type: z.nativeEnum(OtpType), identityId: ApId, - value: Type.String(), - state: Type.Enum(OtpState), + value: z.string(), + state: z.nativeEnum(OtpState), }) -export type OtpModel = Static +export type OtpModel = z.infer diff --git a/packages/shared/src/lib/ee/otp/otp-requests.ts b/packages/shared/src/lib/ee/otp/otp-requests.ts index 47b2c81af24..66d8ada6364 100644 --- a/packages/shared/src/lib/ee/otp/otp-requests.ts +++ b/packages/shared/src/lib/ee/otp/otp-requests.ts @@ -1,11 +1,10 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { OtpType } from './otp-type' -export const CreateOtpRequestBody = Type.Object({ - email: Type.String(), - type: Type.Enum(OtpType), +export const CreateOtpRequestBody = z.object({ + email: z.string(), + type: z.nativeEnum(OtpType), }) -export type CreateOtpRequestBody = Static - +export type CreateOtpRequestBody = z.infer diff --git a/packages/shared/src/lib/ee/product-embed/app-credentials/app-credentials-requests.ts b/packages/shared/src/lib/ee/product-embed/app-credentials/app-credentials-requests.ts index b26fd06b9fc..84d52f649ac 100644 --- a/packages/shared/src/lib/ee/product-embed/app-credentials/app-credentials-requests.ts +++ b/packages/shared/src/lib/ee/product-embed/app-credentials/app-credentials-requests.ts @@ -1,40 +1,40 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { AppCredentialType } from './app-credentials' -export const ListAppCredentialsRequest = Type.Object({ - projectId: Type.String(), - appName: Type.Optional(Type.String()), - limit: Type.Optional(Type.Number()), - cursor: Type.Optional(Type.String({})), +export const ListAppCredentialsRequest = z.object({ + projectId: z.string(), + appName: z.string().optional(), + limit: z.coerce.number().optional(), + cursor: z.string().optional(), }) -export type ListAppCredentialsRequest = Static +export type ListAppCredentialsRequest = z.infer -export const UpsertApiKeyCredentialRequest = Type.Object({ - id: Type.Optional(Type.String()), - appName: Type.String(), - projectId: Type.String(), - settings: Type.Object({ - type: Type.Literal(AppCredentialType.API_KEY), +export const UpsertApiKeyCredentialRequest = z.object({ + id: z.string().optional(), + appName: z.string(), + projectId: z.string(), + settings: z.object({ + type: z.literal(AppCredentialType.API_KEY), }), }) -export const UpsertOAuth2CredentialRequest = Type.Object({ - id: Type.Optional(Type.String()), - appName: Type.String(), - projectId: Type.String(), - settings: Type.Object({ - type: Type.Literal(AppCredentialType.OAUTH2), - authUrl: Type.String({}), - scope: Type.String(), - tokenUrl: Type.String({}), - clientId: Type.String({}), - clientSecret: Type.String({}), +export const UpsertOAuth2CredentialRequest = z.object({ + id: z.string().optional(), + appName: z.string(), + projectId: z.string(), + settings: z.object({ + type: z.literal(AppCredentialType.OAUTH2), + authUrl: z.string(), + scope: z.string(), + tokenUrl: z.string(), + clientId: z.string(), + clientSecret: z.string(), }), }) -export const UpsertAppCredentialRequest = Type.Union([UpsertOAuth2CredentialRequest, UpsertApiKeyCredentialRequest]) +export const UpsertAppCredentialRequest = z.union([UpsertOAuth2CredentialRequest, UpsertApiKeyCredentialRequest]) -export type UpsertAppCredentialRequest = Static \ No newline at end of file +export type UpsertAppCredentialRequest = z.infer diff --git a/packages/shared/src/lib/ee/product-embed/connection-keys/connection-requests.ts b/packages/shared/src/lib/ee/product-embed/connection-keys/connection-requests.ts index 8a85f7d256c..efcb0cd66f2 100644 --- a/packages/shared/src/lib/ee/product-embed/connection-keys/connection-requests.ts +++ b/packages/shared/src/lib/ee/product-embed/connection-keys/connection-requests.ts @@ -1,51 +1,51 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { ConnectionKeyType } from './connection-key' -export const GetOrDeleteConnectionFromTokenRequest = Type.Object({ - projectId: Type.String(), - token: Type.String(), - appName: Type.String(), +export const GetOrDeleteConnectionFromTokenRequest = z.object({ + projectId: z.string(), + token: z.string(), + appName: z.string(), }) -export type GetOrDeleteConnectionFromTokenRequest = Static +export type GetOrDeleteConnectionFromTokenRequest = z.infer -export const ListConnectionKeysRequest = Type.Object({ - limit: Type.Optional(Type.Number()), - cursor: Type.Optional(Type.String({})), - projectId: Type.String(), +export const ListConnectionKeysRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + projectId: z.string(), }) -export type ListConnectionKeysRequest = Static +export type ListConnectionKeysRequest = z.infer -export const UpsertApiKeyConnectionFromToken = Type.Object({ - appCredentialId: Type.String(), - apiKey: Type.String(), - token: Type.String(), +export const UpsertApiKeyConnectionFromToken = z.object({ + appCredentialId: z.string(), + apiKey: z.string(), + token: z.string(), }) -export type UpsertApiKeyConnectionFromToken = Static +export type UpsertApiKeyConnectionFromToken = z.infer -export const UpsertOAuth2ConnectionFromToken = Type.Object({ - appCredentialId: Type.String(), - props: Type.Record(Type.String(), Type.Any()), - token: Type.String(), - code: Type.String(), - redirectUrl: Type.String(), +export const UpsertOAuth2ConnectionFromToken = z.object({ + appCredentialId: z.string(), + props: z.record(z.string(), z.any()), + token: z.string(), + code: z.string(), + redirectUrl: z.string(), }) -export type UpsertOAuth2ConnectionFromToken = Static +export type UpsertOAuth2ConnectionFromToken = z.infer -export const UpsertConnectionFromToken = Type.Union([UpsertApiKeyConnectionFromToken, UpsertOAuth2ConnectionFromToken]) +export const UpsertConnectionFromToken = z.union([UpsertApiKeyConnectionFromToken, UpsertOAuth2ConnectionFromToken]) -export type UpsertConnectionFromToken = Static +export type UpsertConnectionFromToken = z.infer -export const UpsertSigningKeyConnection = Type.Object({ - projectId: Type.String(), - settings: Type.Object({ - type: Type.Literal(ConnectionKeyType.SIGNING_KEY), +export const UpsertSigningKeyConnection = z.object({ + projectId: z.string(), + settings: z.object({ + type: z.literal(ConnectionKeyType.SIGNING_KEY), }), }) -export type UpsertSigningKeyConnection = Static \ No newline at end of file +export type UpsertSigningKeyConnection = z.infer diff --git a/packages/shared/src/lib/ee/project-members/project-member-request.ts b/packages/shared/src/lib/ee/project-members/project-member-request.ts index 4ccc790611c..e689a7d5c1c 100644 --- a/packages/shared/src/lib/ee/project-members/project-member-request.ts +++ b/packages/shared/src/lib/ee/project-members/project-member-request.ts @@ -1,34 +1,34 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const AcceptInvitationRequest = Type.Object({ - token: Type.String(), +export const AcceptInvitationRequest = z.object({ + token: z.string(), }) -export type AcceptInvitationRequest = Static +export type AcceptInvitationRequest = z.infer -export const ListProjectMembersRequestQuery = Type.Object({ - projectId: Type.String(), - projectRoleId: Type.Optional(Type.String()), - cursor: Type.Optional(Type.String()), - limit: Type.Optional(Type.Number()), +export const ListProjectMembersRequestQuery = z.object({ + projectId: z.string(), + projectRoleId: z.string().optional(), + cursor: z.string().optional(), + limit: z.coerce.number().optional(), }) -export type ListProjectMembersRequestQuery = Static +export type ListProjectMembersRequestQuery = z.infer -export const AcceptProjectResponse = Type.Object({ - registered: Type.Boolean(), +export const AcceptProjectResponse = z.object({ + registered: z.boolean(), }) -export type AcceptProjectResponse = Static +export type AcceptProjectResponse = z.infer -export const UpdateProjectMemberRoleRequestBody = Type.Object({ - role: Type.String(), +export const UpdateProjectMemberRoleRequestBody = z.object({ + role: z.string(), }) -export type UpdateProjectMemberRoleRequestBody = Static +export type UpdateProjectMemberRoleRequestBody = z.infer -export const GetCurrentProjectMemberRoleQuery = Type.Object({ - projectId: Type.String(), +export const GetCurrentProjectMemberRoleQuery = z.object({ + projectId: z.string(), }) -export type GetCurrentProjectMemberRoleQuery = Static< typeof GetCurrentProjectMemberRoleQuery> \ No newline at end of file +export type GetCurrentProjectMemberRoleQuery = z.infer diff --git a/packages/shared/src/lib/ee/project-members/project-member.ts b/packages/shared/src/lib/ee/project-members/project-member.ts index 25dea18b9ec..5515b3eae07 100644 --- a/packages/shared/src/lib/ee/project-members/project-member.ts +++ b/packages/shared/src/lib/ee/project-members/project-member.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { UserWithMetaInformation } from '../../core/user/user' @@ -7,22 +7,20 @@ import { ProjectRole } from '../../management/project-role/project-role' export type ProjectMemberId = string -export const ProjectMember = Type.Object({ +export const ProjectMember = z.object({ ...BaseModelSchema, platformId: ApId, userId: ApId, - projectId: Type.String(), + projectId: z.string(), projectRoleId: ApId, -}, { - description: 'Project member is which user is assigned to a project.', -}) +}).describe('Project member is which user is assigned to a project.') -export type ProjectMember = Static +export type ProjectMember = z.infer -export const ProjectMemberWithUser = Type.Composite([ProjectMember, Type.Object({ +export const ProjectMemberWithUser = ProjectMember.extend({ user: UserWithMetaInformation, projectRole: ProjectRole, project: ProjectMetaData, -})]) +}) -export type ProjectMemberWithUser = Static \ No newline at end of file +export type ProjectMemberWithUser = z.infer diff --git a/packages/shared/src/lib/ee/scim/index.ts b/packages/shared/src/lib/ee/scim/index.ts index afd680db8f9..59fb30b0b7d 100644 --- a/packages/shared/src/lib/ee/scim/index.ts +++ b/packages/shared/src/lib/ee/scim/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { isNil } from '../../core/common' import { PlatformRole } from '../../core/user' @@ -13,159 +13,159 @@ export const SCIM_SCHEMA_SCHEMA = 'urn:ietf:params:scim:schemas:core:2.0:Schema' export const SCIM_CUSTOM_USER_ATTRIBUTES_SCHEMA = 'urn:ietf:params:scim:schemas:activepieces:1.0:CustomUserAttributes' -export const ScimName = Type.Object({ - givenName: Type.Optional(Type.String()), - familyName: Type.Optional(Type.String()), - formatted: Type.Optional(Type.String()), +export const ScimName = z.object({ + givenName: z.string().optional(), + familyName: z.string().optional(), + formatted: z.string().optional(), }) -export const ScimEmail = Type.Object({ - value: Type.String(), - type: Type.Optional(Type.String()), - primary: Type.Optional(Type.Boolean()), +export const ScimEmail = z.object({ + value: z.string(), + type: z.string().optional(), + primary: z.boolean().optional(), }) -export const ScimMeta = Type.Object({ - resourceType: Type.String(), - created: Type.Optional(Type.String()), - lastModified: Type.Optional(Type.String()), - location: Type.Optional(Type.String()), +export const ScimMeta = z.object({ + resourceType: z.string(), + created: z.string().optional(), + lastModified: z.string().optional(), + location: z.string().optional(), }) -export const ScimCustomAttributesSchema = { - [SCIM_CUSTOM_USER_ATTRIBUTES_SCHEMA]: Type.Optional(Type.Object({ - platformRole: Type.Enum(PlatformRole), - })), +const ScimCustomAttributesSchema = { + [SCIM_CUSTOM_USER_ATTRIBUTES_SCHEMA]: z.object({ + platformRole: z.nativeEnum(PlatformRole), + }).optional(), } -export const ScimUserResource = Type.Object({ - schemas: Type.Array(Type.String()), - id: Type.String(), - externalId: Type.Optional(Type.String()), - userName: Type.String(), - name: Type.Optional(ScimName), - emails: Type.Optional(Type.Array(ScimEmail)), - active: Type.Boolean(), +export const ScimUserResource = z.object({ + schemas: z.array(z.string()), + id: z.string(), + externalId: z.string().optional(), + userName: z.string(), + name: ScimName.optional(), + emails: z.array(ScimEmail).optional(), + active: z.boolean(), meta: ScimMeta, }) -export type ScimUserResource = Static +export type ScimUserResource = z.infer -export const CreateScimUserRequest = Type.Object({ - schemas: Type.Array(Type.String()), - externalId: Type.Optional(Type.String()), - userName: Type.String(), - name: Type.Optional(ScimName), - emails: Type.Optional(Type.Array(ScimEmail)), - active: Type.Optional(Type.Boolean()), +export const CreateScimUserRequest = z.object({ + schemas: z.array(z.string()), + externalId: z.string().optional(), + userName: z.string(), + name: ScimName.optional(), + emails: z.array(ScimEmail).optional(), + active: z.boolean().optional(), ...ScimCustomAttributesSchema, }) -export type CreateScimUserRequest = Static +export type CreateScimUserRequest = z.infer -export const ReplaceScimUserRequest = Type.Object({ - schemas: Type.Array(Type.String()), - externalId: Type.Optional(Type.String()), - userName: Type.String(), - name: Type.Optional(ScimName), - emails: Type.Optional(Type.Array(ScimEmail)), - active: Type.Optional(Type.Boolean()), +export const ReplaceScimUserRequest = z.object({ + schemas: z.array(z.string()), + externalId: z.string().optional(), + userName: z.string(), + name: ScimName.optional(), + emails: z.array(ScimEmail).optional(), + active: z.boolean().optional(), ...ScimCustomAttributesSchema, }) -export type ReplaceScimUserRequest = Static +export type ReplaceScimUserRequest = z.infer -export const ScimGroupMember = Type.Object({ - value: Type.String(), - display: Type.Optional(Type.String()), - $ref: Type.Optional(Type.String()), +export const ScimGroupMember = z.object({ + value: z.string(), + display: z.string().optional(), + $ref: z.string().optional(), }) -export type ScimGroupMember = Static +export type ScimGroupMember = z.infer -export const ScimGroupResource = Type.Object({ - schemas: Type.Array(Type.String()), - id: Type.String(), - externalId: Type.Optional(Type.String()), - displayName: Type.String(), - members: Type.Array(ScimGroupMember), +export const ScimGroupResource = z.object({ + schemas: z.array(z.string()), + id: z.string(), + externalId: z.string().optional(), + displayName: z.string(), + members: z.array(ScimGroupMember), meta: ScimMeta, }) -export type ScimGroupResource = Static +export type ScimGroupResource = z.infer -export const CreateScimGroupRequest = Type.Object({ - schemas: Type.Array(Type.String()), - externalId: Type.Optional(Type.String()), - displayName: Type.String(), - members: Type.Optional(Type.Array(ScimGroupMember)), +export const CreateScimGroupRequest = z.object({ + schemas: z.array(z.string()), + externalId: z.string().optional(), + displayName: z.string(), + members: z.array(ScimGroupMember).optional(), }) -export type CreateScimGroupRequest = Static +export type CreateScimGroupRequest = z.infer -export const ReplaceScimGroupRequest = Type.Object({ - schemas: Type.Array(Type.String()), - externalId: Type.Optional(Type.String()), - displayName: Type.String(), - members: Type.Optional(Type.Array(ScimGroupMember)), +export const ReplaceScimGroupRequest = z.object({ + schemas: z.array(z.string()), + externalId: z.string().optional(), + displayName: z.string(), + members: z.array(ScimGroupMember).optional(), }) -export type ReplaceScimGroupRequest = Static +export type ReplaceScimGroupRequest = z.infer -export const ScimPatchOperation = Type.Object({ - op: Type.Union([ - Type.Literal('add'), - Type.Literal('remove'), - Type.Literal('replace'), - Type.Literal('Add'), - Type.Literal('Remove'), - Type.Literal('Replace'), +export const ScimPatchOperation = z.object({ + op: z.union([ + z.literal('add'), + z.literal('remove'), + z.literal('replace'), + z.literal('Add'), + z.literal('Remove'), + z.literal('Replace'), ]), - path: Type.Optional(Type.String()), - value: Type.Optional(Type.Unknown()), + path: z.string().optional(), + value: z.unknown().optional(), }) -export type ScimPatchOperation = Static +export type ScimPatchOperation = z.infer -export const ScimPatchRequest = Type.Object({ - schemas: Type.Array(Type.String()), - Operations: Type.Array(ScimPatchOperation), +export const ScimPatchRequest = z.object({ + schemas: z.array(z.string()), + Operations: z.array(ScimPatchOperation), }) -export type ScimPatchRequest = Static +export type ScimPatchRequest = z.infer -export const ScimListResponse = Type.Object({ - schemas: Type.Array(Type.String()), - totalResults: Type.Number(), - startIndex: Type.Number(), - itemsPerPage: Type.Number(), - Resources: Type.Array(Type.Unknown()), +export const ScimListResponse = z.object({ + schemas: z.array(z.string()), + totalResults: z.number(), + startIndex: z.number(), + itemsPerPage: z.number(), + Resources: z.array(z.unknown()), }) -export type ScimListResponse = Static +export type ScimListResponse = z.infer -export const ScimErrorResponse = Type.Object({ - schemas: Type.Array(Type.String()), - status: Type.String(), - detail: Type.Optional(Type.String()), - scimType: Type.Optional(Type.String()), +export const ScimErrorResponse = z.object({ + schemas: z.array(z.string()), + status: z.string(), + detail: z.string().optional(), + scimType: z.string().optional(), }) -export type ScimErrorResponse = Static +export type ScimErrorResponse = z.infer -export const ScimListQueryParams = Type.Object({ - filter: Type.Optional(Type.String()), - startIndex: Type.Optional(Type.Number({ default: 1 })), - count: Type.Optional(Type.Number({ default: 100 })), +export const ScimListQueryParams = z.object({ + filter: z.string().optional(), + startIndex: z.coerce.number().default(1).optional(), + count: z.coerce.number().default(100).optional(), }) -export type ScimListQueryParams = Static +export type ScimListQueryParams = z.infer -export const ScimResourceId = Type.Object({ - id: Type.String(), +export const ScimResourceId = z.object({ + id: z.string(), }) -export type ScimResourceId = Static +export type ScimResourceId = z.infer export class ScimError extends Error { constructor(public status: number, public detail: string) { @@ -191,4 +191,4 @@ export const parseScimFilter = (filter: string | undefined, field: string) => { return match[1].toLowerCase().trim() } return undefined -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/ee/secret-managers/dto.ts b/packages/shared/src/lib/ee/secret-managers/dto.ts index cea7dcee198..50cd081f144 100644 --- a/packages/shared/src/lib/ee/secret-managers/dto.ts +++ b/packages/shared/src/lib/ee/secret-managers/dto.ts @@ -1,5 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' -import { DiscriminatedUnion } from '../../core/common' +import { z } from 'zod' export enum SecretManagerProviderId { HASHICORP = 'hashicorp', @@ -12,69 +11,69 @@ export enum SecretManagerProviderId { * Hashicorp Provider Config */ -export const HashicorpProviderConfigSchema = Type.Object({ - url: Type.String(), - namespace: Type.Optional(Type.String()), - roleId: Type.String(), - secretId: Type.String(), +export const HashicorpProviderConfigSchema = z.object({ + url: z.string(), + namespace: z.string().optional(), + roleId: z.string(), + secretId: z.string(), }) -export type HashicorpProviderConfig = Static +export type HashicorpProviderConfig = z.infer /** * AWS Provider Config */ -export const AWSProviderConfigSchema = Type.Object({ - accessKeyId: Type.String(), - secretAccessKey: Type.String(), - region: Type.String(), +export const AWSProviderConfigSchema = z.object({ + accessKeyId: z.string(), + secretAccessKey: z.string(), + region: z.string(), }) -export type AWSProviderConfig = Static +export type AWSProviderConfig = z.infer /** * Cyberark Conjur Provider Config */ -export const CyberarkConjurProviderConfigSchema = Type.Object({ - organizationAccountName: Type.String(), - loginId: Type.String(), - url: Type.String(), - apiKey: Type.String(), +export const CyberarkConjurProviderConfigSchema = z.object({ + organizationAccountName: z.string(), + loginId: z.string(), + url: z.string(), + apiKey: z.string(), }) -export type CyberarkConjurProviderConfig = Static +export type CyberarkConjurProviderConfig = z.infer /** * 1Password Provider Config */ -export const OnePasswordProviderConfigSchema = Type.Object({ - serviceAccountToken: Type.String(), +export const OnePasswordProviderConfigSchema = z.object({ + serviceAccountToken: z.string(), }) -export type OnePasswordProviderConfig = Static +export type OnePasswordProviderConfig = z.infer -export const ConnectSecretManagerRequestSchema = DiscriminatedUnion('providerId', [ - Type.Object({ - providerId: Type.Literal(SecretManagerProviderId.HASHICORP), +export const ConnectSecretManagerRequestSchema = z.discriminatedUnion('providerId', [ + z.object({ + providerId: z.literal(SecretManagerProviderId.HASHICORP), config: HashicorpProviderConfigSchema, }), - Type.Object({ - providerId: Type.Literal(SecretManagerProviderId.AWS), + z.object({ + providerId: z.literal(SecretManagerProviderId.AWS), config: AWSProviderConfigSchema, }), - Type.Object({ - providerId: Type.Literal(SecretManagerProviderId.CYBERARK), + z.object({ + providerId: z.literal(SecretManagerProviderId.CYBERARK), config: CyberarkConjurProviderConfigSchema, }), - Type.Object({ - providerId: Type.Literal(SecretManagerProviderId.ONEPASSWORD), + z.object({ + providerId: z.literal(SecretManagerProviderId.ONEPASSWORD), config: OnePasswordProviderConfigSchema, }), ]) -export type ConnectSecretManagerRequest = Static +export type ConnectSecretManagerRequest = z.infer -export const DisconnectSecretManagerRequestSchema = Type.Object({ - providerId: Type.Enum(SecretManagerProviderId), +export const DisconnectSecretManagerRequestSchema = z.object({ + providerId: z.nativeEnum(SecretManagerProviderId), }) -export type DisconnectSecretManagerRequest = Static +export type DisconnectSecretManagerRequest = z.infer diff --git a/packages/shared/src/lib/ee/secret-managers/index.ts b/packages/shared/src/lib/ee/secret-managers/index.ts index 79d50a7799d..dbfb11449b8 100644 --- a/packages/shared/src/lib/ee/secret-managers/index.ts +++ b/packages/shared/src/lib/ee/secret-managers/index.ts @@ -1,79 +1,79 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema, DiscriminatedUnion } from '../../core/common' +import { z } from 'zod' +import { BaseModelSchema, Nullable } from '../../core/common' import { AWSProviderConfigSchema, CyberarkConjurProviderConfigSchema, HashicorpProviderConfigSchema, OnePasswordProviderConfigSchema, SecretManagerProviderId } from './dto' export * from './dto' -export const SecretManagerConfigSchema = Type.Union([ +export const SecretManagerConfigSchema = z.union([ HashicorpProviderConfigSchema, AWSProviderConfigSchema, CyberarkConjurProviderConfigSchema, OnePasswordProviderConfigSchema, ]) -export type SecretManagerConfig = Static +export type SecretManagerConfig = z.infer -export const SecretManagerEntitySchema = Type.Object({ +export const SecretManagerEntitySchema = z.object({ ...BaseModelSchema, - platformId: Type.String(), - providerId: Type.String(), - auth: SecretManagerConfigSchema, + platformId: z.string(), + providerId: z.string(), + auth: Nullable(SecretManagerConfigSchema), }) -export type SecretManager = Static +export type SecretManager = z.infer -export const SecretManagerFieldSchema = Type.Object({ - displayName: Type.String(), - placeholder: Type.String(), - optional: Type.Optional(Type.Boolean()), - type: Type.Union([Type.Literal('text'), Type.Literal('password')]), +export const SecretManagerFieldSchema = z.object({ + displayName: z.string(), + placeholder: z.string(), + optional: z.boolean().optional(), + type: z.union([z.literal('text'), z.literal('password')]), }) -export const SecretManagerSecretParamSchema = Type.Object({ - name: Type.String(), - displayName: Type.String(), - placeholder: Type.String(), - optional: Type.Optional(Type.Boolean()), - type: Type.Union([Type.Literal('text'), Type.Literal('password')]), +export const SecretManagerSecretParamSchema = z.object({ + name: z.string(), + displayName: z.string(), + placeholder: z.string(), + optional: z.boolean().optional(), + type: z.union([z.literal('text'), z.literal('password')]), }) -export const SecretManagerProviderMetaDataBaseSchema = Type.Object({ - id: Type.Enum(SecretManagerProviderId), - name: Type.String(), - logo: Type.String(), - connection: Type.Optional(Type.Object({ - configured: Type.Boolean(), - connected: Type.Boolean(), - })), +export const SecretManagerProviderMetaDataBaseSchema = z.object({ + id: z.nativeEnum(SecretManagerProviderId), + name: z.string(), + logo: z.string(), + connection: z.object({ + configured: z.boolean(), + connected: z.boolean(), + }).optional(), }) -export const SecretManagerProviderMetaDataSchema = DiscriminatedUnion('id', [ - Type.Object({ - ...SecretManagerProviderMetaDataBaseSchema.properties, - id: Type.Literal(SecretManagerProviderId.HASHICORP), - fields: Type.Record(Type.KeyOf(HashicorpProviderConfigSchema), SecretManagerFieldSchema), - secretParams: Type.Array(SecretManagerSecretParamSchema), +export const SecretManagerProviderMetaDataSchema = z.discriminatedUnion('id', [ + z.object({ + ...SecretManagerProviderMetaDataBaseSchema.shape, + id: z.literal(SecretManagerProviderId.HASHICORP), + fields: z.record(z.enum(Object.keys(HashicorpProviderConfigSchema.shape) as [string, ...string[]]), SecretManagerFieldSchema), + secretParams: z.array(SecretManagerSecretParamSchema), }), - Type.Object({ - ...SecretManagerProviderMetaDataBaseSchema.properties, - id: Type.Literal(SecretManagerProviderId.AWS), - fields: Type.Record(Type.KeyOf(AWSProviderConfigSchema), SecretManagerFieldSchema), - secretParams: Type.Array(SecretManagerSecretParamSchema), + z.object({ + ...SecretManagerProviderMetaDataBaseSchema.shape, + id: z.literal(SecretManagerProviderId.AWS), + fields: z.record(z.enum(Object.keys(AWSProviderConfigSchema.shape) as [string, ...string[]]), SecretManagerFieldSchema), + secretParams: z.array(SecretManagerSecretParamSchema), }), - Type.Object({ - ...SecretManagerProviderMetaDataBaseSchema.properties, - id: Type.Literal(SecretManagerProviderId.CYBERARK), - fields: Type.Record(Type.KeyOf(CyberarkConjurProviderConfigSchema), SecretManagerFieldSchema), - secretParams: Type.Array(SecretManagerSecretParamSchema), + z.object({ + ...SecretManagerProviderMetaDataBaseSchema.shape, + id: z.literal(SecretManagerProviderId.CYBERARK), + fields: z.record(z.enum(Object.keys(CyberarkConjurProviderConfigSchema.shape) as [string, ...string[]]), SecretManagerFieldSchema), + secretParams: z.array(SecretManagerSecretParamSchema), }), - Type.Object({ - ...SecretManagerProviderMetaDataBaseSchema.properties, - id: Type.Literal(SecretManagerProviderId.ONEPASSWORD), - fields: Type.Record(Type.KeyOf(OnePasswordProviderConfigSchema), SecretManagerFieldSchema), - secretParams: Type.Array(SecretManagerSecretParamSchema), + z.object({ + ...SecretManagerProviderMetaDataBaseSchema.shape, + id: z.literal(SecretManagerProviderId.ONEPASSWORD), + fields: z.record(z.enum(Object.keys(OnePasswordProviderConfigSchema.shape) as [string, ...string[]]), SecretManagerFieldSchema), + secretParams: z.array(SecretManagerSecretParamSchema), }), ]) -export type SecretManagerProviderMetaData = Static +export type SecretManagerProviderMetaData = z.infer -export const SecretManagerFieldsSeparator = '|ap_sep_v1|' \ No newline at end of file +export const SecretManagerFieldsSeparator = '|ap_sep_v1|' diff --git a/packages/shared/src/lib/ee/signing-key/signing-key-model.ts b/packages/shared/src/lib/ee/signing-key/signing-key-model.ts index 4d2c0c6c5a6..1bf7ea5814c 100644 --- a/packages/shared/src/lib/ee/signing-key/signing-key-model.ts +++ b/packages/shared/src/lib/ee/signing-key/signing-key-model.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' @@ -8,13 +8,13 @@ export enum KeyAlgorithm { export type SigningKeyId = ApId -export const SigningKey = Type.Object({ +export const SigningKey = z.object({ ...BaseModelSchema, platformId: ApId, - publicKey: Type.String(), - displayName: Type.String(), + publicKey: z.string(), + displayName: z.string(), /* algorithm used to generate this key pair */ - algorithm: Type.Enum(KeyAlgorithm), + algorithm: z.nativeEnum(KeyAlgorithm), }) -export type SigningKey = Static +export type SigningKey = z.infer diff --git a/packages/shared/src/lib/ee/signing-key/signing-key.request.ts b/packages/shared/src/lib/ee/signing-key/signing-key.request.ts index 5bd1316dd08..e7fc3726f14 100644 --- a/packages/shared/src/lib/ee/signing-key/signing-key.request.ts +++ b/packages/shared/src/lib/ee/signing-key/signing-key.request.ts @@ -1,7 +1,7 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const AddSigningKeyRequestBody = Type.Object({ - displayName: Type.String(), +export const AddSigningKeyRequestBody = z.object({ + displayName: z.string(), }) -export type AddSigningKeyRequestBody = Static +export type AddSigningKeyRequestBody = z.infer diff --git a/packages/shared/src/lib/management/ai-providers/index.ts b/packages/shared/src/lib/management/ai-providers/index.ts index 2c97d296ed7..d4f6f2cd78e 100644 --- a/packages/shared/src/lib/management/ai-providers/index.ts +++ b/packages/shared/src/lib/management/ai-providers/index.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema, DiscriminatedUnion } from '../../core/common/base-model' +import { z } from 'zod' +import { BaseModelSchema } from '../../core/common/base-model' export enum AIProviderName { OPENAI = 'openai', @@ -18,85 +18,82 @@ export enum AIProviderModelType { TEXT = 'text', } -export const BaseAIProviderAuthConfig = Type.Object({ - apiKey: Type.String(), +export const BaseAIProviderAuthConfig = z.object({ + apiKey: z.string(), }) -export type BaseAIProviderAuthConfig = Static +export type BaseAIProviderAuthConfig = z.infer export const AnthropicProviderAuthConfig = BaseAIProviderAuthConfig -export type AnthropicProviderAuthConfig = Static +export type AnthropicProviderAuthConfig = z.infer -export const ActivePiecesProviderAuthConfig = Type.Intersect([ - BaseAIProviderAuthConfig, - Type.Object({ - apiKeyHash: Type.String(), - }), -]) -export type ActivePiecesProviderAuthConfig = Static +export const ActivePiecesProviderAuthConfig = BaseAIProviderAuthConfig.extend({ + apiKeyHash: z.string(), +}) +export type ActivePiecesProviderAuthConfig = z.infer export const OpenAICompatibleProviderAuthConfig = BaseAIProviderAuthConfig -export type OpenAICompatibleProviderAuthConfig = Static +export type OpenAICompatibleProviderAuthConfig = z.infer export const CloudflareGatewayProviderAuthConfig = BaseAIProviderAuthConfig -export type CloudflareGatewayProviderAuthConfig = Static +export type CloudflareGatewayProviderAuthConfig = z.infer export const AzureProviderAuthConfig = BaseAIProviderAuthConfig -export type AzureProviderAuthConfig = Static +export type AzureProviderAuthConfig = z.infer export const GoogleProviderAuthConfig = BaseAIProviderAuthConfig -export type GoogleProviderAuthConfig = Static +export type GoogleProviderAuthConfig = z.infer export const OpenAIProviderAuthConfig = BaseAIProviderAuthConfig -export type OpenAIProviderAuthConfig = Static +export type OpenAIProviderAuthConfig = z.infer export const OpenRouterProviderAuthConfig = BaseAIProviderAuthConfig -export type OpenRouterProviderAuthConfig = Static +export type OpenRouterProviderAuthConfig = z.infer -export const AnthropicProviderConfig = Type.Object({}) -export type AnthropicProviderConfig = Static +export const AnthropicProviderConfig = z.object({}) +export type AnthropicProviderConfig = z.infer -export const ActivePiecesProviderConfig = Type.Object({}) -export type ActivePiecesProviderConfig = Static +export const ActivePiecesProviderConfig = z.object({}) +export type ActivePiecesProviderConfig = z.infer -export const ProviderModelConfig = Type.Object({ - modelId: Type.String(), - modelName: Type.String(), - modelType: Type.Enum(AIProviderModelType), +export const ProviderModelConfig = z.object({ + modelId: z.string(), + modelName: z.string(), + modelType: z.nativeEnum(AIProviderModelType), }) -export type ProviderModelConfig = Static +export type ProviderModelConfig = z.infer -export const OpenAICompatibleProviderConfig = Type.Object({ - apiKeyHeader: Type.String(), - baseUrl: Type.String(), - models: Type.Array(ProviderModelConfig), +export const OpenAICompatibleProviderConfig = z.object({ + apiKeyHeader: z.string(), + baseUrl: z.string(), + models: z.array(ProviderModelConfig), }) -export type OpenAICompatibleProviderConfig = Static +export type OpenAICompatibleProviderConfig = z.infer -export const CloudflareGatewayProviderConfig = Type.Object({ - accountId: Type.String(), - gatewayId: Type.String(), - models: Type.Array(ProviderModelConfig), - vertexProject: Type.Optional(Type.String()), - vertexRegion: Type.Optional(Type.String()), +export const CloudflareGatewayProviderConfig = z.object({ + accountId: z.string(), + gatewayId: z.string(), + models: z.array(ProviderModelConfig), + vertexProject: z.string().optional(), + vertexRegion: z.string().optional(), }) -export type CloudflareGatewayProviderConfig = Static +export type CloudflareGatewayProviderConfig = z.infer -export const AzureProviderConfig = Type.Object({ - resourceName: Type.String(), +export const AzureProviderConfig = z.object({ + resourceName: z.string(), }) -export type AzureProviderConfig = Static +export type AzureProviderConfig = z.infer -export const GoogleProviderConfig = Type.Object({}) -export type GoogleProviderConfig = Static +export const GoogleProviderConfig = z.object({}) +export type GoogleProviderConfig = z.infer -export const OpenAIProviderConfig = Type.Object({}) -export type OpenAIProviderConfig = Static +export const OpenAIProviderConfig = z.object({}) +export type OpenAIProviderConfig = z.infer -export const OpenRouterProviderConfig = Type.Object({}) -export type OpenRouterProviderConfig = Static +export const OpenRouterProviderConfig = z.object({}) +export type OpenRouterProviderConfig = z.infer -export const AIProviderAuthConfig = Type.Union([ +export const AIProviderAuthConfig = z.union([ AnthropicProviderAuthConfig, AzureProviderAuthConfig, GoogleProviderAuthConfig, @@ -106,9 +103,9 @@ export const AIProviderAuthConfig = Type.Union([ OpenAICompatibleProviderAuthConfig, ActivePiecesProviderAuthConfig, ]) -export type AIProviderAuthConfig = Static +export type AIProviderAuthConfig = z.infer // Order matters, put schemas with required fields first, empty ones last. This is to avoid empty objects matching any object. -export const AIProviderConfig = Type.Union([ +export const AIProviderConfig = z.union([ OpenAICompatibleProviderConfig, CloudflareGatewayProviderConfig, AzureProviderConfig, @@ -118,114 +115,111 @@ export const AIProviderConfig = Type.Union([ OpenRouterProviderConfig, ActivePiecesProviderConfig, ]) -export type AIProviderConfig = Static +export type AIProviderConfig = z.infer -const ProviderConfigUnion = DiscriminatedUnion('provider', [ - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.OPENAI), +const ProviderConfigUnion = z.discriminatedUnion('provider', [ + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.OPENAI), config: OpenAIProviderConfig, auth: OpenAIProviderAuthConfig, }), - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.OPENROUTER), + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.OPENROUTER), config: OpenRouterProviderConfig, auth: OpenRouterProviderAuthConfig, }), - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.ANTHROPIC), + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.ANTHROPIC), config: AnthropicProviderConfig, auth: AnthropicProviderAuthConfig, }), - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.AZURE), + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.AZURE), config: AzureProviderConfig, auth: AzureProviderAuthConfig, }), - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.GOOGLE), + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.GOOGLE), config: GoogleProviderConfig, auth: GoogleProviderAuthConfig, }), - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.CLOUDFLARE_GATEWAY), + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.CLOUDFLARE_GATEWAY), config: CloudflareGatewayProviderConfig, auth: CloudflareGatewayProviderAuthConfig, }), - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.CUSTOM), + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.CUSTOM), config: OpenAICompatibleProviderConfig, auth: OpenAICompatibleProviderAuthConfig, }), - Type.Object({ - displayName: Type.String({ minLength: 1 }), - provider: Type.Literal(AIProviderName.ACTIVEPIECES), + z.object({ + displayName: z.string().min(1), + provider: z.literal(AIProviderName.ACTIVEPIECES), config: ActivePiecesProviderConfig, auth: ActivePiecesProviderAuthConfig, }), ]) -export const AIProvider = Type.Intersect([ - Type.Object({ ...BaseModelSchema }), - ProviderConfigUnion, - Type.Object({ - displayName: Type.String({ minLength: 1 }), - platformId: Type.String(), - }), -]) +export const AIProvider = z.object({ + ...BaseModelSchema, + displayName: z.string().min(1), + platformId: z.string(), +}).and(ProviderConfigUnion) -export type AIProvider = Static +export type AIProvider = z.infer -export const AIProviderWithoutSensitiveData = Type.Object({ - id: Type.String(), - name: Type.String(), - provider: Type.Enum(AIProviderName), +export const AIProviderWithoutSensitiveData = z.object({ + id: z.string(), + name: z.string(), + provider: z.nativeEnum(AIProviderName), config: AIProviderConfig, }) -export type AIProviderWithoutSensitiveData = Static +export type AIProviderWithoutSensitiveData = z.infer -export const AIProviderModel = Type.Object({ - id: Type.String(), - name: Type.String(), - type: Type.Enum(AIProviderModelType), +export const AIProviderModel = z.object({ + id: z.string(), + name: z.string(), + type: z.nativeEnum(AIProviderModelType), }) -export type AIProviderModel = Static +export type AIProviderModel = z.infer export const CreateAIProviderRequest = ProviderConfigUnion -export type CreateAIProviderRequest = Static +export type CreateAIProviderRequest = z.infer -export const UpdateAIProviderRequest = Type.Object({ - displayName: Type.String({ minLength: 1 }), - config: Type.Optional(AIProviderConfig), - auth: Type.Optional(AIProviderAuthConfig), +export const UpdateAIProviderRequest = z.object({ + displayName: z.string().min(1), + config: AIProviderConfig.optional(), + auth: AIProviderAuthConfig.optional(), }) -export type UpdateAIProviderRequest = Static +export type UpdateAIProviderRequest = z.infer -export const GetProviderConfigResponse = Type.Object({ - provider: Type.Enum(AIProviderName), +export const GetProviderConfigResponse = z.object({ + provider: z.nativeEnum(AIProviderName), config: AIProviderConfig, auth: AIProviderAuthConfig, }) -export type GetProviderConfigResponse = Static +export type GetProviderConfigResponse = z.infer -export const AIErrorResponse = Type.Object({ - error: Type.Object({ - message: Type.String(), - type: Type.String(), - code: Type.String(), +export const AIErrorResponse = z.object({ + error: z.object({ + message: z.string(), + type: z.string(), + code: z.string(), }), }) -export type AIErrorResponse = Static +export type AIErrorResponse = z.infer /** * Splits a Cloudflare Gateway model ID into provider and model, i.e. "google-vertex-ai/google/gemini-2.5-pro" -> { provider: "google-vertex-ai", model: "google/gemini-2.5-pro" }. * @param modelId - The model ID to split. diff --git a/packages/shared/src/lib/management/analytics/index.ts b/packages/shared/src/lib/management/analytics/index.ts index 675068d1e08..0fa01f639f0 100644 --- a/packages/shared/src/lib/management/analytics/index.ts +++ b/packages/shared/src/lib/management/analytics/index.ts @@ -1,6 +1,6 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { FlowStatus } from '../../automation/flows/flow' -import { BaseModelSchema, Nullable } from '../../core/common/base-model' +import { BaseModelSchema, DateOrString, Nullable } from '../../core/common/base-model' import { UserWithMetaInformation } from '../../core/user' export enum AnalyticsTimePeriod { @@ -11,62 +11,62 @@ export enum AnalyticsTimePeriod { LAST_YEAR = 'last-year', } -export const AnalyticsRunsUsageItem = Type.Object({ - day: Type.String(), - flowId: Type.String(), - runs: Type.Number(), +export const AnalyticsRunsUsageItem = z.object({ + day: z.string(), + flowId: z.string(), + runs: z.number(), }) -export type AnalyticsRunsUsageItem = Static +export type AnalyticsRunsUsageItem = z.infer -export const AnalyticsRunsUsage = Type.Array(AnalyticsRunsUsageItem) -export type AnalyticsRunsUsage = Static +export const AnalyticsRunsUsage = z.array(AnalyticsRunsUsageItem) +export type AnalyticsRunsUsage = z.infer -export const AnalyticsFlowReportItem = Type.Object({ - flowId: Type.String(), - flowName: Type.String(), - projectId: Type.String(), - projectName: Type.String(), - status: Type.Enum(FlowStatus), - timeSavedPerRun: Nullable(Type.Number()), - ownerId: Nullable(Type.String()), +export const AnalyticsFlowReportItem = z.object({ + flowId: z.string(), + flowName: z.string(), + projectId: z.string(), + projectName: z.string(), + status: z.nativeEnum(FlowStatus), + timeSavedPerRun: Nullable(z.number()), + ownerId: Nullable(z.string()), }) -export type AnalyticsFlowReportItem = Static +export type AnalyticsFlowReportItem = z.infer -export const AnalyticsFlowReport = Type.Array(AnalyticsFlowReportItem) -export type AnalyticsFlowReport = Static +export const AnalyticsFlowReport = z.array(AnalyticsFlowReportItem) +export type AnalyticsFlowReport = z.infer -export const PlatformAnalyticsReport = Type.Object({ +export const PlatformAnalyticsReport = z.object({ ...BaseModelSchema, - cachedAt: Type.String(), + cachedAt: DateOrString, runs: AnalyticsRunsUsage, - outdated: Type.Boolean(), + outdated: z.boolean(), flows: AnalyticsFlowReport, - platformId: Type.String(), - users: Type.Array(UserWithMetaInformation), + platformId: z.string(), + users: z.array(UserWithMetaInformation), }) -export type PlatformAnalyticsReport = Static +export type PlatformAnalyticsReport = z.infer -export const ProjectLeaderboardItem = Type.Object({ - projectId: Type.String(), - projectName: Type.String(), - flowCount: Type.Number(), - minutesSaved: Nullable(Type.Number()), +export const ProjectLeaderboardItem = z.object({ + projectId: z.string(), + projectName: z.string(), + flowCount: z.number(), + minutesSaved: Nullable(z.number()), }) -export type ProjectLeaderboardItem = Static +export type ProjectLeaderboardItem = z.infer -export const UserLeaderboardItem = Type.Object({ - userId: Type.String(), - flowCount: Type.Number(), - minutesSaved: Nullable(Type.Number()), +export const UserLeaderboardItem = z.object({ + userId: z.string(), + flowCount: z.number(), + minutesSaved: Nullable(z.number()), }) -export type UserLeaderboardItem = Static +export type UserLeaderboardItem = z.infer -export const AnalyticsReportRequest = Type.Object({ - timePeriod: Type.Optional(Type.Enum(AnalyticsTimePeriod)), +export const AnalyticsReportRequest = z.object({ + timePeriod: z.nativeEnum(AnalyticsTimePeriod).optional(), }) -export type AnalyticsReportRequest = Static +export type AnalyticsReportRequest = z.infer -export const LeaderboardRequest = Type.Object({ - timePeriod: Type.Enum(AnalyticsTimePeriod), +export const LeaderboardRequest = z.object({ + timePeriod: z.nativeEnum(AnalyticsTimePeriod), }) -export type LeaderboardRequest = Static \ No newline at end of file +export type LeaderboardRequest = z.infer diff --git a/packages/shared/src/lib/management/invitations/index.ts b/packages/shared/src/lib/management/invitations/index.ts index 538259c8c3b..bb5474b98a4 100644 --- a/packages/shared/src/lib/management/invitations/index.ts +++ b/packages/shared/src/lib/management/invitations/index.ts @@ -1,4 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { BaseModelSchema, Nullable, NullableEnum } from '../../core/common' import { PlatformRole } from '../../core/user/index' import { ProjectRole } from '../project-role/project-role' @@ -13,55 +13,55 @@ export enum InvitationStatus { ACCEPTED = 'ACCEPTED', } -export const UserInvitation = Type.Object({ +export const UserInvitation = z.object({ ...BaseModelSchema, - email: Type.String(), - status: Type.Enum(InvitationStatus), - type: Type.Enum(InvitationType), - platformId: Type.String(), - platformRole: NullableEnum(Type.Enum(PlatformRole)), - projectId: Nullable(Type.String()), - projectRoleId: Nullable(Type.String()), + email: z.string(), + status: z.nativeEnum(InvitationStatus), + type: z.nativeEnum(InvitationType), + platformId: z.string(), + platformRole: NullableEnum(PlatformRole), + projectId: Nullable(z.string()), + projectRoleId: Nullable(z.string()), projectRole: Nullable(ProjectRole), }) -export type UserInvitation = Static +export type UserInvitation = z.infer -export const UserInvitationWithLink = Type.Composite([UserInvitation, Type.Object({ - link: Type.Optional(Type.String()), -})]) +export const UserInvitationWithLink = UserInvitation.extend({ + link: z.string().optional(), +}) -export type UserInvitationWithLink = Static +export type UserInvitationWithLink = z.infer -export const SendUserInvitationRequest = Type.Union([ - Type.Object({ - type: Type.Literal(InvitationType.PROJECT), - email: Type.String(), - projectId: Type.String(), - projectRole: Type.String(), +export const SendUserInvitationRequest = z.union([ + z.object({ + type: z.literal(InvitationType.PROJECT), + email: z.string(), + projectId: z.string(), + projectRole: z.string(), }), - Type.Object({ - type: Type.Literal(InvitationType.PLATFORM), - email: Type.String(), - platformRole: Type.Enum(PlatformRole), + z.object({ + type: z.literal(InvitationType.PLATFORM), + email: z.string(), + platformRole: z.nativeEnum(PlatformRole), }), ]) -export type SendUserInvitationRequest = Static +export type SendUserInvitationRequest = z.infer -export const AcceptUserInvitationRequest = Type.Object({ - invitationToken: Type.String(), +export const AcceptUserInvitationRequest = z.object({ + invitationToken: z.string(), }) -export type AcceptUserInvitationRequest = Static +export type AcceptUserInvitationRequest = z.infer -export const ListUserInvitationsRequest = Type.Object({ - limit: Type.Optional(Type.Number()), - cursor: Type.Optional(Type.String()), - type: Type.Enum(InvitationType), - projectId: Nullable(Type.String()), - status: Type.Optional(Type.Enum(InvitationStatus)), +export const ListUserInvitationsRequest = z.object({ + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + type: z.nativeEnum(InvitationType), + projectId: Nullable(z.string()), + status: z.nativeEnum(InvitationStatus).optional(), }) -export type ListUserInvitationsRequest = Static +export type ListUserInvitationsRequest = z.infer diff --git a/packages/shared/src/lib/management/platform/platform.model.ts b/packages/shared/src/lib/management/platform/platform.model.ts index 1947fdce377..79108eb59a6 100644 --- a/packages/shared/src/lib/management/platform/platform.model.ts +++ b/packages/shared/src/lib/management/platform/platform.model.ts @@ -1,5 +1,5 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema, Nullable } from '../../core/common/base-model' +import { z } from 'zod' +import { BaseModelSchema, DateOrString, Nullable } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { FederatedAuthnProviderConfig, FederatedAuthnProviderConfigWithoutSensitiveData } from '../../core/federated-authn' @@ -15,15 +15,15 @@ export enum PlatformUsageMetric { ACTIVE_FLOWS = 'active-flows', } -export const PlatformUsage = Type.Object({ - totalAiCreditsUsed: Type.Number(), - totalAiCreditsUsedThisMonth: Type.Number(), - aiCreditsRemaining: Type.Number(), - aiCreditsLimit: Type.Number(), - activeFlows: Type.Number(), +export const PlatformUsage = z.object({ + totalAiCreditsUsed: z.number(), + totalAiCreditsUsedThisMonth: z.number(), + aiCreditsRemaining: z.number(), + aiCreditsLimit: z.number(), + activeFlows: z.number(), }) -export type PlatformUsage = Static +export type PlatformUsage = z.infer export enum PlanName { STANDARD = 'standard', @@ -47,116 +47,113 @@ export enum AiCreditsAutoTopUpState { DISABLED = 'disabled', } -export const PlatformPlan = Type.Object({ +export const PlatformPlan = z.object({ ...BaseModelSchema, // TODO: We have to use the enum when we finalize the plan names - plan: Type.Optional(Type.String()), - platformId: Type.String(), - includedAiCredits: Type.Number(), - lastFreeAiCreditsRenewalDate: Type.Optional(Type.String()), - - tablesEnabled: Type.Boolean(), - eventStreamingEnabled: Type.Boolean(), - aiCreditsAutoTopUpState: Type.Enum(AiCreditsAutoTopUpState), - aiCreditsAutoTopUpThreshold: Type.Optional(Type.Number()), - aiCreditsAutoTopUpCreditsToAdd: Type.Optional(Type.Number()), - maxAutoTopUpCreditsMonthly: Nullable(Type.Number()), - - environmentsEnabled: Type.Boolean(), - analyticsEnabled: Type.Boolean(), - showPoweredBy: Type.Boolean(), - auditLogEnabled: Type.Boolean(), - embeddingEnabled: Type.Boolean(), - managePiecesEnabled: Type.Boolean(), - manageTemplatesEnabled: Type.Boolean(), - customAppearanceEnabled: Type.Boolean(), - teamProjectsLimit: Type.Enum(TeamProjectsLimit), - projectRolesEnabled: Type.Boolean(), - customDomainsEnabled: Type.Boolean(), - globalConnectionsEnabled: Type.Boolean(), - customRolesEnabled: Type.Boolean(), - apiKeysEnabled: Type.Boolean(), - ssoEnabled: Type.Boolean(), - secretManagersEnabled: Type.Boolean(), - scimEnabled: Type.Boolean(), - licenseKey: Type.Optional(Type.String()), - licenseExpiresAt: Type.Optional(Type.String()), - stripeCustomerId: Type.Optional(Type.String()), - stripeSubscriptionId: Type.Optional(Type.String()), - stripeSubscriptionStatus: Type.Optional(Type.String()), - stripeSubscriptionStartDate: Type.Optional(Type.Number()), - stripeSubscriptionEndDate: Type.Optional(Type.Number()), - stripeSubscriptionCancelDate: Type.Optional(Type.Number()), - - projectsLimit: Nullable(Type.Number()), - activeFlowsLimit: Nullable(Type.Number()), - - dedicatedWorkers: Nullable(Type.Object({ - trustedEnvironment: Type.Boolean(), + plan: Nullable(z.string()), + platformId: z.string(), + includedAiCredits: z.number(), + lastFreeAiCreditsRenewalDate: Nullable(DateOrString), + + tablesEnabled: z.boolean(), + eventStreamingEnabled: z.boolean(), + aiCreditsAutoTopUpState: z.nativeEnum(AiCreditsAutoTopUpState), + aiCreditsAutoTopUpThreshold: Nullable(z.number()), + aiCreditsAutoTopUpCreditsToAdd: Nullable(z.number()), + maxAutoTopUpCreditsMonthly: Nullable(z.number()), + + environmentsEnabled: z.boolean(), + analyticsEnabled: z.boolean(), + showPoweredBy: z.boolean(), + auditLogEnabled: z.boolean(), + embeddingEnabled: z.boolean(), + managePiecesEnabled: z.boolean(), + manageTemplatesEnabled: z.boolean(), + customAppearanceEnabled: z.boolean(), + teamProjectsLimit: z.nativeEnum(TeamProjectsLimit), + projectRolesEnabled: z.boolean(), + customDomainsEnabled: z.boolean(), + globalConnectionsEnabled: z.boolean(), + customRolesEnabled: z.boolean(), + apiKeysEnabled: z.boolean(), + ssoEnabled: z.boolean(), + secretManagersEnabled: z.boolean(), + scimEnabled: z.boolean(), + licenseKey: Nullable(z.string()), + licenseExpiresAt: Nullable(DateOrString), + stripeCustomerId: Nullable(z.string()), + stripeSubscriptionId: Nullable(z.string()), + stripeSubscriptionStatus: Nullable(z.string()), + stripeSubscriptionStartDate: Nullable(z.number()), + stripeSubscriptionEndDate: Nullable(z.number()), + stripeSubscriptionCancelDate: Nullable(z.number()), + + projectsLimit: Nullable(z.number()), + activeFlowsLimit: Nullable(z.number()), + + dedicatedWorkers: Nullable(z.object({ + trustedEnvironment: z.boolean(), })), }) -export type PlatformPlan = Static +export type PlatformPlan = z.infer -export const PlatformPlanLimits = Type.Omit(PlatformPlan, ['id', 'platformId', 'created', 'updated']) -export type PlatformPlanLimits = Static +export const PlatformPlanLimits = PlatformPlan.omit({ id: true, platformId: true, created: true, updated: true }) +export type PlatformPlanLimits = z.infer export type PlatformPlanWithOnlyLimits = Omit -export const Platform = Type.Object({ +export const Platform = z.object({ ...BaseModelSchema, ownerId: ApId, - name: Type.String(), - primaryColor: Type.String(), - logoIconUrl: Type.String(), - fullLogoUrl: Type.String(), - favIconUrl: Type.String(), + name: z.string(), + primaryColor: z.string(), + logoIconUrl: z.string(), + fullLogoUrl: z.string(), + favIconUrl: z.string(), /** * @deprecated Use projects filter instead. */ - filteredPieceNames: Type.Array(Type.String()), + filteredPieceNames: z.array(z.string()), /** * @deprecated Use projects filter instead. */ - filteredPieceBehavior: Type.Enum(FilteredPieceBehavior), - cloudAuthEnabled: Type.Boolean(), - enforceAllowedAuthDomains: Type.Boolean(), - allowedAuthDomains: Type.Array(Type.String()), + filteredPieceBehavior: z.nativeEnum(FilteredPieceBehavior), + cloudAuthEnabled: z.boolean(), + enforceAllowedAuthDomains: z.boolean(), + allowedAuthDomains: z.array(z.string()), federatedAuthProviders: FederatedAuthnProviderConfig, - emailAuthEnabled: Type.Boolean(), - pinnedPieces: Type.Array(Type.String()), + emailAuthEnabled: z.boolean(), + pinnedPieces: z.array(z.string()), }) -export type Platform = Static +export type Platform = z.infer -export const PlatformWithoutSensitiveData = Type.Composite([Type.Object({ +export const PlatformWithoutSensitiveData = z.object({ federatedAuthProviders: Nullable(FederatedAuthnProviderConfigWithoutSensitiveData), plan: PlatformPlanLimits, - usage: Type.Optional(PlatformUsage), -}), Type.Pick(Platform, [ - 'id', - 'created', - 'updated', - 'ownerId', - 'name', - 'plan', - 'primaryColor', - 'logoIconUrl', - 'fullLogoUrl', - 'favIconUrl', - 'filteredPieceNames', - 'filteredPieceBehavior', - 'cloudAuthEnabled', - 'enforceAllowedAuthDomains', - 'allowedAuthDomains', - 'emailAuthEnabled', - 'pinnedPieces', -])]) -export type PlatformWithoutSensitiveData = Static - -export const PlatformBillingInformation = Type.Object({ + usage: PlatformUsage.optional(), + id: z.string(), + created: DateOrString, + updated: DateOrString, + ownerId: ApId, + name: z.string(), + primaryColor: z.string(), + logoIconUrl: z.string(), + fullLogoUrl: z.string(), + favIconUrl: z.string(), + filteredPieceNames: z.array(z.string()), + filteredPieceBehavior: z.nativeEnum(FilteredPieceBehavior), + cloudAuthEnabled: z.boolean(), + enforceAllowedAuthDomains: z.boolean(), + allowedAuthDomains: z.array(z.string()), + emailAuthEnabled: z.boolean(), + pinnedPieces: z.array(z.string()), +}) +export type PlatformWithoutSensitiveData = z.infer + +export const PlatformBillingInformation = z.object({ plan: PlatformPlan, usage: PlatformUsage, - nextBillingDate: Type.Number(), - nextBillingAmount: Type.Number(), - cancelAt: Type.Optional(Type.Number()), + nextBillingDate: z.number(), + nextBillingAmount: z.number(), + cancelAt: Nullable(z.number()), }) -export type PlatformBillingInformation = Static - +export type PlatformBillingInformation = z.infer diff --git a/packages/shared/src/lib/management/platform/platform.request.ts b/packages/shared/src/lib/management/platform/platform.request.ts index 9f6025f6c2d..cde7be8a714 100644 --- a/packages/shared/src/lib/management/platform/platform.request.ts +++ b/packages/shared/src/lib/management/platform/platform.request.ts @@ -1,55 +1,53 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { SAFE_STRING_PATTERN } from '../../core/common' import { ApId } from '../../core/common/id-generator' import { ApMultipartFile } from '../../core/common/multipart-file' import { FederatedAuthnProviderConfig } from '../../core/federated-authn' import { FilteredPieceBehavior } from './platform.model' -export const Base64EncodedFile = Type.Object({ - base64: Type.String(), - mimetype: Type.String(), +export const Base64EncodedFile = z.object({ + base64: z.string(), + mimetype: z.string(), }) -export type Base64EncodedFile = Static - -export const UpdatePlatformRequestBody = Type.Object({ - name: Type.Optional(Type.String({ - pattern: SAFE_STRING_PATTERN, - })), - primaryColor: Type.Optional(Type.String()), - logoIcon: Type.Optional(ApMultipartFile), - fullLogo: Type.Optional(ApMultipartFile), - favIcon: Type.Optional(ApMultipartFile), - filteredPieceNames: Type.Optional(Type.Array(Type.String())), - filteredPieceBehavior: Type.Optional(Type.Enum(FilteredPieceBehavior)), - federatedAuthProviders: Type.Optional(FederatedAuthnProviderConfig), - cloudAuthEnabled: Type.Optional(Type.Boolean()), - emailAuthEnabled: Type.Optional(Type.Boolean()), - allowedAuthDomains: Type.Optional(Type.Array(Type.String())), - enforceAllowedAuthDomains: Type.Optional(Type.Boolean()), - pinnedPieces: Type.Optional(Type.Array(Type.String())), +export type Base64EncodedFile = z.infer + +export const UpdatePlatformRequestBody = z.object({ + name: z.string().regex(new RegExp(SAFE_STRING_PATTERN)).optional(), + primaryColor: z.string().optional(), + logoIcon: ApMultipartFile.optional(), + fullLogo: ApMultipartFile.optional(), + favIcon: ApMultipartFile.optional(), + filteredPieceNames: z.array(z.string()).optional(), + filteredPieceBehavior: z.nativeEnum(FilteredPieceBehavior).optional(), + federatedAuthProviders: FederatedAuthnProviderConfig.optional(), + cloudAuthEnabled: z.boolean().optional(), + emailAuthEnabled: z.boolean().optional(), + allowedAuthDomains: z.array(z.string()).optional(), + enforceAllowedAuthDomains: z.boolean().optional(), + pinnedPieces: z.array(z.string()).optional(), }) -export type UpdatePlatformRequestBody = Static +export type UpdatePlatformRequestBody = z.infer -export const AdminRetryRunsRequestBody = Type.Object({ - runIds: Type.Optional(Type.Array(ApId)), - createdAfter: Type.String(), - createdBefore: Type.String(), +export const AdminRetryRunsRequestBody = z.object({ + runIds: z.array(ApId).optional(), + createdAfter: z.string(), + createdBefore: z.string(), }) -export type AdminRetryRunsRequestBody = Static +export type AdminRetryRunsRequestBody = z.infer -export const ApplyLicenseKeyByEmailRequestBody = Type.Object({ - email: Type.String(), - licenseKey: Type.String(), +export const ApplyLicenseKeyByEmailRequestBody = z.object({ + email: z.string(), + licenseKey: z.string(), }) -export type ApplyLicenseKeyByEmailRequestBody = Static +export type ApplyLicenseKeyByEmailRequestBody = z.infer -export const IncreaseAICreditsForPlatformRequestBody = Type.Object({ - platformId: Type.String(), - amountInUsd: Type.Number(), +export const IncreaseAICreditsForPlatformRequestBody = z.object({ + platformId: z.string(), + amountInUsd: z.number(), }) -export type IncreaseAICreditsForPlatformRequestBody = Static \ No newline at end of file +export type IncreaseAICreditsForPlatformRequestBody = z.infer diff --git a/packages/shared/src/lib/management/project-role/project-role.request.ts b/packages/shared/src/lib/management/project-role/project-role.request.ts index a7b0e891a3c..08ba0c1a67e 100644 --- a/packages/shared/src/lib/management/project-role/project-role.request.ts +++ b/packages/shared/src/lib/management/project-role/project-role.request.ts @@ -1,29 +1,24 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { RoleType, SAFE_STRING_PATTERN } from '../../core/common' -export const CreateProjectRoleRequestBody = Type.Object({ - name: Type.String({ - pattern: SAFE_STRING_PATTERN, - }), - permissions: Type.Array(Type.String()), - type: Type.Enum(RoleType), +export const CreateProjectRoleRequestBody = z.object({ + name: z.string().regex(new RegExp(SAFE_STRING_PATTERN)), + permissions: z.array(z.string()), + type: z.nativeEnum(RoleType), }) -export type CreateProjectRoleRequestBody = Static +export type CreateProjectRoleRequestBody = z.infer -export const UpdateProjectRoleRequestBody = Type.Object({ - name: Type.Optional(Type.String({ - pattern: SAFE_STRING_PATTERN, - })), - permissions: Type.Optional(Type.Array(Type.String())), +export const UpdateProjectRoleRequestBody = z.object({ + name: z.string().regex(new RegExp(SAFE_STRING_PATTERN)).optional(), + permissions: z.array(z.string()).optional(), }) -export type UpdateProjectRoleRequestBody = Static +export type UpdateProjectRoleRequestBody = z.infer -export const ListProjectMembersForProjectRoleRequestQuery = Type.Object({ - cursor: Type.Optional(Type.String()), - limit: Type.Optional(Type.Number()), +export const ListProjectMembersForProjectRoleRequestQuery = z.object({ + cursor: z.string().optional(), + limit: z.coerce.number().optional(), }) -export type ListProjectMembersForProjectRoleRequestQuery = Static - +export type ListProjectMembersForProjectRoleRequestQuery = z.infer diff --git a/packages/shared/src/lib/management/project-role/project-role.ts b/packages/shared/src/lib/management/project-role/project-role.ts index 225e222c511..1a2f46e31ea 100644 --- a/packages/shared/src/lib/management/project-role/project-role.ts +++ b/packages/shared/src/lib/management/project-role/project-role.ts @@ -1,13 +1,13 @@ -import { Static, Type } from '@sinclair/typebox' -import { BaseModelSchema } from '../../core/common' +import { z } from 'zod' +import { BaseModelSchema, Nullable } from '../../core/common' -export const ProjectRole = Type.Object({ +export const ProjectRole = z.object({ ...BaseModelSchema, - name: Type.String(), - permissions: Type.Array(Type.String()), - platformId: Type.Optional(Type.String()), - type: Type.String(), - userCount: Type.Optional(Type.Number()), + name: z.string(), + permissions: z.array(z.string()), + platformId: Nullable(z.string()), + type: z.string(), + userCount: z.number().optional(), }) -export type ProjectRole = Static +export type ProjectRole = z.infer diff --git a/packages/shared/src/lib/management/project/project-requests.ts b/packages/shared/src/lib/management/project/project-requests.ts index 013bdd6e3b7..18206b0c0f6 100644 --- a/packages/shared/src/lib/management/project/project-requests.ts +++ b/packages/shared/src/lib/management/project/project-requests.ts @@ -1,44 +1,40 @@ -import { Static, Type } from '@sinclair/typebox' -import { Nullable } from '../../core/common/base-model' +import { z } from 'zod' +import { Nullable, OptionalArrayFromQuery } from '../../core/common/base-model' import { Metadata } from '../../core/common/metadata' import { SAFE_STRING_PATTERN } from '../../core/common/security' import { PiecesFilterType, ProjectIcon, ProjectType } from './project' -export const UpdateProjectPlatformRequest = Type.Object({ - releasesEnabled: Type.Optional(Type.Boolean()), - displayName: Type.Optional(Type.String({ - pattern: SAFE_STRING_PATTERN, - })), - externalId: Type.Optional(Type.String()), - metadata: Type.Optional(Metadata), - icon: Type.Optional(ProjectIcon), - plan: Type.Optional(Type.Object({ - pieces: Type.Optional(Type.Array(Type.String({}))), - piecesFilterType: Type.Optional(Type.Enum(PiecesFilterType)), - })), - globalConnectionExternalIds: Type.Optional(Type.Array(Type.String())), +export const UpdateProjectPlatformRequest = z.object({ + releasesEnabled: z.boolean().optional(), + displayName: z.string().regex(new RegExp(SAFE_STRING_PATTERN)).optional(), + externalId: z.string().optional(), + metadata: Metadata.optional(), + icon: ProjectIcon.optional(), + plan: z.object({ + pieces: z.array(z.string()).optional(), + piecesFilterType: z.nativeEnum(PiecesFilterType).optional(), + }).optional(), + globalConnectionExternalIds: z.array(z.string()).optional(), }) -export type UpdateProjectPlatformRequest = Static +export type UpdateProjectPlatformRequest = z.infer -export const CreatePlatformProjectRequest = Type.Object({ - displayName: Type.String({ - pattern: SAFE_STRING_PATTERN, - }), - externalId: Nullable(Type.String()), +export const CreatePlatformProjectRequest = z.object({ + displayName: z.string().regex(new RegExp(SAFE_STRING_PATTERN)), + externalId: Nullable(z.string()), metadata: Nullable(Metadata), - maxConcurrentJobs: Nullable(Type.Number()), - globalConnectionExternalIds: Type.Optional(Type.Array(Type.String())), + maxConcurrentJobs: Nullable(z.number()), + globalConnectionExternalIds: z.array(z.string()).optional(), }) -export type CreatePlatformProjectRequest = Static +export type CreatePlatformProjectRequest = z.infer -export const ListProjectRequestForPlatformQueryParams = Type.Object({ - externalId: Type.Optional(Type.String()), - limit: Type.Optional(Type.Number({})), - cursor: Type.Optional(Type.String({})), - displayName: Type.Optional(Type.String()), - types: Type.Optional(Type.Array(Type.Enum(ProjectType))), +export const ListProjectRequestForPlatformQueryParams = z.object({ + externalId: z.string().optional(), + limit: z.coerce.number().optional(), + cursor: z.string().optional(), + displayName: z.string().optional(), + types: OptionalArrayFromQuery(z.nativeEnum(ProjectType)), }) -export type ListProjectRequestForPlatformQueryParams = Static \ No newline at end of file +export type ListProjectRequestForPlatformQueryParams = z.infer diff --git a/packages/shared/src/lib/management/project/project.ts b/packages/shared/src/lib/management/project/project.ts index 7db922d44a4..c5ac994c820 100755 --- a/packages/shared/src/lib/management/project/project.ts +++ b/packages/shared/src/lib/management/project/project.ts @@ -1,6 +1,6 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { SAFE_STRING_PATTERN } from '../../core/common' -import { BaseModelSchema, Nullable } from '../../core/common/base-model' +import { BaseModelSchema, DateOrString, Nullable } from '../../core/common/base-model' import { ApId } from '../../core/common/id-generator' import { Metadata } from '../../core/common/metadata' @@ -25,7 +25,7 @@ export enum PiecesFilterType { NONE = 'NONE', ALLOWED = 'ALLOWED', } - + export enum ProjectType { TEAM = 'TEAM', PERSONAL = 'PERSONAL', @@ -35,86 +35,78 @@ export enum ProjectType { export type ProjectPlanId = string -export const ProjectPlan = Type.Object({ +export const ProjectPlan = z.object({ ...BaseModelSchema, - projectId: Type.String(), - locked: Type.Boolean({ default: false }), - name: Type.String(), - piecesFilterType: Type.Enum(PiecesFilterType), - pieces: Type.Array(Type.String()), + projectId: z.string(), + locked: z.boolean().default(false), + name: z.string(), + piecesFilterType: z.nativeEnum(PiecesFilterType), + pieces: z.array(z.string()), }) -export type ProjectPlan = Static +export type ProjectPlan = z.infer -export const ProjectIcon = Type.Object({ - color: Type.Enum(ColorName), +export const ProjectIcon = z.object({ + color: z.nativeEnum(ColorName), }) -export type ProjectIcon = Static +export type ProjectIcon = z.infer -export const Project = Type.Object({ +export const Project = z.object({ ...BaseModelSchema, - deleted: Nullable(Type.String()), - ownerId: Type.String(), - displayName: Type.String(), + deleted: Nullable(DateOrString), + ownerId: z.string(), + displayName: z.string(), platformId: ApId, - maxConcurrentJobs: Nullable(Type.Number()), - type: Type.Enum(ProjectType), + maxConcurrentJobs: Nullable(z.number()), + type: z.nativeEnum(ProjectType), icon: ProjectIcon, - externalId: Type.Optional(Type.String()), - releasesEnabled: Type.Boolean(), + externalId: Nullable(z.string()), + releasesEnabled: z.boolean(), metadata: Nullable(Metadata), }) -const projectAnalytics = Type.Object( - { - totalUsers: Type.Number(), - activeUsers: Type.Number(), - totalFlows: Type.Number(), - activeFlows: Type.Number(), - }, -) -export type Project = Static - -export const ProjectWithLimits = Type.Composite([ - Type.Omit(Project, ['deleted']), - Type.Object({ - plan: ProjectPlan, - analytics: projectAnalytics, - }), - -]) - -export const UpdateProjectRequestInCommunity = Type.Object({ - displayName: Type.Optional(Type.String({ - pattern: SAFE_STRING_PATTERN, - })), - metadata: Type.Optional(Metadata), +const projectAnalytics = z.object({ + totalUsers: z.number(), + activeUsers: z.number(), + totalFlows: z.number(), + activeFlows: z.number(), }) +export type Project = z.infer -export type UpdateProjectRequestInCommunity = Static +export const ProjectWithLimits = Project.omit({ deleted: true }).extend({ + plan: ProjectPlan, + analytics: projectAnalytics, +}) -export type ProjectWithLimits = Static +export const UpdateProjectRequestInCommunity = z.object({ + displayName: z.string().regex(new RegExp(SAFE_STRING_PATTERN)).optional(), + metadata: Metadata.optional(), +}) -export const ProjectMetaData = Type.Object({ - id: Type.String(), - displayName: Type.String(), +export type UpdateProjectRequestInCommunity = z.infer + +export type ProjectWithLimits = z.infer + +export const ProjectMetaData = z.object({ + id: z.string(), + displayName: z.string(), }) -export type ProjectMetaData = Static +export type ProjectMetaData = z.infer -export const ProjectWithLimitsWithPlatform = Type.Object({ - platformName: Type.String(), - projects: Type.Array(ProjectWithLimits), +export const ProjectWithLimitsWithPlatform = z.object({ + platformName: z.string(), + projects: z.array(ProjectWithLimits), }) -export type ProjectWithLimitsWithPlatform = Static +export type ProjectWithLimitsWithPlatform = z.infer -const ProjectColor = Type.Object({ - textColor: Type.String(), - color: Type.String(), +const ProjectColor = z.object({ + textColor: z.string(), + color: z.string(), }) -type ProjectColor = Static +type ProjectColor = z.infer export const PROJECT_COLOR_PALETTE: Record = { [ColorName.RED]: { @@ -165,4 +157,4 @@ export const PROJECT_COLOR_PALETTE: Record = { textColor: '#ffffff', color: '#ea580c', }, -} \ No newline at end of file +} diff --git a/packages/shared/src/lib/management/template/flow-template/flow-template.request.ts b/packages/shared/src/lib/management/template/flow-template/flow-template.request.ts index a2e10385756..75bde6a3457 100644 --- a/packages/shared/src/lib/management/template/flow-template/flow-template.request.ts +++ b/packages/shared/src/lib/management/template/flow-template/flow-template.request.ts @@ -1,9 +1,8 @@ -import { Static, Type } from '@sinclair/typebox' +import { z } from 'zod' -export const GetFlowTemplateRequestQuery = Type.Object({ - versionId: Type.Optional(Type.String()), +export const GetFlowTemplateRequestQuery = z.object({ + versionId: z.string().optional(), }) -export type GetFlowTemplateRequestQuery = Static - +export type GetFlowTemplateRequestQuery = z.infer diff --git a/packages/shared/src/lib/management/template/template-telemetry.ts b/packages/shared/src/lib/management/template/template-telemetry.ts index 44257365547..5600246ed08 100644 --- a/packages/shared/src/lib/management/template/template-telemetry.ts +++ b/packages/shared/src/lib/management/template/template-telemetry.ts @@ -1,5 +1,4 @@ -import { Static, Type } from '@sinclair/typebox' -import { DiscriminatedUnion } from '../../core/common' +import { z } from 'zod' export enum TemplateTelemetryEventType { VIEW = 'VIEW', @@ -9,40 +8,39 @@ export enum TemplateTelemetryEventType { EXPLORE_VIEW = 'EXPLORE_VIEW', } -const ViewEvent = Type.Object({ - eventType: Type.Literal(TemplateTelemetryEventType.VIEW), - templateId: Type.String(), +const ViewEvent = z.object({ + eventType: z.literal(TemplateTelemetryEventType.VIEW), + templateId: z.string(), }) -const InstallEvent = Type.Object({ - eventType: Type.Literal(TemplateTelemetryEventType.INSTALL), - templateId: Type.String(), - userId: Type.String(), +const InstallEvent = z.object({ + eventType: z.literal(TemplateTelemetryEventType.INSTALL), + templateId: z.string(), + userId: z.string(), }) -const ActivateEvent = Type.Object({ - eventType: Type.Literal(TemplateTelemetryEventType.ACTIVATE), - templateId: Type.String(), - flowId: Type.String(), +const ActivateEvent = z.object({ + eventType: z.literal(TemplateTelemetryEventType.ACTIVATE), + templateId: z.string(), + flowId: z.string(), }) -const DeactivateEvent = Type.Object({ - eventType: Type.Literal(TemplateTelemetryEventType.DEACTIVATE), - templateId: Type.String(), - flowId: Type.String(), +const DeactivateEvent = z.object({ + eventType: z.literal(TemplateTelemetryEventType.DEACTIVATE), + templateId: z.string(), + flowId: z.string(), }) -const ExploreViewEvent = Type.Object({ - eventType: Type.Literal(TemplateTelemetryEventType.EXPLORE_VIEW), - userId: Type.Optional(Type.String()), +const ExploreViewEvent = z.object({ + eventType: z.literal(TemplateTelemetryEventType.EXPLORE_VIEW), + userId: z.string().optional(), }) -export const TemplateTelemetryEvent = DiscriminatedUnion('eventType', [ +export const TemplateTelemetryEvent = z.discriminatedUnion('eventType', [ InstallEvent, ActivateEvent, DeactivateEvent, ViewEvent, ExploreViewEvent, ]) -export type TemplateTelemetryEvent = Static - +export type TemplateTelemetryEvent = z.infer diff --git a/packages/shared/src/lib/management/template/template.requests.ts b/packages/shared/src/lib/management/template/template.requests.ts index 6ac15b77d95..7e87b88f7ac 100644 --- a/packages/shared/src/lib/management/template/template.requests.ts +++ b/packages/shared/src/lib/management/template/template.requests.ts @@ -1,45 +1,45 @@ -import { Static, Type } from '@sinclair/typebox' -import { Metadata, Nullable } from '../../core/common' +import { z } from 'zod' +import { Metadata, Nullable, OptionalArrayFromQuery } from '../../core/common' import { FlowVersionTemplate, TemplateStatus, TemplateTag, TemplateType } from './template' -export const CreateTemplateRequestBody = Type.Object({ - name: Type.String(), - summary: Type.String(), - description: Type.String(), - tags: Type.Optional(Type.Array(TemplateTag)), - blogUrl: Type.Optional(Type.String()), +export const CreateTemplateRequestBody = z.object({ + name: z.string(), + summary: z.string(), + description: z.string(), + tags: z.array(TemplateTag).optional(), + blogUrl: z.string().optional(), metadata: Nullable(Metadata), - author: Type.String(), - categories: Type.Array(Type.String()), - type: Type.Enum(TemplateType), - flows: Type.Optional(Type.Array(FlowVersionTemplate)), + author: z.string(), + categories: z.array(z.string()), + type: z.nativeEnum(TemplateType), + flows: z.array(FlowVersionTemplate).optional(), }) -export type CreateTemplateRequestBody = Static +export type CreateTemplateRequestBody = z.infer -export const UpdateFlowTemplateRequestBody = Type.Object({ - name: Type.Optional(Type.String()), - summary: Type.Optional(Type.String()), - description: Type.Optional(Type.String()), - tags: Type.Optional(Type.Array(TemplateTag)), - blogUrl: Type.Optional(Type.String()), +export const UpdateFlowTemplateRequestBody = z.object({ + name: z.string().optional(), + summary: z.string().optional(), + description: z.string().optional(), + tags: z.array(TemplateTag).optional(), + blogUrl: z.string().optional(), metadata: Nullable(Metadata), - status: Type.Optional(Type.Enum(TemplateStatus)), - categories: Type.Optional(Type.Array(Type.String())), - flows: Type.Optional(Type.Array(FlowVersionTemplate)), + status: z.nativeEnum(TemplateStatus).optional(), + categories: z.array(z.string()).optional(), + flows: z.array(FlowVersionTemplate).optional(), }) -export type UpdateFlowTemplateRequestBody = Static +export type UpdateFlowTemplateRequestBody = z.infer export const UpdateTemplateRequestBody = UpdateFlowTemplateRequestBody -export type UpdateTemplateRequestBody = Static +export type UpdateTemplateRequestBody = z.infer -export const ListFlowTemplatesRequestQuery = Type.Object({ - type: Type.Optional(Type.Enum(TemplateType)), - pieces: Type.Optional(Type.Array(Type.String())), - tags: Type.Optional(Type.Array(Type.String())), - search: Type.Optional(Type.String()), - category: Type.Optional(Type.String()), +export const ListFlowTemplatesRequestQuery = z.object({ + type: z.nativeEnum(TemplateType).optional(), + pieces: OptionalArrayFromQuery(z.string()), + tags: OptionalArrayFromQuery(z.string()), + search: z.string().optional(), + category: z.string().optional(), }) -export type ListFlowTemplatesRequestQuery = Static +export type ListFlowTemplatesRequestQuery = z.infer export const ListTemplatesRequestQuery = ListFlowTemplatesRequestQuery -export type ListTemplatesRequestQuery = Static \ No newline at end of file +export type ListTemplatesRequestQuery = z.infer diff --git a/packages/shared/src/lib/management/template/template.ts b/packages/shared/src/lib/management/template/template.ts index c3f58d15a04..806f7457eb2 100644 --- a/packages/shared/src/lib/management/template/template.ts +++ b/packages/shared/src/lib/management/template/template.ts @@ -1,15 +1,14 @@ -import { Omit, Static, Type } from '@sinclair/typebox' +import { z } from 'zod' import { Note } from '../../automation/flows' import { FlowVersion } from '../../automation/flows/flow-version' -import { TableState } from '../../automation/project-release/project-state' import { BaseModelSchema, ColorHex, Metadata, Nullable } from '../../core/common' -export const TemplateTag = Type.Object({ - title: Type.String(), +export const TemplateTag = z.object({ + title: z.string(), color: ColorHex, - icon: Type.Optional(Type.String()), + icon: z.string().optional(), }) -export type TemplateTag = Static +export type TemplateTag = z.infer export enum TemplateType { @@ -18,15 +17,23 @@ export enum TemplateType { CUSTOM = 'CUSTOM', } -export const FlowVersionTemplate = Type.Composite([Type.Omit( - FlowVersion, - ['id', 'created', 'updated', 'flowId', 'state', 'updatedBy', 'agentIds', 'connectionIds', 'backupFiles', 'notes'], -), Type.Object({ - description: Type.Optional(Type.String()), +export const FlowVersionTemplate = FlowVersion.omit({ + id: true, + created: true, + updated: true, + flowId: true, + state: true, + updatedBy: true, + agentIds: true, + connectionIds: true, + backupFiles: true, + notes: true, +}).extend({ + description: z.string().optional(), //notes were optional for old json templates - notes: Type.Optional(Type.Array(Note)), -})]) -export type FlowVersionTemplate = Static + notes: z.array(Note).optional(), +}) +export type FlowVersionTemplate = z.infer export enum TemplateStatus { PUBLISHED = 'PUBLISHED', @@ -37,38 +44,52 @@ export enum TableImportDataType { CSV = 'CSV', } -export const TableDataState = Type.Object({ - type: Type.Enum(TableImportDataType), - rows: Type.Array(Type.Array(Type.Object({ - fieldId: Type.String(), - value: Type.String(), +export const TableDataState = z.object({ + type: z.nativeEnum(TableImportDataType), + rows: z.array(z.array(z.object({ + fieldId: z.string(), + value: z.string(), }))), }) -export type TableDataState = Static +export type TableDataState = z.infer -export const TableTemplate = Type.Composite([Type.Omit(TableState, ['id', 'created', 'updated']), Type.Object({ +export const TableTemplate = z.object({ + name: z.string(), + externalId: z.string(), + fields: z.array(z.object({ + name: z.string(), + type: z.string(), + data: z.object({ + options: z.array(z.object({ + value: z.string(), + })), + }).nullable().optional(), + externalId: z.string(), + })), + status: Nullable(z.string()), + trigger: Nullable(z.string()), data: Nullable(TableDataState), -})]) -export type TableTemplate = Static +}) +export type TableTemplate = z.infer -export const Template = Type.Object({ +export const Template = z.object({ ...BaseModelSchema, - name: Type.String(), - type: Type.Enum(TemplateType), - summary: Type.String(), - description: Type.String(), - tags: Type.Array(TemplateTag), - blogUrl: Nullable(Type.String()), + name: z.string(), + type: z.nativeEnum(TemplateType), + summary: z.string(), + description: z.string(), + tags: z.array(TemplateTag), + blogUrl: Nullable(z.string()), metadata: Nullable(Metadata), - author: Type.String(), - categories: Type.Array(Type.String()), - pieces: Type.Array(Type.String()), - platformId: Nullable(Type.String()), - flows: Type.Optional(Type.Array(FlowVersionTemplate)), - tables: Type.Optional(Type.Array(TableTemplate)), - status: Type.Enum(TemplateStatus), + author: z.string(), + categories: z.array(z.string()), + pieces: z.array(z.string()), + platformId: Nullable(z.string()), + flows: z.array(FlowVersionTemplate).optional(), + tables: z.array(TableTemplate).optional(), + status: z.nativeEnum(TemplateStatus), }) -export type Template = Static +export type Template = z.infer -export const SharedTemplate = Omit(Template, ['platformId', 'id', 'created', 'updated']) -export type SharedTemplate = Static \ No newline at end of file +export const SharedTemplate = Template.omit({ platformId: true, id: true, created: true, updated: true }) +export type SharedTemplate = z.infer diff --git a/packages/web/package.json b/packages/web/package.json index fdd637d7fbc..a59bbd86e7b 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -15,7 +15,6 @@ "@hookform/resolvers": "5.2.2", "@radix-ui/react-use-controllable-state": "1.2.2", "@segment/analytics-next": "1.72.0", - "@sinclair/typebox": "0.34.11", "@tanstack/query-db-collection": "1.0.12", "@tanstack/react-db": "0.1.60", "@tanstack/react-query": "5.51.1", diff --git a/packages/web/postcss.config.js b/packages/web/postcss.config.js index 0d3dc635139..0735a5804e9 100644 --- a/packages/web/postcss.config.js +++ b/packages/web/postcss.config.js @@ -1,9 +1,5 @@ const { join } = require('path'); -// Note: If you use library-specific PostCSS/Tailwind configuration then you should remove the `postcssConfig` build -// option from your application's configuration (i.e. project.json). -// -// See: https://nx.dev/guides/using-tailwind-css-in-react#step-4:-applying-configuration-to-libraries module.exports = { plugins: { diff --git a/packages/web/src/app/app.tsx b/packages/web/src/app/app.tsx index 816b5bd9f4a..93997b33c95 100644 --- a/packages/web/src/app/app.tsx +++ b/packages/web/src/app/app.tsx @@ -1,8 +1,4 @@ import { ErrorCode, isNil } from '@activepieces/shared'; -import { - DefaultErrorFunction, - SetErrorFunction, -} from '@sinclair/typebox/errors'; import { MutationCache, QueryClient, @@ -37,15 +33,6 @@ const queryClient = new QueryClient({ }), }); -let typesFormatsAdded = false; - -if (!typesFormatsAdded) { - SetErrorFunction((error) => { - return error?.schema?.errorMessage ?? DefaultErrorFunction(error); - }); - typesFormatsAdded = true; -} - export function App() { const { i18n } = useTranslation(); return ( diff --git a/packages/web/src/app/builder/flow-versions/overwrite-draft-dialog.tsx b/packages/web/src/app/builder/flow-versions/overwrite-draft-dialog.tsx index 90a574b2776..a00940ea440 100644 --- a/packages/web/src/app/builder/flow-versions/overwrite-draft-dialog.tsx +++ b/packages/web/src/app/builder/flow-versions/overwrite-draft-dialog.tsx @@ -51,13 +51,14 @@ const OverwriteDraftDialog = ({ - {t('Are you sure?')} + {t('Overwrite Draft')} - {t('Your current draft version will be overwritten with')}{' '} + {t('Your current draft will be replaced with')}{' '} - {t('version #')} - {versionNumber} + {t('version #{versionNumber}', { versionNumber })} + {'. '} + {t('This cannot be undone.')} @@ -75,7 +76,7 @@ const OverwriteDraftDialog = ({ onConfirm?.(); }} > - {t('Confirm')} + {t('Overwrite')} diff --git a/packages/web/src/app/builder/run-list/flow-run-card.tsx b/packages/web/src/app/builder/run-list/flow-run-card.tsx index af5b492a55c..e054e34e15e 100644 --- a/packages/web/src/app/builder/run-list/flow-run-card.tsx +++ b/packages/web/src/app/builder/run-list/flow-run-card.tsx @@ -5,9 +5,7 @@ import { isFailedState, isFlowRunStateTerminal, Permission, - PopulatedFlow, } from '@activepieces/shared'; -import { useMutation } from '@tanstack/react-query'; import { t } from 'i18next'; import { Eye, Repeat, Timer } from 'lucide-react'; import React, { useState } from 'react'; @@ -29,8 +27,8 @@ import { TooltipContent, TooltipTrigger, } from '@/components/ui/tooltip'; -import { flowRunsApi, flowRunUtils } from '@/features/flow-runs'; -import { flowsApi } from '@/features/flows'; +import { flowRunUtils } from '@/features/flow-runs'; +import { flowRunMutations } from '@/features/flow-runs/hooks/flow-run-hooks'; import { useAuthorization } from '@/hooks/authorization-hooks'; import { authenticationSession } from '@/lib/authentication-session'; import { formatUtils } from '@/lib/format-utils'; @@ -55,38 +53,13 @@ const FlowRunCard = React.memo( const [isRetryDropdownOpen, setIsRetryDropdownOpen] = useState(false); - const { mutate: retryRun, isPending: isRetryingRun } = useMutation< - { - run: FlowRun; - populatedFlow: PopulatedFlow; - }, - Error, - { - run: FlowRun; - retryStrategy: FlowRetryStrategy; - } - >({ - mutationFn: async ({ run, retryStrategy }) => { - if (projectId) { - const updatedRun = await flowRunsApi.retry(run.id, { - projectId, - strategy: retryStrategy, - }); - const populatedFlow = await flowsApi.get(run.flowId, { - versionId: updatedRun.flowVersionId, - }); - return { - run: updatedRun, - populatedFlow, - }; - } - throw Error("Project id isn't defined"); - }, - onSuccess: ({ run }) => { - refetchRuns(); - navigate(`/runs/${run.id}`); - }, - }); + const { mutate: retryRun, isPending: isRetryingRun } = + flowRunMutations.useRetryRun({ + onSuccess: ({ run }) => { + refetchRuns(); + navigate(`/runs/${run.id}`); + }, + }); return ( - Type.Object( - requireAuth - ? { - auth: Type.String({ minLength: 1 }), - } - : {}, - { - additionalProperties: true, - ...(requireAuth && { required: ['auth'] }), - }, - ); + requireAuth + ? z + .object({ + auth: z.string().min(1), + }) + .passthrough() + : z.object({}).passthrough(); -type PredefinedInputsFormValues = Static< +type PredefinedInputsFormValues = z.infer< ReturnType >; @@ -89,7 +85,7 @@ export const PredefinedInputsForm = () => { return values; }, [predefinedInputs, requireAuth]); const form = useForm({ - resolver: typeboxResolver(formSchema), + resolver: zodResolver(formSchema), defaultValues, mode: 'onChange', reValidateMode: 'onChange', diff --git a/packages/web/src/app/builder/step-settings/code-settings/add-npm-dialog.tsx b/packages/web/src/app/builder/step-settings/code-settings/add-npm-dialog.tsx index f178c1f7c36..a484433c3d3 100644 --- a/packages/web/src/app/builder/step-settings/code-settings/add-npm-dialog.tsx +++ b/packages/web/src/app/builder/step-settings/code-settings/add-npm-dialog.tsx @@ -1,10 +1,10 @@ -import { typeboxResolver } from '@hookform/resolvers/typebox'; -import { Static, Type } from '@sinclair/typebox'; +import { zodResolver } from '@hookform/resolvers/zod'; import { useMutation } from '@tanstack/react-query'; import { t } from 'i18next'; import { useState } from 'react'; import { useForm } from 'react-hook-form'; import { toast } from 'sonner'; +import { z } from 'zod'; import { Button } from '@/components/ui/button'; import { @@ -28,11 +28,8 @@ import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { api } from '@/lib/api'; -const formSchema = Type.Object({ - packageName: Type.String({ - minLength: 1, - errorMessage: t('The package name is required'), - }), +const formSchema = z.object({ + packageName: z.string().min(1, t('The package name is required')), }); type AddNpmDialogProps = { @@ -47,9 +44,9 @@ type AddNpmDialogProps = { }; const AddNpmDialog = ({ children, onAdd }: AddNpmDialogProps) => { const [open, setOpen] = useState(false); - const form = useForm>({ + const form = useForm>({ defaultValues: {}, - resolver: typeboxResolver(formSchema), + resolver: zodResolver(formSchema), }); const { mutate, isPending } = useMutation({ diff --git a/packages/web/src/app/builder/step-settings/index.tsx b/packages/web/src/app/builder/step-settings/index.tsx index 1c7eeeb956b..af3e55afa80 100644 --- a/packages/web/src/app/builder/step-settings/index.tsx +++ b/packages/web/src/app/builder/step-settings/index.tsx @@ -6,8 +6,7 @@ import { FlowTriggerType, isNil, } from '@activepieces/shared'; -import { typeboxResolver } from '@hookform/resolvers/typebox'; -import { TObject } from '@sinclair/typebox'; +import { zodResolver } from '@hookform/resolvers/zod'; import deepEqual from 'deep-equal'; import { useEffect, useRef, useState } from 'react'; import { useForm, ResolverOptions, ResolverResult } from 'react-hook-form'; @@ -82,12 +81,7 @@ const StepSettingsContainer = () => { keepDirtyValues: true, }, resolver: async (values, context, options) => { - const resolverFn = typeboxResolver(formSchema as TObject) as unknown as ( - values: FlowAction | FlowTrigger, - context: unknown, - options: ResolverOptions, - ) => Promise>; - const result = await resolverFn(values, context, options); + const result = await zodResolver(formSchema)(values, context, options); const cleanedNewValues = formUtils.removeUndefinedFromInput(values); const cleanedCurrentValues = formUtils.removeUndefinedFromInput( diff --git a/packages/web/src/app/builder/step-settings/step-settings-context.tsx b/packages/web/src/app/builder/step-settings/step-settings-context.tsx index fd78f9a1706..74e64bbb0d2 100644 --- a/packages/web/src/app/builder/step-settings/step-settings-context.tsx +++ b/packages/web/src/app/builder/step-settings/step-settings-context.tsx @@ -9,7 +9,6 @@ import { FlowTrigger, PropertyExecutionType, } from '@activepieces/shared'; -import { TObject, Type } from '@sinclair/typebox'; import { createContext, ReactNode, @@ -19,6 +18,7 @@ import { useState, } from 'react'; import { UseFormReturn } from 'react-hook-form'; +import { z, ZodObject } from 'zod'; import { formUtils } from '@/features/pieces'; const numberReplacement = 'anyOf[0]items'; @@ -41,7 +41,7 @@ const createUpdatedSchemaKey = (propertyKey: string) => { export type StepSettingsContextState = { selectedStep: FlowAction | FlowTrigger; pieceModel: PieceMetadataModel | undefined; - formSchema: TObject; + formSchema: ZodObject; updateFormSchema: (key: string, newFieldSchema: PiecePropertyMap) => void; updatePropertySettingsSchema: ( schema: PiecePropertyMap, @@ -65,8 +65,8 @@ export const StepSettingsProvider = ({ pieceModel, children, }: StepSettingsProviderProps) => { - const [formSchema, setFormSchema] = useState>( - Type.Object(Type.Unknown()), + const [formSchema, setFormSchema] = useState>( + z.object({}) as ZodObject, ); const formSchemaInitializedRef = useRef(false); @@ -77,7 +77,7 @@ export const StepSettingsProvider = ({ pieceModel ?? null, ); formSchemaInitializedRef.current = true; - setFormSchema(schema as TObject); + setFormSchema(schema as ZodObject); } const updateFormSchema = useCallback( diff --git a/packages/web/src/app/builder/test-step/custom-test-step/mcp-tool-testing-dialog.tsx b/packages/web/src/app/builder/test-step/custom-test-step/mcp-tool-testing-dialog.tsx index 6da0873610a..9467d637606 100644 --- a/packages/web/src/app/builder/test-step/custom-test-step/mcp-tool-testing-dialog.tsx +++ b/packages/web/src/app/builder/test-step/custom-test-step/mcp-tool-testing-dialog.tsx @@ -124,11 +124,9 @@ function McpToolTestingDialog({ - {t('Tool Sample Data')} + {t('Set Sample Data')} - {t( - 'Fill in the following fields to use them as sample data for the trigger.', - )} + {t('Provide sample values for testing this tool trigger.')} @@ -196,7 +194,7 @@ function McpToolTestingDialog({ {t('Cancel')} diff --git a/packages/web/src/app/components/account-settings/index.tsx b/packages/web/src/app/components/account-settings/index.tsx index 64d3a934ff1..f9c8ced348c 100644 --- a/packages/web/src/app/components/account-settings/index.tsx +++ b/packages/web/src/app/components/account-settings/index.tsx @@ -3,13 +3,12 @@ import { PROFILE_PICTURE_ALLOWED_TYPES, UserWithBadges, } from '@activepieces/shared'; -import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { useQueryClient } from '@tanstack/react-query'; import { t } from 'i18next'; import { Camera, Mail } from 'lucide-react'; import { useRef } from 'react'; import { toast } from 'sonner'; -import { userApi } from '@/api/user-api'; import { UserAvatar } from '@/components/custom/user-avatar'; import { UserBadges } from '@/components/custom/user-badges'; import { @@ -21,7 +20,7 @@ import { } from '@/components/ui/dialog'; import { ScrollArea } from '@/components/ui/scroll-area'; import { Separator } from '@/components/ui/separator'; -import { userHooks } from '@/hooks/user-hooks'; +import { userHooks, userMutations } from '@/hooks/user-hooks'; import { DeleteAccount } from './delete-account'; import LanguageToggle from './language-toggle'; @@ -40,8 +39,7 @@ export function AccountSettingsDialog({ const queryClient = useQueryClient(); const fileInputRef = useRef(null); - const uploadMutation = useMutation({ - mutationFn: (file: File) => userApi.updateMe(file), + const uploadMutation = userMutations.useUploadProfilePicture({ onSuccess: () => { userHooks.invalidateCurrentUser(queryClient); toast.success(t('Profile picture updated successfully')); diff --git a/packages/web/src/app/components/flow-actions-menu.tsx b/packages/web/src/app/components/flow-actions-menu.tsx index 1fa2aaa1c60..2315954c011 100644 --- a/packages/web/src/app/components/flow-actions-menu.tsx +++ b/packages/web/src/app/components/flow-actions-menu.tsx @@ -362,12 +362,12 @@ const FlowActionMenu: React.FC = ({ hasPermission={userHasPermissionToUpdateFlow} >
{t( - 'Are you sure you want to delete this flow? This will permanently delete the flow, all its data and any background runs.', + 'This will permanently delete the flow, all its data, and any background runs.', )}
{isDevelopmentBranch && ( @@ -384,6 +384,7 @@ const FlowActionMenu: React.FC = ({ onDelete(); }} entityName={t('flow')} + buttonText={t('Delete')} > ; +type FormSchema = z.infer; const AddAlertEmailDialog = React.memo(() => { const [open, setOpen] = useState(false); const form = useForm({ - resolver: typeboxResolver(FormSchema), + resolver: zodResolver(FormSchema), defaultValues: {}, }); const { checkAccess } = useAuthorization(); diff --git a/packages/web/src/app/components/project-settings/environment/index.tsx b/packages/web/src/app/components/project-settings/environment/index.tsx index bba1922d545..7e916c256e0 100644 --- a/packages/web/src/app/components/project-settings/environment/index.tsx +++ b/packages/web/src/app/components/project-settings/environment/index.tsx @@ -1,5 +1,3 @@ -import { assertNotNullOrUndefined } from '@activepieces/shared'; -import { useMutation } from '@tanstack/react-query'; import { t } from 'i18next'; import { toast } from 'sonner'; @@ -8,9 +6,9 @@ import { LoadingSpinner } from '@/components/custom/spinner'; import { Button } from '@/components/ui/button'; import { Card } from '@/components/ui/card'; import { - gitSyncApi, ConnectGitDialog, gitSyncHooks, + gitSyncMutations, } from '@/features/project-releases'; import { platformHooks } from '@/hooks/platform-hooks'; import { authenticationSession } from '@/lib/authentication-session'; @@ -25,11 +23,7 @@ const EnvironmentSettings = () => { platform.plan.environmentsEnabled, ); - const { mutate } = useMutation({ - mutationFn: () => { - assertNotNullOrUndefined(gitSync, 'gitSync'); - return gitSyncApi.disconnect(gitSync.id); - }, + const { mutate } = gitSyncMutations.useDisconnectGitSync({ onSuccess: () => { refetch(); toast.success(t('Git Connection Removed'), { @@ -72,7 +66,7 @@ const EnvironmentSettings = () => {
- diff --git a/packages/web/src/app/routes/platform/infra/health/index.tsx b/packages/web/src/app/routes/platform/infra/health/index.tsx index 2146f1ddf25..9f7d2e205ad 100644 --- a/packages/web/src/app/routes/platform/infra/health/index.tsx +++ b/packages/web/src/app/routes/platform/infra/health/index.tsx @@ -1,12 +1,11 @@ import { ApFlagId } from '@activepieces/shared'; -import { useQuery } from '@tanstack/react-query'; import { t } from 'i18next'; import { Cpu, HardDrive, MemoryStick, Package } from 'lucide-react'; import React from 'react'; import semver from 'semver'; -import { healthApi } from '@/api/health-api'; import { CenteredPage } from '@/app/components/centered-page'; +import { healthQueries } from '@/features/platform-admin'; import { flagsHooks } from '@/hooks/flags-hooks'; import { CheckItem } from './check-item'; @@ -18,10 +17,7 @@ export default function SettingsHealthPage() { const { data: latestVersion } = flagsHooks.useFlag( ApFlagId.LATEST_VERSION, ); - const { data: systemHealth, isPending } = useQuery({ - queryKey: ['system-health'], - queryFn: () => healthApi.getSystemHealthChecks(), - }); + const { data: systemHealth, isPending } = healthQueries.useSystemHealth(); const isVersionUpToDate = React.useMemo(() => { if (!currentVersion || !latestVersion) return false; diff --git a/packages/web/src/app/routes/platform/infra/workers/index.tsx b/packages/web/src/app/routes/platform/infra/workers/index.tsx index 91982ee695a..5c2d964064d 100644 --- a/packages/web/src/app/routes/platform/infra/workers/index.tsx +++ b/packages/web/src/app/routes/platform/infra/workers/index.tsx @@ -4,7 +4,6 @@ import { WorkerMachineStatus, WorkerMachineWithStatus, } from '@activepieces/shared'; -import { useQuery } from '@tanstack/react-query'; import dayjs from 'dayjs'; import { t } from 'i18next'; import { @@ -27,7 +26,7 @@ import { CardFooter, CardHeader, } from '@/components/ui/card'; -import { workersApi } from '@/features/platform-admin'; +import { workersQueries } from '@/features/platform-admin'; import { flagsHooks } from '@/hooks/flags-hooks'; import { useTimeAgo } from '@/hooks/use-time-ago'; import { cn } from '@/lib/utils'; @@ -90,14 +89,10 @@ const DEMO_WORKERS_DATA: WorkerMachineWithStatus[] = [ export default function WorkersPage() { const { data: edition } = flagsHooks.useFlag(ApFlagId.EDITION); const showDemoData = edition === ApEdition.CLOUD; - const { data: workersData, isLoading } = useQuery({ - queryKey: ['worker-machines'], - staleTime: 0, - gcTime: 0, - refetchInterval: 5000, - queryFn: async () => - showDemoData ? DEMO_WORKERS_DATA : await workersApi.list(), - }); + const { data: workersData, isLoading } = workersQueries.useWorkerMachines( + showDemoData, + DEMO_WORKERS_DATA, + ); return (
diff --git a/packages/web/src/app/routes/platform/projects/index.tsx b/packages/web/src/app/routes/platform/projects/index.tsx index ef3d38767e1..a56b2abab9c 100644 --- a/packages/web/src/app/routes/platform/projects/index.tsx +++ b/packages/web/src/app/routes/platform/projects/index.tsx @@ -228,9 +228,10 @@ export default function ProjectsPage() { { const deletableProjects = selectedRows.filter( (row) => diff --git a/packages/web/src/app/routes/platform/projects/new-project-dialog.tsx b/packages/web/src/app/routes/platform/projects/new-project-dialog.tsx index 5036faef094..1eed872179d 100644 --- a/packages/web/src/app/routes/platform/projects/new-project-dialog.tsx +++ b/packages/web/src/app/routes/platform/projects/new-project-dialog.tsx @@ -3,12 +3,12 @@ import { CreatePlatformProjectRequest, ProjectWithLimits, } from '@activepieces/shared'; -import { typeboxResolver } from '@hookform/resolvers/typebox'; -import { Type } from '@sinclair/typebox'; +import { zodResolver } from '@hookform/resolvers/zod'; import { useQueryClient } from '@tanstack/react-query'; import { t } from 'i18next'; import { useState } from 'react'; import { useForm } from 'react-hook-form'; +import { z } from 'zod'; import { DefaultTag } from '@/components/custom/global-connection-utils'; import { MultiSelectPieceProperty } from '@/components/custom/multi-select-piece-property'; @@ -16,6 +16,7 @@ import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, + DialogDescription, DialogFooter, DialogHeader, DialogTitle, @@ -53,7 +54,12 @@ export const NewProjectDialog = (props: NewProjectDialogProps) => { {props.children} - {t('Create New Project')} + {t('Create Project')} + + {t( + 'Set up a new project to organize your automations and connections.', + )} + {(!isLoadingConnections || !globalConnectionsEnabled) && ( connection.externalId); const form = useForm({ - resolver: typeboxResolver( - Type.Object({ - displayName: Type.String({ - minLength: 1, - errorMessage: t('Name is required'), - }), + resolver: zodResolver( + z.object({ + displayName: z.string().min(1, t('Name is required')), }), ), defaultValues: { @@ -195,7 +198,7 @@ const NewProjectForm = ({ form.handleSubmit(() => mutate(form.getValues()))(e); }} > - {t('Save')} + {t('Create Project')} diff --git a/packages/web/src/app/routes/platform/security/api-keys/index.tsx b/packages/web/src/app/routes/platform/security/api-keys/index.tsx index 5b0960499d4..dedb9e0acbf 100644 --- a/packages/web/src/app/routes/platform/security/api-keys/index.tsx +++ b/packages/web/src/app/routes/platform/security/api-keys/index.tsx @@ -1,5 +1,4 @@ import { ApiKeyResponseWithoutValue } from '@activepieces/shared'; -import { useQuery, useQueryClient } from '@tanstack/react-query'; import { t } from 'i18next'; import { Key, MoreHorizontal, Trash } from 'lucide-react'; @@ -27,20 +26,14 @@ import { } from '@/components/ui/dropdown-menu'; import { SkeletonList } from '@/components/ui/skeleton'; import { internalErrorToast } from '@/components/ui/sonner'; -import { apiKeyApi } from '@/features/platform-admin'; +import { apiKeyApi, apiKeyQueries } from '@/features/platform-admin'; import { platformHooks } from '@/hooks/platform-hooks'; import { formatUtils } from '@/lib/format-utils'; const ApiKeysPage = () => { - const queryClient = useQueryClient(); const { platform } = platformHooks.useCurrentPlatform(); - const { data, isLoading, refetch } = useQuery({ - queryKey: ['api-keys'], - gcTime: 0, - staleTime: 0, - queryFn: () => apiKeyApi.list(), - }); + const { data, isLoading, refetch } = apiKeyQueries.useApiKeys(); const keys: ApiKeyResponseWithoutValue[] = data?.data ?? []; @@ -58,11 +51,7 @@ const ApiKeysPage = () => { title={t('API Keys')} description={t('Manage API keys to access Activepieces APIs.')} actions={ - - queryClient.invalidateQueries({ queryKey: ['api-keys'] }) - } - > + refetch()}> {t('New API Key')} @@ -122,9 +111,10 @@ const ApiKeysPage = () => { { await apiKeyApi.delete(apiKey.id); refetch(); diff --git a/packages/web/src/app/routes/platform/security/api-keys/new-api-key-dialog.tsx b/packages/web/src/app/routes/platform/security/api-keys/new-api-key-dialog.tsx index 88a9ab3a422..85030c596cb 100644 --- a/packages/web/src/app/routes/platform/security/api-keys/new-api-key-dialog.tsx +++ b/packages/web/src/app/routes/platform/security/api-keys/new-api-key-dialog.tsx @@ -1,16 +1,17 @@ import { ApiKeyResponseWithValue } from '@activepieces/shared'; -import { typeboxResolver } from '@hookform/resolvers/typebox'; -import { Type, Static } from '@sinclair/typebox'; +import { zodResolver } from '@hookform/resolvers/zod'; import { useMutation } from '@tanstack/react-query'; import { t } from 'i18next'; import { useState } from 'react'; import { useForm } from 'react-hook-form'; +import { z } from 'zod'; import { CopyToClipboardInput } from '@/components/custom/clipboard/copy-to-clipboard'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, + DialogDescription, DialogFooter, DialogHeader, DialogTitle, @@ -30,14 +31,11 @@ type NewApiKeyDialogProps = { children: React.ReactNode; onCreate: () => void; }; -const FormSchema = Type.Object({ - displayName: Type.String({ - minLength: 1, - errorMessage: t('Name is required'), - }), +const FormSchema = z.object({ + displayName: z.string().min(1, t('Name is required')), }); -type FormSchema = Static; +type FormSchema = z.infer; export const NewApiKeyDialog = ({ children, @@ -48,7 +46,7 @@ export const NewApiKeyDialog = ({ undefined, ); const form = useForm({ - resolver: typeboxResolver(FormSchema), + resolver: zodResolver(FormSchema), }); const { mutate, isPending } = useMutation({ @@ -73,6 +71,13 @@ export const NewApiKeyDialog = ({ {apiKey ? t('API Key Created') : t('Create API Key')} + {!apiKey && ( + + {t( + 'Create a new API key for programmatic access to the platform.', + )} + + )} {apiKey && ( <> @@ -140,7 +145,7 @@ export const NewApiKeyDialog = ({ {t('Cancel')} diff --git a/packages/web/src/app/routes/platform/security/audit-logs/index.tsx b/packages/web/src/app/routes/platform/security/audit-logs/index.tsx index bbb914b75d7..9f1a1dbb5d5 100644 --- a/packages/web/src/app/routes/platform/security/audit-logs/index.tsx +++ b/packages/web/src/app/routes/platform/security/audit-logs/index.tsx @@ -4,7 +4,6 @@ import { summarizeApplicationEvent, isNil, } from '@activepieces/shared'; -import { useQuery } from '@tanstack/react-query'; import { t } from 'i18next'; import { CheckIcon, @@ -26,12 +25,7 @@ import { Link, useSearchParams } from 'react-router-dom'; import { DashboardPageHeader } from '@/app/components/dashboard-page-header'; import LockedFeatureGuard from '@/app/components/locked-feature-guard'; -import { - CURSOR_QUERY_PARAM, - DataTable, - DataTableFilters, - LIMIT_QUERY_PARAM, -} from '@/components/custom/data-table'; +import { DataTable, DataTableFilters } from '@/components/custom/data-table'; import { DataTableColumnHeader } from '@/components/custom/data-table/data-table-column-header'; import { FormattedDate } from '@/components/custom/formatted-date'; import { SimpleJsonViewer } from '@/components/custom/simple-json-viewer'; @@ -48,10 +42,10 @@ import { TooltipContent, TooltipTrigger, } from '@/components/ui/tooltip'; -import { auditEventsApi } from '@/features/platform-admin'; +import { auditLogQueries } from '@/features/platform-admin'; +import { platformUserHooks } from '@/features/platform-admin/hooks/platform-user-hooks'; import { projectCollectionUtils } from '@/features/projects'; import { platformHooks } from '@/hooks/platform-hooks'; -import { platformUserHooks } from '@/hooks/platform-user-hooks'; import { formatUtils } from '@/lib/format-utils'; export default function AuditLogsPage() { @@ -111,27 +105,7 @@ export default function AuditLogsPage() { }, ]; - const { data: auditLogsData, isLoading } = useQuery({ - queryKey: ['audit-logs', searchParams.toString()], - staleTime: 0, - gcTime: 0, - queryFn: async () => { - const cursor = searchParams.get(CURSOR_QUERY_PARAM); - const limit = searchParams.get(LIMIT_QUERY_PARAM); - const action = searchParams.getAll('action'); - const projectId = searchParams.getAll('projectId'); - const userId = searchParams.get('userId'); - return auditEventsApi.list({ - cursor: cursor ?? undefined, - limit: limit ? parseInt(limit) : undefined, - action: action ?? undefined, - projectId: projectId ?? undefined, - userId: userId ?? undefined, - createdBefore: searchParams.get('createdBefore') ?? undefined, - createdAfter: searchParams.get('createdAfter') ?? undefined, - }); - }, - }); + const { data: auditLogsData, isLoading } = auditLogQueries.useAuditLogs(); const isEnabled = platform.plan.auditLogEnabled; return ( diff --git a/packages/web/src/app/routes/platform/security/project-role/index.tsx b/packages/web/src/app/routes/platform/security/project-role/index.tsx index 00814306b2b..8c5c8511748 100644 --- a/packages/web/src/app/routes/platform/security/project-role/index.tsx +++ b/packages/web/src/app/routes/platform/security/project-role/index.tsx @@ -1,4 +1,3 @@ -import { useQuery } from '@tanstack/react-query'; import { t } from 'i18next'; import { CenteredPage } from '@/app/components/centered-page'; @@ -10,7 +9,7 @@ import { TooltipContent, TooltipTrigger, } from '@/components/ui/tooltip'; -import { projectRoleApi } from '@/features/platform-admin'; +import { projectRoleQueries } from '@/features/platform-admin'; import { platformHooks } from '@/hooks/platform-hooks'; import { ProjectRoleDialog } from './project-role-dialog'; @@ -19,11 +18,9 @@ import { ProjectRolesTable } from './project-roles-table'; const ProjectRolePage = () => { const { platform } = platformHooks.useCurrentPlatform(); - const { data, isLoading, refetch } = useQuery({ - queryKey: ['project-roles'], - queryFn: () => projectRoleApi.list(), - enabled: platform.plan.projectRolesEnabled, - }); + const { data, isLoading, refetch } = projectRoleQueries.useProjectRoles( + platform.plan.projectRolesEnabled, + ); const newRoleButton = !platform.plan.customRolesEnabled ? ( diff --git a/packages/web/src/app/routes/platform/security/project-role/project-role-dialog.tsx b/packages/web/src/app/routes/platform/security/project-role/project-role-dialog.tsx index e079b6eb072..e1c383ef182 100644 --- a/packages/web/src/app/routes/platform/security/project-role/project-role-dialog.tsx +++ b/packages/web/src/app/routes/platform/security/project-role/project-role-dialog.tsx @@ -1,19 +1,19 @@ import { Permission, ProjectRole, RoleType } from '@activepieces/shared'; -import { useMutation } from '@tanstack/react-query'; import { t } from 'i18next'; import { useState, ReactNode } from 'react'; -import { toast } from 'sonner'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, + DialogDescription, + DialogHeader, DialogTitle, DialogTrigger, } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; import { ScrollArea } from '@/components/ui/scroll-area'; -import { projectRoleApi } from '@/features/platform-admin'; +import { projectRoleMutations } from '@/features/platform-admin'; const initialPermissions = [ { @@ -123,30 +123,11 @@ export const ProjectRoleDialog = ({ } return projectRole.permissions; }); - const { mutate } = useMutation({ - mutationFn: async () => { - if (mode === 'create') { - await projectRoleApi.create({ - name: roleName, - permissions, - type: RoleType.CUSTOM, - }); - } else if (mode === 'edit' && projectRole) { - await projectRoleApi.update(projectRole.id, { - name: roleName, - permissions, - }); - } - }, - onSuccess: () => { + const { mutate } = projectRoleMutations.useUpsertProjectRole({ + onSave: () => { setIsOpen(false); onSave(); }, - onError: () => { - toast.error(t('Role name already exists'), { - duration: 3000, - }); - }, }); const handlePermissionChange = (permission: string, level: string) => { @@ -210,7 +191,13 @@ export const ProjectRoleDialog = ({ }; const handleSubmit = () => { if (!disabled) { - mutate(); + mutate({ + mode, + roleId: projectRole?.id, + name: roleName, + permissions, + type: RoleType.CUSTOM, + }); } }; @@ -218,13 +205,22 @@ export const ProjectRoleDialog = ({ {children} - - {mode === 'create' - ? t('Create New Role') - : (projectRole?.type === RoleType.DEFAULT - ? t('View ') - : t('Edit ')) + projectRole?.name} - + + + {mode === 'create' + ? t('Create Role') + : projectRole?.type === RoleType.DEFAULT + ? t('View Role: {name}', { name: projectRole?.name }) + : t('Edit Role: {name}', { name: projectRole?.name })} + + + {mode === 'create' + ? t( + 'Define a custom role with specific permissions for project members.', + ) + : t('Review and manage permissions for this role.')} + +
diff --git a/packages/web/src/app/routes/platform/security/project-role/project-role-users-table.tsx b/packages/web/src/app/routes/platform/security/project-role/project-role-users-table.tsx index 7d9a7533dcb..d7c3c86aae5 100644 --- a/packages/web/src/app/routes/platform/security/project-role/project-role-users-table.tsx +++ b/packages/web/src/app/routes/platform/security/project-role/project-role-users-table.tsx @@ -1,5 +1,4 @@ import { ProjectMemberWithUser, ProjectRole } from '@activepieces/shared'; -import { useQuery } from '@tanstack/react-query'; import { t } from 'i18next'; import { Loader2, Users } from 'lucide-react'; import { Link } from 'react-router-dom'; @@ -19,23 +18,17 @@ import { SheetTitle, } from '@/components/ui/sheet'; import { VirtualizedScrollArea } from '@/components/ui/virtualized-scroll-area'; -import { projectRoleApi } from '@/features/platform-admin'; +import { projectRoleQueries } from '@/features/platform-admin'; export const ProjectRoleUsersSheet = ({ projectRole, isOpen, onOpenChange, }: ProjectRoleUsersSheetProps) => { - const { data, isLoading } = useQuery({ - queryKey: ['users-with-project-roles', projectRole?.id], - queryFn: () => { - return projectRoleApi.listProjectMembers(projectRole!.id, { - cursor: undefined, - limit: 10, - }); - }, - enabled: isOpen && projectRole !== null, - }); + const { data, isLoading } = projectRoleQueries.useProjectRoleMembers( + projectRole?.id, + isOpen && projectRole !== null, + ); const users = data?.data ?? []; diff --git a/packages/web/src/app/routes/platform/security/project-role/project-roles-table.tsx b/packages/web/src/app/routes/platform/security/project-role/project-roles-table.tsx index c1f0c21497d..51973da13ac 100644 --- a/packages/web/src/app/routes/platform/security/project-role/project-roles-table.tsx +++ b/packages/web/src/app/routes/platform/security/project-role/project-roles-table.tsx @@ -1,5 +1,4 @@ import { ProjectRole, RoleType, SeekPage } from '@activepieces/shared'; -import { useMutation } from '@tanstack/react-query'; import { t } from 'i18next'; import { Eye, @@ -11,7 +10,6 @@ import { Users, } from 'lucide-react'; import { useState } from 'react'; -import { toast } from 'sonner'; import { ConfirmationDeleteDialog } from '@/components/custom/delete-dialog'; import { @@ -26,7 +24,7 @@ import { import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { SkeletonList } from '@/components/ui/skeleton'; -import { projectRoleApi } from '@/features/platform-admin'; +import { projectRoleMutations } from '@/features/platform-admin'; import { platformHooks } from '@/hooks/platform-hooks'; import { ProjectRoleDialog } from './project-role-dialog'; @@ -60,16 +58,10 @@ export const ProjectRolesTable = ({ const [selectedRole, setSelectedRole] = useState(null); const [isUsersSheetOpen, setIsUsersSheetOpen] = useState(false); - const { mutate: deleteProjectRole } = useMutation({ - mutationKey: ['delete-project-role'], - mutationFn: (name: string) => projectRoleApi.delete(name), - onSuccess: () => { - refetch(); - toast.success(t('Project Role entry deleted successfully'), { - duration: 3000, - }); - }, - }); + const { mutate: deleteProjectRole } = + projectRoleMutations.useDeleteProjectRole({ + onSuccess: () => refetch(), + }); if (isLoading) { return ; @@ -143,13 +135,11 @@ export const ProjectRolesTable = ({ isDanger={true} title={t('Delete Role')} message={t( - `Deleting this role will remove ${ - role.userCount - } project member${ - role.userCount === 1 ? '' : 's' - } and all associated invitations. Are you sure you want to proceed?`, + 'Deleting this role will remove {count} project member(s) and all associated invitations.', + { count: role.userCount }, )} entityName={`${t('Project Role')} ${role.name}`} + buttonText={t('Delete Role')} mutationFn={async () => deleteProjectRole(role.name)} >