diff --git a/.github/workflows/run_js_test.yml b/.github/workflows/run_js_test.yml new file mode 100644 index 00000000000..98c93a32cb6 --- /dev/null +++ b/.github/workflows/run_js_test.yml @@ -0,0 +1,33 @@ +name: Run JS SDK test + +on: + push: + workflow_dispatch: + + +jobs: + run-js-tests: + timeout-minutes: 60 + runs-on: ubuntu-latest + permissions: + pull-requests: write + contents: read + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + - name: Install dependencies + run: npm install -g pnpm@8.15.7 + - name: Install packages in js folder + run: cd js && pnpm install + - name: pnpm build + run: cd js && pnpm build + - name: run test + run: cd js && pnpm test diff --git a/docs/api-reference/actions-controller-v-1/execute-action-proxy.mdx b/docs/api-reference/actions-controller-v-1/execute-action-proxy.mdx new file mode 100644 index 00000000000..5a91605353f --- /dev/null +++ b/docs/api-reference/actions-controller-v-1/execute-action-proxy.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/actions/proxy +--- \ No newline at end of file diff --git a/docs/api-reference/actions-controller-v-1/execute-action.mdx b/docs/api-reference/actions-controller-v-1/execute-action.mdx new file mode 100644 index 00000000000..16a4f67fedc --- /dev/null +++ b/docs/api-reference/actions-controller-v-1/execute-action.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/actions/{actionId}/execute +--- \ No newline at end of file diff --git a/docs/api-reference/actions-controller-v-1/get-action.mdx b/docs/api-reference/actions-controller-v-1/get-action.mdx new file mode 100644 index 00000000000..6feda9f2482 --- /dev/null +++ b/docs/api-reference/actions-controller-v-1/get-action.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/actions/{actionId} +--- \ No newline at end of file diff --git a/docs/api-reference/actions-controller-v-1/list-actions.mdx b/docs/api-reference/actions-controller-v-1/list-actions.mdx new file mode 100644 index 00000000000..2036bd4a125 --- /dev/null +++ b/docs/api-reference/actions-controller-v-1/list-actions.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/actions +--- \ No newline at end of file diff --git a/docs/api-reference/actions-controller-v-2/execute-action-proxy.mdx b/docs/api-reference/actions-controller-v-2/execute-action-proxy.mdx new file mode 100644 index 00000000000..9c1021ce636 --- /dev/null +++ b/docs/api-reference/actions-controller-v-2/execute-action-proxy.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v2/actions/proxy +--- \ No newline at end of file diff --git a/docs/api-reference/actions-controller-v-2/execute-action.mdx b/docs/api-reference/actions-controller-v-2/execute-action.mdx new file mode 100644 index 00000000000..be574a28d0e --- /dev/null +++ b/docs/api-reference/actions-controller-v-2/execute-action.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v2/actions/{actionId}/execute +--- \ No newline at end of file diff --git a/docs/api-reference/actions-controller-v-2/list-actions.mdx b/docs/api-reference/actions-controller-v-2/list-actions.mdx new file mode 100644 index 00000000000..f007dd30769 --- /dev/null +++ b/docs/api-reference/actions-controller-v-2/list-actions.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v2/actions +--- \ No newline at end of file diff --git a/docs/api-reference/admin/sentry-dns.mdx b/docs/api-reference/admin/sentry-dns.mdx new file mode 100644 index 00000000000..39981c236a6 --- /dev/null +++ b/docs/api-reference/admin/sentry-dns.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/cli/sentry-dns +--- \ No newline at end of file diff --git a/docs/api-reference/api-keys/delete-api-key.mdx b/docs/api-reference/api-keys/delete-api-key.mdx new file mode 100644 index 00000000000..d0acaebcafd --- /dev/null +++ b/docs/api-reference/api-keys/delete-api-key.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /api/v1/api_keys/{id} +--- \ No newline at end of file diff --git a/docs/api-reference/api-keys/generate-api-key.mdx b/docs/api-reference/api-keys/generate-api-key.mdx new file mode 100644 index 00000000000..ff5d08e332a --- /dev/null +++ b/docs/api-reference/api-keys/generate-api-key.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/api_keys +--- \ No newline at end of file diff --git a/docs/api-reference/api-keys/list-api-keys.mdx b/docs/api-reference/api-keys/list-api-keys.mdx new file mode 100644 index 00000000000..f14e4037fca --- /dev/null +++ b/docs/api-reference/api-keys/list-api-keys.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/api_keys +--- \ No newline at end of file diff --git a/docs/api-reference/app-connector/create-connector.mdx b/docs/api-reference/app-connector/create-connector.mdx new file mode 100644 index 00000000000..81ccb63fda5 --- /dev/null +++ b/docs/api-reference/app-connector/create-connector.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/integrations +--- \ No newline at end of file diff --git a/docs/api-reference/app-connector/delete-connector.mdx b/docs/api-reference/app-connector/delete-connector.mdx new file mode 100644 index 00000000000..deeb8bf7ae6 --- /dev/null +++ b/docs/api-reference/app-connector/delete-connector.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /api/v1/integrations/{integrationId} +--- \ No newline at end of file diff --git a/docs/api-reference/app-connector/get-connector-info.mdx b/docs/api-reference/app-connector/get-connector-info.mdx new file mode 100644 index 00000000000..fa62f1a42f6 --- /dev/null +++ b/docs/api-reference/app-connector/get-connector-info.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/integrations/{integrationId} +--- \ No newline at end of file diff --git a/docs/api-reference/app-connector/list-global-connectors.mdx b/docs/api-reference/app-connector/list-global-connectors.mdx new file mode 100644 index 00000000000..b63105d1202 --- /dev/null +++ b/docs/api-reference/app-connector/list-global-connectors.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/integrations +--- \ No newline at end of file diff --git a/docs/api-reference/app-connector/patch-connector.mdx b/docs/api-reference/app-connector/patch-connector.mdx new file mode 100644 index 00000000000..f38985492bb --- /dev/null +++ b/docs/api-reference/app-connector/patch-connector.mdx @@ -0,0 +1,3 @@ +--- +openapi: patch /api/v1/integrations/{integrationId} +--- \ No newline at end of file diff --git a/docs/api-reference/app-connector/patch-post-connector.mdx b/docs/api-reference/app-connector/patch-post-connector.mdx new file mode 100644 index 00000000000..35f688bdc6a --- /dev/null +++ b/docs/api-reference/app-connector/patch-post-connector.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/integrations/{integrationId}/status +--- \ No newline at end of file diff --git a/docs/api-reference/app-login/handle-o-auth-2-callback.mdx b/docs/api-reference/app-login/handle-o-auth-2-callback.mdx new file mode 100644 index 00000000000..885fa0a462f --- /dev/null +++ b/docs/api-reference/app-login/handle-o-auth-2-callback.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/login/{appName}/auth +--- \ No newline at end of file diff --git a/docs/api-reference/app-login/verify-o-auth-2-login.mdx b/docs/api-reference/app-login/verify-o-auth-2-login.mdx new file mode 100644 index 00000000000..586539e1aec --- /dev/null +++ b/docs/api-reference/app-login/verify-o-auth-2-login.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/login/{appName}/callback +--- \ No newline at end of file diff --git a/docs/api-reference/app/add-custom-repo.mdx b/docs/api-reference/app/add-custom-repo.mdx new file mode 100644 index 00000000000..0bb483e0dd3 --- /dev/null +++ b/docs/api-reference/app/add-custom-repo.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/apps/custom-repo/add-repo +--- \ No newline at end of file diff --git a/docs/api-reference/app/add-open-api-spec.mdx b/docs/api-reference/app/add-open-api-spec.mdx new file mode 100644 index 00000000000..5e63bbf2f60 --- /dev/null +++ b/docs/api-reference/app/add-open-api-spec.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/apps/openapi/spec/add +--- \ No newline at end of file diff --git a/docs/api-reference/app/delete-open-api-spec-tool.mdx b/docs/api-reference/app/delete-open-api-spec-tool.mdx new file mode 100644 index 00000000000..f715287556c --- /dev/null +++ b/docs/api-reference/app/delete-open-api-spec-tool.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /api/v1/apps/openapi/spec/delete/{name} +--- \ No newline at end of file diff --git a/docs/api-reference/app/get-app.mdx b/docs/api-reference/app/get-app.mdx new file mode 100644 index 00000000000..176ed2ba416 --- /dev/null +++ b/docs/api-reference/app/get-app.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/apps/{appName} +--- \ No newline at end of file diff --git a/docs/api-reference/app/get-apps.mdx b/docs/api-reference/app/get-apps.mdx new file mode 100644 index 00000000000..4b6339c2f21 --- /dev/null +++ b/docs/api-reference/app/get-apps.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/apps +--- \ No newline at end of file diff --git a/docs/api-reference/app/get-custom-repo.mdx b/docs/api-reference/app/get-custom-repo.mdx new file mode 100644 index 00000000000..efaeac8e5b1 --- /dev/null +++ b/docs/api-reference/app/get-custom-repo.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/apps/custom-repo/get-repo +--- \ No newline at end of file diff --git a/docs/api-reference/app/get-open-api-spec-logs.mdx b/docs/api-reference/app/get-open-api-spec-logs.mdx new file mode 100644 index 00000000000..38a35bbd108 --- /dev/null +++ b/docs/api-reference/app/get-open-api-spec-logs.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/apps/openapi/spec/logs/{name} +--- \ No newline at end of file diff --git a/docs/api-reference/app/get-opena-api-specs.mdx b/docs/api-reference/app/get-opena-api-specs.mdx new file mode 100644 index 00000000000..395fb0565a6 --- /dev/null +++ b/docs/api-reference/app/get-opena-api-specs.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/apps/openapi/spec/list +--- \ No newline at end of file diff --git a/docs/api-reference/app/sync-apps.mdx b/docs/api-reference/app/sync-apps.mdx new file mode 100644 index 00000000000..743553660fd --- /dev/null +++ b/docs/api-reference/app/sync-apps.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/apps/sync +--- \ No newline at end of file diff --git a/docs/api-reference/cli/get-cli-code.mdx b/docs/api-reference/cli/get-cli-code.mdx new file mode 100644 index 00000000000..33028de534f --- /dev/null +++ b/docs/api-reference/cli/get-cli-code.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/cli/get-cli-code +--- \ No newline at end of file diff --git a/docs/api-reference/cli/handle-cli-code-exchange.mdx b/docs/api-reference/cli/handle-cli-code-exchange.mdx new file mode 100644 index 00000000000..d68ff581083 --- /dev/null +++ b/docs/api-reference/cli/handle-cli-code-exchange.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/cli/generate-cli-session +--- \ No newline at end of file diff --git a/docs/api-reference/cli/handle-cli-code-verification.mdx b/docs/api-reference/cli/handle-cli-code-verification.mdx new file mode 100644 index 00000000000..aea620b35f7 --- /dev/null +++ b/docs/api-reference/cli/handle-cli-code-verification.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/cli/verify-cli-code +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/delete-client.mdx b/docs/api-reference/client-auth/delete-client.mdx new file mode 100644 index 00000000000..903816d98dc --- /dev/null +++ b/docs/api-reference/client-auth/delete-client.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /api/v1/client/auth/delete/{clientId} +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/get-user-info.mdx b/docs/api-reference/client-auth/get-user-info.mdx new file mode 100644 index 00000000000..c5a220afc00 --- /dev/null +++ b/docs/api-reference/client-auth/get-user-info.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/client/auth/client_info +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/google-login.mdx b/docs/api-reference/client-auth/google-login.mdx new file mode 100644 index 00000000000..e772a6e3193 --- /dev/null +++ b/docs/api-reference/client-auth/google-login.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/client/auth/google_login +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/identify-client.mdx b/docs/api-reference/client-auth/identify-client.mdx new file mode 100644 index 00000000000..44d79d18b1f --- /dev/null +++ b/docs/api-reference/client-auth/identify-client.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/client/auth/identify +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/logout-api.mdx b/docs/api-reference/client-auth/logout-api.mdx new file mode 100644 index 00000000000..58e7adaebc6 --- /dev/null +++ b/docs/api-reference/client-auth/logout-api.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/client/auth/logout +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/pusher-user-auth.mdx b/docs/api-reference/client-auth/pusher-user-auth.mdx new file mode 100644 index 00000000000..9b508a635bf --- /dev/null +++ b/docs/api-reference/client-auth/pusher-user-auth.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/client/auth/pusher_auth +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/send-magic-link.mdx b/docs/api-reference/client-auth/send-magic-link.mdx new file mode 100644 index 00000000000..9933c232342 --- /dev/null +++ b/docs/api-reference/client-auth/send-magic-link.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/client/auth/send_magic_link +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/track-client.mdx b/docs/api-reference/client-auth/track-client.mdx new file mode 100644 index 00000000000..1beadf8374f --- /dev/null +++ b/docs/api-reference/client-auth/track-client.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/client/auth/track +--- \ No newline at end of file diff --git a/docs/api-reference/client-auth/verify-magic-link.mdx b/docs/api-reference/client-auth/verify-magic-link.mdx new file mode 100644 index 00000000000..1376eb7e928 --- /dev/null +++ b/docs/api-reference/client-auth/verify-magic-link.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/client/auth/verify_magic_link +--- \ No newline at end of file diff --git a/docs/api-reference/connections/delete-connection.mdx b/docs/api-reference/connections/delete-connection.mdx new file mode 100644 index 00000000000..272f1094258 --- /dev/null +++ b/docs/api-reference/connections/delete-connection.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /api/v1/connectedAccounts/{connectedAccountId} +--- \ No newline at end of file diff --git a/docs/api-reference/connections/disable-connection.mdx b/docs/api-reference/connections/disable-connection.mdx new file mode 100644 index 00000000000..eee5a28992f --- /dev/null +++ b/docs/api-reference/connections/disable-connection.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/connectedAccounts/{connectedAccountId}/disable +--- \ No newline at end of file diff --git a/docs/api-reference/connections/enable-connection.mdx b/docs/api-reference/connections/enable-connection.mdx new file mode 100644 index 00000000000..288bcb14204 --- /dev/null +++ b/docs/api-reference/connections/enable-connection.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/connectedAccounts/{connectedAccountId}/enable +--- \ No newline at end of file diff --git a/docs/api-reference/connections/get-connection.mdx b/docs/api-reference/connections/get-connection.mdx new file mode 100644 index 00000000000..4af77855821 --- /dev/null +++ b/docs/api-reference/connections/get-connection.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/connectedAccounts/{connectedAccountId} +--- \ No newline at end of file diff --git a/docs/api-reference/connections/get-connections.mdx b/docs/api-reference/connections/get-connections.mdx new file mode 100644 index 00000000000..4fa6aff407e --- /dev/null +++ b/docs/api-reference/connections/get-connections.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/connectedAccounts +--- \ No newline at end of file diff --git a/docs/api-reference/connections/initiate-connection.mdx b/docs/api-reference/connections/initiate-connection.mdx new file mode 100644 index 00000000000..597a452e4b8 --- /dev/null +++ b/docs/api-reference/connections/initiate-connection.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/connectedAccounts +--- \ No newline at end of file diff --git a/docs/api-reference/logs/get-logs.mdx b/docs/api-reference/logs/get-logs.mdx new file mode 100644 index 00000000000..2640246ef63 --- /dev/null +++ b/docs/api-reference/logs/get-logs.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/logs/ +--- \ No newline at end of file diff --git a/docs/api-reference/metadata/get-metadata.mdx b/docs/api-reference/metadata/get-metadata.mdx new file mode 100644 index 00000000000..0829ed5282b --- /dev/null +++ b/docs/api-reference/metadata/get-metadata.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/metadata +--- \ No newline at end of file diff --git a/docs/api-reference/metadata/get-toggle-info.mdx b/docs/api-reference/metadata/get-toggle-info.mdx new file mode 100644 index 00000000000..dcc2597f82b --- /dev/null +++ b/docs/api-reference/metadata/get-toggle-info.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/metadata/toggle.info +--- \ No newline at end of file diff --git a/docs/api-reference/metadata/toggle-trigger-state.mdx b/docs/api-reference/metadata/toggle-trigger-state.mdx new file mode 100644 index 00000000000..b638f69c04b --- /dev/null +++ b/docs/api-reference/metadata/toggle-trigger-state.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/metadata/toggle/trigger +--- \ No newline at end of file diff --git a/docs/api-reference/metadata/update-metadata.mdx b/docs/api-reference/metadata/update-metadata.mdx new file mode 100644 index 00000000000..9a0594d60ed --- /dev/null +++ b/docs/api-reference/metadata/update-metadata.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/metadata +--- \ No newline at end of file diff --git a/docs/api-reference/team/invite-member.mdx b/docs/api-reference/team/invite-member.mdx new file mode 100644 index 00000000000..171f7863ecc --- /dev/null +++ b/docs/api-reference/team/invite-member.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/team/invite +--- \ No newline at end of file diff --git a/docs/api-reference/team/list-members.mdx b/docs/api-reference/team/list-members.mdx new file mode 100644 index 00000000000..91a2acb4f41 --- /dev/null +++ b/docs/api-reference/team/list-members.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/team/members +--- \ No newline at end of file diff --git a/docs/api-reference/team/remove-member.mdx b/docs/api-reference/team/remove-member.mdx new file mode 100644 index 00000000000..222d9af7680 --- /dev/null +++ b/docs/api-reference/team/remove-member.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /api/v1/team/members/{id} +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/delete-trigger.mdx b/docs/api-reference/triggers/delete-trigger.mdx new file mode 100644 index 00000000000..3c01e962c7c --- /dev/null +++ b/docs/api-reference/triggers/delete-trigger.mdx @@ -0,0 +1,3 @@ +--- +openapi: delete /api/v1/triggers/instance/{triggerInstanceId} +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/disable-trigger.mdx b/docs/api-reference/triggers/disable-trigger.mdx new file mode 100644 index 00000000000..141113942c0 --- /dev/null +++ b/docs/api-reference/triggers/disable-trigger.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/triggers/disable/{triggerInstanceId} +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/enable-trigger.mdx b/docs/api-reference/triggers/enable-trigger.mdx new file mode 100644 index 00000000000..307a5ec8724 --- /dev/null +++ b/docs/api-reference/triggers/enable-trigger.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/triggers/enable/{connectedAccountId}/{triggerName} +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/get-active-triggers.mdx b/docs/api-reference/triggers/get-active-triggers.mdx new file mode 100644 index 00000000000..ae909e84161 --- /dev/null +++ b/docs/api-reference/triggers/get-active-triggers.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/triggers/active_triggers +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/get-logs.mdx b/docs/api-reference/triggers/get-logs.mdx new file mode 100644 index 00000000000..c522d10979b --- /dev/null +++ b/docs/api-reference/triggers/get-logs.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/triggers/logs +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/get-trigger.mdx b/docs/api-reference/triggers/get-trigger.mdx new file mode 100644 index 00000000000..d7ff538b115 --- /dev/null +++ b/docs/api-reference/triggers/get-trigger.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/triggers/get/{triggerId} +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/get-webhook-url.mdx b/docs/api-reference/triggers/get-webhook-url.mdx new file mode 100644 index 00000000000..abfd13ae99e --- /dev/null +++ b/docs/api-reference/triggers/get-webhook-url.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/triggers/callback_url +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/handle-pusher-events.mdx b/docs/api-reference/triggers/handle-pusher-events.mdx new file mode 100644 index 00000000000..a706f720caa --- /dev/null +++ b/docs/api-reference/triggers/handle-pusher-events.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/triggers/pusher +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/handle-trigger.mdx b/docs/api-reference/triggers/handle-trigger.mdx new file mode 100644 index 00000000000..06ad44798d2 --- /dev/null +++ b/docs/api-reference/triggers/handle-trigger.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/triggers/handle/{appName}/{clientId} +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/list-triggers.mdx b/docs/api-reference/triggers/list-triggers.mdx new file mode 100644 index 00000000000..c6001f25d1b --- /dev/null +++ b/docs/api-reference/triggers/list-triggers.mdx @@ -0,0 +1,3 @@ +--- +openapi: get /api/v1/triggers +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/set-callback-url-1.mdx b/docs/api-reference/triggers/set-callback-url-1.mdx new file mode 100644 index 00000000000..7e8274aab1a --- /dev/null +++ b/docs/api-reference/triggers/set-callback-url-1.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/triggers/set_callback_url +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/set-callback-url.mdx b/docs/api-reference/triggers/set-callback-url.mdx new file mode 100644 index 00000000000..cfe053b0fbf --- /dev/null +++ b/docs/api-reference/triggers/set-callback-url.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/triggers/setCallbackURL +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/switch-post-trigger-instance-status.mdx b/docs/api-reference/triggers/switch-post-trigger-instance-status.mdx new file mode 100644 index 00000000000..809ccdc28be --- /dev/null +++ b/docs/api-reference/triggers/switch-post-trigger-instance-status.mdx @@ -0,0 +1,3 @@ +--- +openapi: post /api/v1/triggers/instance/{triggerId}/status +--- \ No newline at end of file diff --git a/docs/api-reference/triggers/switch-trigger-instance-status.mdx b/docs/api-reference/triggers/switch-trigger-instance-status.mdx new file mode 100644 index 00000000000..b19b3b07c2d --- /dev/null +++ b/docs/api-reference/triggers/switch-trigger-instance-status.mdx @@ -0,0 +1,3 @@ +--- +openapi: patch /api/v1/triggers/instance/{triggerId}/status +--- \ No newline at end of file diff --git a/docs/composio_openapi.json b/docs/composio_openapi.json new file mode 100644 index 00000000000..c5332e3a76e --- /dev/null +++ b/docs/composio_openapi.json @@ -0,0 +1,5573 @@ +{ + "components": { + "schemas": { + "MagicLinkResDTO": { + "properties": { + "status": { + "type": "string" + } + }, + "type": "object", + "required": [ + "status" + ] + }, + "MagicLinkReqDTO": { + "properties": { + "email": { + "format": "email", + "type": "string", + "description": "The email of the user" + }, + "verifyHost": { + "type": "string", + "description": "The frontend host of the user" + } + }, + "type": "object", + "required": [ + "email", + "verifyHost" + ] + }, + "LogoutResDTO": { + "properties": { + "message": { + "type": "string", + "description": "Message confirming the logout" + } + }, + "type": "object", + "required": [ + "message" + ] + }, + "VerifyMagicLinkReqDTO": { + "properties": { + "token": { + "type": "string", + "description": "The magic link token" + } + }, + "type": "object", + "required": [ + "token" + ] + }, + "VerifyMagicLinkDataDTO": { + "properties": { + "clientId": { + "type": "string" + }, + "isValid": { + "type": "boolean" + }, + "jwtToken": { + "type": "string" + }, + "email": { + "type": "string", + "format": "email" + } + }, + "type": "object", + "required": [ + "clientId", + "isValid", + "jwtToken", + "email" + ] + }, + "VerifyMagicLinkResDTO": { + "properties": { + "message": { + "type": "string", + "description": "Message indicating the result of the verification" + }, + "data": { + "$ref": "#/components/schemas/VerifyMagicLinkDataDTO", + "description": "Data containing client and token information if verification is successful" + } + }, + "type": "object", + "required": [ + "message" + ] + }, + "IdentifyClientReqDTO": { + "properties": { + "hash": { + "type": "string", + "description": "The hash of the client" + }, + "framework": { + "type": "string", + "description": "The framework used by the client" + } + }, + "type": "object", + "required": [ + "hash" + ] + }, + "IdentifyClientResDTO": { + "properties": { + "clientId": { + "type": "string", + "description": "The client ID" + }, + "apiKey": { + "type": "string", + "description": "The API key associated with the client" + }, + "email": { + "type": "string", + "description": "The email associated with the client" + } + }, + "type": "object", + "required": [ + "clientId", + "apiKey", + "email" + ] + }, + "UserGitUserInfo": { + "properties": { + "name": { + "type": "string" + }, + "email": { + "format": "email", + "type": "string" + } + }, + "type": "object", + "required": [ + "email" + ] + }, + "TrackClientReqDTO": { + "properties": { + "framework": { + "type": "string", + "description": "The framework used by the client" + }, + "mac_address": { + "type": "string", + "description": "The MAC address of the client device" + }, + "user_git_user_info": { + "$ref": "#/components/schemas/UserGitUserInfo", + "description": "User Git information" + } + }, + "type": "object", + "required": [ + "framework" + ] + }, + "TrackClientResDTO": { + "properties": { + "message": { + "type": "string", + "description": "Message indicating the result of the tracking operation" + } + }, + "type": "object", + "required": [ + "message" + ] + }, + "DeleteRowAPIDTO": { + "properties": { + "status": { + "type": "string", + "description": "Status of the delete operation" + }, + "count": { + "type": "number", + "description": "Number of records deleted" + } + }, + "type": "object", + "required": [ + "status", + "count" + ] + }, + "InviteMemberReqDTO": { + "properties": { + "email": { + "format": "email", + "type": "string", + "description": "The email of the member" + }, + "name": { + "type": "string", + "description": "The name of the member" + }, + "verifyHost": { + "type": "string", + "description": "The host to verify the member" + } + }, + "type": "object", + "required": [ + "email", + "name", + "verifyHost" + ] + }, + "MemberResDTO": { + "properties": { + "email": { + "type": "string", + "description": "The email of the member" + }, + "id": { + "type": "string", + "description": "The uuid identifier for the member" + }, + "name": { + "type": "string", + "description": "The name of the member" + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The creation date of the member record" + }, + "updatedAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The last update date of the member record" + } + }, + "type": "object", + "required": [ + "email", + "id", + "name" + ] + }, + "GenerateAPIKeyReqDTO": { + "properties": { + "name": { + "type": "string", + "description": "The name of the API key to be generated" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "APIKeyResDTO": { + "properties": { + "id": { + "type": "string", + "description": "The ID of the API key" + }, + "name": { + "type": "string", + "description": "The name of the API key" + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The creation date of the API key" + }, + "updatedAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The last update date of the API key" + }, + "key": { + "type": "string", + "description": "The generated API key" + } + }, + "type": "object", + "required": [ + "id", + "name", + "createdAt", + "updatedAt", + "key" + ] + }, + "DeleteAPIKeyReqDTO": { + "properties": { + "id": { + "type": "string", + "description": "The ID of the API key to be deleted" + } + }, + "type": "object", + "required": [ + "id" + ] + }, + "SingleAppInfoResDTO": { + "properties": { + "appId": { + "type": "string", + "description": "The unique identifier for the app" + }, + "key": { + "type": "string", + "description": "The key of the app" + }, + "name": { + "type": "string", + "description": "The name of the app" + }, + "description": { + "type": "string", + "description": "The description of the app" + }, + "logo": { + "type": "string", + "description": "The logo of the app" + }, + "categories": { + "items": { + "type": "string" + }, + "type": "array", + "description": "The categories of the app" + }, + "path": { + "type": "string", + "description": "The path of the app" + }, + "docs": { + "type": "string", + "description": "The documentation URL of the app" + }, + "configuration_docs_text": { + "type": "string", + "description": "The configuration documentation text of the app" + }, + "status": { + "type": "string", + "description": "The status of the app" + }, + "documentation_doc_text": { + "type": "string", + "description": "The documentation text of the app" + }, + "testConnectors": { + "items": { + + }, + "type": "array", + "description": "The test connectors of the app" + }, + "no_auth": { + "type": "boolean", + "description": "Indicates if the app has no authentication" + }, + "auth_schemes": { + "items": { + + }, + "type": "array", + "description": "The authentication schemes of the app" + }, + "meta": { + "description": "The metadata of the app" + }, + "yaml": { + "description": "The yaml of the app" + } + }, + "type": "object", + "required": [ + "appId", + "key", + "name", + "description" + ] + }, + "AddToolsReqDTO": { + "properties": { + "name": { + "type": "string", + "description": "The name of the tool" + }, + "openApiSpecYaml": { + "type": "string", + "description": "The OpenAPI specification in YAML format" + }, + "integrationYaml": { + "type": "string", + "description": "The integration details in YAML format" + } + }, + "type": "object", + "required": [ + "name", + "openApiSpecYaml", + "integrationYaml" + ] + }, + "OpenAPISpecListResDTO": { + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the OpenAPI spec" + }, + "name": { + "type": "string", + "description": "Name of the OpenAPI spec" + }, + "clientId": { + "type": "string", + "description": "Client identifier" + }, + "openApiSpec": { + "type": "string", + "description": "OpenAPI specification in YAML format" + }, + "integrationYaml": { + "type": "string", + "description": "Integration details in YAML format" + }, + "enabled": { + "type": "boolean", + "description": "Whether the OpenAPI spec is enabled" + }, + "openAPISpecURL": { + "type": "string", + "description": "URL to the OpenAPI specification", + "format": "uri", + "nullable": true + }, + "integrationYAMLURL": { + "type": "string", + "description": "URL to the integration YAML", + "format": "uri", + "nullable": true + }, + "lastSyncAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "Last synchronization date and time", + "format": "date-time" + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "Creation date and time", + "format": "date-time" + }, + "updatedAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "Last update date and time", + "format": "date-time" + }, + "jobStatus": { + "enum": [ + "running", + "success", + "failed" + ], + "type": "string", + "description": "The job status of the app" + } + }, + "type": "object", + "required": [ + "id", + "name", + "clientId", + "openApiSpec", + "integrationYaml", + "enabled", + "lastSyncAt", + "createdAt", + "updatedAt" + ] + }, + "AddRepoURLResDTO": { + "properties": { + "repoUrl": { + "type": "string", + "description": "Repository URL" + } + }, + "type": "object", + "required": [ + "repoUrl" + ] + }, + "DeleteToolsReqDTO": { + "properties": { + "name": { + "type": "string", + "description": "Name of the tool" + } + }, + "type": "object", + "required": [ + "name" + ] + }, + "DeleteToolsResDTO": { + "properties": { + "message": { + "type": "string", + "description": "Message indicating successful deletion of tools" + } + }, + "type": "object", + "required": [ + "message" + ] + }, + "AddToolsRequestDTO": { + "properties": { + "name": { + "type": "string", + "description": "The name of the tool" + }, + "open_api_spec_yaml": { + "type": "string", + "description": "The OpenAPI specification in YAML format" + }, + "integration_yaml": { + "type": "string", + "description": "The integration details in YAML format" + } + }, + "type": "object", + "required": [ + "name", + "open_api_spec_yaml", + "integration_yaml" + ] + }, + "AddRepoURLReqDTO": { + "properties": { + "repoUrl": { + "type": "string", + "description": "Repository URL" + } + }, + "type": "object", + "required": [ + "repoUrl" + ] + }, + "AppQueryDTO": { + "properties": { + "category": { + "type": "string", + "description": "Category of the app" + } + }, + "type": "object" + }, + "AppInfoResponseDto": { + "properties": { + "appId": { + "type": "string", + "description": "The ID of the app" + }, + "key": { + "type": "string", + "description": "The key of the app" + }, + "name": { + "type": "string", + "description": "The name of the app" + }, + "description": { + "type": "string", + "description": "The description of the app" + }, + "logo": { + "type": "string", + "description": "The logo of the app" + }, + "categories": { + "items": { + + }, + "type": "string", + "description": "The categories of the app" + }, + "enabled": { + "type": "boolean", + "description": "Indicates if the app is enabled" + }, + "no_auth": { + "type": "boolean", + "description": "Indicates if the app has no authentication" + } + }, + "type": "object", + "required": [ + "appId", + "key", + "name", + "description", + "logo", + "categories", + "enabled" + ] + }, + "AppListResDTO": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/AppInfoResponseDto" + }, + "type": "array", + "description": "List of app details" + }, + "totalPages": { + "type": "number", + "description": "Total number of pages" + } + }, + "type": "object", + "required": [ + "items", + "totalPages" + ] + }, + "GetConnectorInfoResDTO": { + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the connector" + }, + "authScheme": { + "type": "string", + "description": "Authentication scheme used by the connector" + }, + "name": { + "type": "string", + "description": "Name of the connector" + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "Creation date of the connector" + }, + "updatedAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "Last update date of the connector" + }, + "enabled": { + "type": "boolean", + "description": "Flag to indicate if the connector is currently enabled" + }, + "deleted": { + "type": "boolean", + "description": "Flag to indicate if the connector has been deleted" + }, + "appId": { + "type": "string", + "description": "Application ID associated with the connector" + }, + "defaultConnectorId": { + "type": "string", + "description": "Default connector ID if one exists" + }, + "authConfig": { + "type": "object", + "description": "Authentication configuration with sensitive data obscured" + }, + "expectedInputFields": { + "items": { + "type": "string" + }, + "type": "array", + "description": "List of required fields expected from the customer" + }, + "logo": { + "type": "string", + "description": "Logo URL of the application associated with the connector" + }, + "appName": { + "type": "string", + "description": "Name of the application associated with the connector" + }, + "useComposioAuth": { + "type": "boolean", + "description": "Flag to indicate if Composio authentication is used" + } + }, + "type": "object", + "required": [ + "enabled", + "appId", + "authConfig", + "expectedInputFields", + "logo", + "appName", + "useComposioAuth" + ] + }, + "AuthConfigDTO": { + "properties": { + "scopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "user_scopes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CreateConnectorPayloadDTO": { + "properties": { + "name": { + "type": "string", + "description": "Name of the connector" + }, + "authScheme": { + "type": "string", + "description": "Authentication scheme" + }, + "authConfig": { + "$ref": "#/components/schemas/AuthConfigDTO", + "description": "Authentication configuration" + }, + "useComposioAuth": { + "type": "boolean", + "description": "Flag to indicate if Composio authentication should be used", + "anyOf": [ + { + "type": "boolean" + } + ] + }, + "appId": { + "type": "string", + "description": "Application ID" + }, + "forceNewIntegration": { + "type": "boolean", + "description": "Flag to force new integration" + } + }, + "type": "object", + "required": [ + "name", + "appId" + ] + }, + "PatchConnectorReqDTO": { + "properties": { + "authConfig": { + "type": "object", + "description": "Authentication configuration for the connector" + }, + "enabled": { + "type": "boolean", + "description": "Flag to indicate if the connector is enabled" + } + }, + "type": "object" + }, + "PatchConnectorResDTO": { + "properties": { + "status": { + "type": "string", + "description": "Status of the patch operation" + } + }, + "type": "object", + "required": [ + "status" + ] + }, + "ConnectorListItemDTO": { + "properties": { + "appName": { + "type": "string", + "description": "Application name associated with the connector" + }, + "_count": { + "type": "object", + "description": "Count of connections for the connector" + }, + "connections": { + "items": { + + }, + "type": "array", + "description": "List of connections with their details and request logs count" + }, + "id": { + "type": "string", + "description": "Unique identifier of the connector" + }, + "name": { + "type": "string", + "description": "Name of the connector" + }, + "authScheme": { + "type": "string", + "description": "Authentication scheme used by the connector" + }, + "createdAt": { + "oneOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ], + "description": "Creation date of the connector" + }, + "updatedAt": { + "oneOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ], + "description": "Last update date of the connector" + }, + "enabled": { + "type": "boolean", + "description": "Flag to indicate if the connector is enabled" + }, + "deleted": { + "type": "boolean", + "description": "Flag to indicate if the connector is deleted" + }, + "appId": { + "type": "string", + "description": "App ID associated with the connector" + }, + "defaultConnectorId": { + "type": "string", + "description": "Default connector ID if available" + } + }, + "type": "object", + "required": [ + "appName", + "_count", + "connections", + "id", + "name", + "authScheme", + "createdAt", + "updatedAt", + "enabled", + "appId" + ] + }, + "GetConnectorListResDTO": { + "properties": { + "items": { + "items": { + + }, + "type": "array", + "description": "List of connectors" + }, + "totalPages": { + "type": "number", + "description": "Total number of pages available" + }, + "page": { + "type": "number", + "description": "Current page number" + } + }, + "type": "object", + "required": [ + "items", + "totalPages", + "page" + ] + }, + "PageInfo": { + "properties": { + "total": { + "minimum": 0, + "type": "integer" + }, + "page": { + "minimum": 1, + "type": "integer" + }, + "pageSize": { + "minimum": 1, + "type": "integer" + }, + "totalPages": { + "minimum": 1, + "type": "integer" + } + }, + "type": "object", + "required": [ + "total", + "page", + "pageSize", + "totalPages" + ] + }, + "ConnectionWithAppData": { + "properties": { + "id": { + "type": "string" + }, + "integrationId": { + "type": "string" + }, + "clientUniqueUserId": { + "type": "string" + }, + "status": { + "type": "string" + }, + "data": { + "type": "object" + }, + "deleted": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "createdAt": { + "oneOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ] + }, + "updatedAt": { + "oneOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ] + }, + "appUniqueId": { + "type": "string" + }, + "appName": { + "type": "string" + }, + "logo": { + "type": "string" + }, + "authConfig": { + "type": "object" + } + }, + "type": "object", + "required": [ + "id", + "integrationId", + "status", + "createdAt", + "updatedAt", + "appUniqueId", + "appName" + ] + }, + "GetConnectionsResult": { + "properties": { + "connections": { + "items": { + "$ref": "#/components/schemas/ConnectionWithAppData" + }, + "type": "array" + }, + "pageInfo": { + "$ref": "#/components/schemas/PageInfo" + } + }, + "type": "object", + "required": [ + "connections", + "pageInfo" + ] + }, + "ActionExecutionServiceResDTO": { + "properties": { + "response_data": { + "type": "boolean" + }, + "execution_details": { + "type": "object" + } + }, + "type": "object", + "required": [ + "response_data", + "execution_details" + ] + }, + "ToolsExecuteReqDto": { + "properties": { + "actionName": { + "type": "string" + }, + "runInSandbox": { + "type": "boolean" + }, + "input": { + "type": "object" + }, + "nlaInput": { + "type": "string" + }, + "authorizationData": { + "type": "object" + }, + "appSchema": { + "type": "object" + } + }, + "type": "object", + "required": [ + "actionName", + "runInSandbox", + "input" + ] + }, + "DirectExecuteReqDto": { + "properties": { + "endpoint": { + "type": "string" + }, + "base_url": { + "type": "string" + }, + "headers": { + "type": "object" + }, + "queryParams": { + "type": "object" + } + }, + "type": "object", + "required": [ + "endpoint", + "base_url", + "headers", + "queryParams" + ] + }, + "ActionExecutionResDto": { + "properties": { + "response_data": { + "type": "object" + }, + "status": { + "enum": [ + "success", + "error" + ], + "type": "string" + }, + "upstreamStatusCode": { + "type": "number" + } + }, + "type": "object", + "required": [ + "response_data", + "status", + "upstreamStatusCode" + ] + }, + "ActionExecutionReqDTO": { + "properties": { + "connectedAccountId": { + "type": "string" + }, + "appName": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "input": { + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "ActionExecutionResDTO": { + "properties": { + "connectedAccountId": { + "type": "string" + }, + "appName": { + "type": "string" + }, + "entityId": { + "type": "string" + }, + "endpoint": { + "type": "string" + }, + "input": { + "type": "object" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "ActionDetails": { + "properties": { + "appId": { + "type": "string" + }, + "appKey": { + "type": "string" + }, + "appName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "logo": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parameters": { + "type": "object" + }, + "response": { + "type": "object" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "appKey", + "appName", + "description", + "displayName", + "enabled", + "logo", + "name", + "parameters", + "response", + "tags" + ] + }, + "ActionsListResponseDTO": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ActionDetails" + }, + "type": "array" + }, + "page": { + "type": "number" + }, + "totalPages": { + "type": "number" + } + }, + "type": "object", + "required": [ + "items", + "page", + "totalPages" + ] + }, + "ExecuteActionResDTO": { + "properties": { + "response_data": { + "type": "boolean", + "description": "Indicates if the action was executed successfully" + }, + "execution_details": { + "type": "object", + "description": "Details of the execution status" + } + }, + "type": "object", + "required": [ + "response_data", + "execution_details" + ] + }, + "ActionsQueryDTO": { + "properties": { + "appNames": { + "type": "string", + "description": "Names of the apps" + }, + "useCase": { + "type": "string", + "description": "Use case" + }, + "showEnabledOnly": { + "type": "boolean", + "description": "Show enabled only" + }, + "limit": { + "type": "number", + "description": "Limit" + }, + "apps": { + "type": "string" + }, + "actions": { + "type": "string" + }, + "tags": { + "type": "string" + }, + "usecaseLimit": { + "type": "number" + }, + "filterImportantActions": { + "type": "boolean" + }, + "showAll": { + "type": "boolean" + } + }, + "type": "object" + }, + "ActionsControllerV1": { + "properties": { + "getAction": { + "items": { + + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "getAction" + ] + }, + "ConnectionParams": { + "properties": { + "integrationId": { + "type": "string" + }, + "connectionParams": { + "type": "object" + }, + "isDisabled": { + "type": "boolean" + }, + "invocationCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "clientUniqueUserId": { + "type": "string" + }, + "status": { + "type": "string" + }, + "data": { + "type": "object" + }, + "deleted": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "createdAt": { + "oneOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ] + }, + "updatedAt": { + "oneOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ] + }, + "appUniqueId": { + "type": "string" + }, + "appName": { + "type": "string" + }, + "logo": { + "type": "string" + }, + "authConfig": { + "type": "object" + } + }, + "type": "object", + "required": [ + "integrationId", + "isDisabled", + "invocationCount", + "id", + "status", + "createdAt", + "updatedAt", + "appUniqueId", + "appName" + ] + }, + "GetConnectionsResponseDto": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ConnectionParams" + }, + "type": "array" + }, + "totalPages": { + "type": "number" + }, + "page": { + "type": "number" + } + }, + "type": "object", + "required": [ + "items", + "totalPages", + "page" + ] + }, + "GetConnectionsQueryDto": { + "properties": { + "page": { + "type": "number" + }, + "pageSize": { + "type": "number" + }, + "appNames": { + + }, + "integrationId": { + "type": "string" + }, + "connectionId": { + "type": "string" + }, + "user_uuid": { + "type": "string" + }, + "showActiveOnly": { + "type": "boolean" + }, + "status": { + "type": "string" + }, + "showDisabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "InitiateConnectionPayloadDto": { + "properties": { + "data": { + "type": "string", + "minLength": 1 + }, + "integrationId": { + "minLength": 1, + "type": "string" + }, + "redirectUri": { + "type": "string" + }, + "userUuid": { + "type": "string" + } + }, + "type": "object", + "required": [ + "integrationId" + ] + }, + "InitiateConnectionResponse": { + "properties": { + "connectionStatus": { + "minLength": 1, + "type": "string" + }, + "connectedAccountId": { + "minLength": 1, + "type": "string" + } + }, + "type": "object", + "required": [ + "connectionStatus", + "connectedAccountId" + ] + }, + "OAuth2CallbackQueryDto": { + "properties": { + "state": { + "type": "string" + } + }, + "type": "object", + "required": [ + "state" + ] + }, + "RedirectUriDTO": { + "properties": { + "redirectUri": { + "type": "string" + } + }, + "type": "object", + "required": [ + "redirectUri" + ] + }, + "ListTriggersQueryDTO": { + "properties": { + "appNames": { + "type": "string", + "description": "Names of the apps" + }, + "connectedAccountIds": { + "type": "string", + "description": "IDs of the connected accounts" + }, + "triggerIds": { + "type": "string", + "description": "IDs of the triggers" + }, + "showEnabledOnly": { + "type": "boolean", + "description": "Show enabled only" + } + }, + "type": "object" + }, + "GetActiveTriggersQueryDTO": { + "properties": { + "connectedAccountIds": { + "type": "string", + "description": "IDs of the connected accounts" + }, + "integrationIds": { + "type": "string", + "description": "IDs of the integrations" + }, + "triggerIds": { + "type": "string", + "description": "IDs of the triggers" + }, + "triggerNames": { + "type": "string", + "description": "Names of the triggers" + }, + "page": { + "type": "number", + "description": "Page number" + }, + "limit": { + "type": "number", + "description": "Limit per page" + }, + "showDisabled": { + "type": "boolean", + "description": "Show disabled triggers" + } + }, + "type": "object" + }, + "GetLogsQueryDTO": { + "properties": { + "connectionId": { + "type": "string", + "description": "ID of the connection" + }, + "integrationId": { + "type": "string", + "description": "ID of the integration" + }, + "page": { + "type": "number", + "description": "Page number" + }, + "limit": { + "type": "number", + "description": "Limit per page" + } + }, + "type": "object" + }, + "TriggerResDTO": { + "properties": { + "name": { + "type": "string", + "description": "Trigger name" + }, + "display_name": { + "type": "string", + "description": "Trigger display name" + }, + "description": { + "type": "string", + "description": "Trigger description" + }, + "enabled": { + "type": "boolean", + "description": "Is trigger enabled" + }, + "config": { + "type": "object", + "description": "Trigger configuration" + }, + "payload": { + "type": "object", + "description": "Trigger payload" + }, + "logo": { + "type": "string", + "description": "Trigger logo URL" + }, + "count": { + "type": "number", + "description": "Trigger count" + }, + "appKey": { + "type": "string", + "description": "App key" + }, + "appId": { + "type": "string", + "description": "App ID" + }, + "appName": { + "type": "string", + "description": "App name" + }, + "instructions": { + "type": "string", + "description": "Trigger instructions" + }, + "type": { + "type": "string", + "description": "Trigger type" + } + }, + "type": "object", + "required": [ + "name", + "display_name", + "appKey", + "appId", + "appName" + ] + }, + "TriggerConfig": { + "properties": { + "repo": { + "type": "string", + "description": "Repository name" + }, + "owner": { + "type": "string", + "description": "Repository owner" + } + }, + "type": "object", + "required": [ + "repo", + "owner" + ] + }, + "ActiveTriggerInstance": { + "properties": { + "id": { + "type": "string", + "description": "Trigger instance ID" + }, + "connectionId": { + "type": "string", + "description": "Connected account ID" + }, + "triggerName": { + "type": "string", + "description": "Trigger name" + }, + "triggerData": { + "type": "string", + "description": "Trigger data" + }, + "triggerConfig": { + "$ref": "#/components/schemas/TriggerConfig", + "description": "Trigger configuration" + }, + "createdAt": { + "type": "string", + "description": "Created at timestamp", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "description": "Updated at timestamp", + "format": "date-time" + }, + "disabledAt": { + "type": "string", + "description": "Disabled at timestamp", + "format": "date-time", + "nullable": true + } + }, + "type": "object", + "required": [ + "connectionId", + "triggerName", + "triggerConfig", + "createdAt", + "updatedAt" + ] + }, + "PageInfoDTO": { + "properties": { + "currentPage": { + "type": "number" + }, + "perPage": { + "type": "number" + }, + "totalPages": { + "type": "number" + } + }, + "type": "object", + "required": [ + "currentPage", + "perPage", + "totalPages" + ] + }, + "ActiveTriggersResDTO": { + "properties": { + "triggers": { + "items": { + + }, + "type": "array" + }, + "pageInfo": { + "items": { + "$ref": "#/components/schemas/PageInfoDTO" + }, + "type": "array" + } + }, + "type": "object", + "required": [ + "triggers", + "pageInfo" + ] + }, + "TriggerLogsResDTO": { + "properties": { + "data": { + "items": { + "$ref": "#/components/schemas/TriggerLogItemDTO" + }, + "type": "array" + }, + "pageInfo": { + "$ref": "#/components/schemas/PageInfoDTO" + } + }, + "type": "object", + "required": [ + "data", + "pageInfo" + ] + }, + "TriggerLogItemDTO": { + "properties": { + "clientId": { + "type": "string", + "description": "Client ID" + }, + "connectionId": { + "type": "string", + "description": "Connection ID" + }, + "errorTrigger": { + "type": "string", + "description": "Error trigger", + "nullable": true + }, + "triggerClientError": { + "type": "string", + "description": "Trigger client error", + "nullable": true + }, + "triggerClientPayload": { + "type": "string", + "description": "Trigger client payload", + "nullable": true + }, + "triggerProviderPayload": { + "type": "string", + "description": "Trigger provider payload", + "nullable": true + }, + "triggerName": { + "type": "string", + "description": "Trigger name", + "nullable": true + }, + "id": { + "type": "string", + "description": "Log ID" + }, + "appKey": { + "type": "string", + "description": "App key" + }, + "createdAt": { + "type": "string", + "description": "Created at timestamp", + "format": "date-time" + } + }, + "type": "object", + "required": [ + "clientId", + "connectionId", + "id", + "appKey", + "createdAt" + ] + }, + "HandleTriggerParamsDTO": { + "properties": { + "appName": { + "type": "string", + "description": "The name of the app" + }, + "clientId": { + "type": "string", + "description": "The client ID" + } + }, + "type": "object", + "required": [ + "appName", + "clientId" + ] + }, + "HandleTriggerBodyDTO": { + "properties": { + "body": { + "type": "object", + "description": "The trigger payload" + } + }, + "type": "object", + "required": [ + "body" + ] + }, + "EnableTriggerParamsDTO": { + "properties": { + "connectedAccountId": { + "type": "string", + "description": "The connected account ID" + }, + "triggerName": { + "type": "string", + "description": "The trigger name" + } + }, + "type": "object", + "required": [ + "connectedAccountId", + "triggerName" + ] + }, + "GetTriggerParamsDTO": { + "properties": { + "triggerId": { + "type": "string", + "description": "The connected account ID" + } + }, + "type": "object", + "required": [ + "triggerId" + ] + }, + "EnableTriggerBodyDTO": { + "properties": { + "triggerConfig": { + "type": "object", + "description": "The trigger configuration" + } + }, + "type": "object", + "required": [ + "triggerConfig" + ] + }, + "SwitchTriggerStatusParamsDTO": { + "properties": { + "triggerId": { + "type": "string", + "description": "The trigger instance ID" + } + }, + "type": "object", + "required": [ + "triggerId" + ] + }, + "SwitchTriggerStatusBodyDTO": { + "properties": { + "enabled": { + "type": "boolean", + "description": "The new enabled status of the trigger" + } + }, + "type": "object", + "required": [ + "enabled" + ] + }, + "TriggerInstanceParamsDTO": { + "properties": { + "triggerInstanceId": { + "type": "string", + "description": "The trigger instance ID" + } + }, + "type": "object", + "required": [ + "triggerInstanceId" + ] + }, + "SetCallbackUrlBodyDTO": { + "properties": { + "callbackURL": { + "type": "string", + "description": "The callback URL" + } + }, + "type": "object", + "required": [ + "callbackURL" + ] + }, + "TriggerResponseDTO": { + "properties": { + "status": { + "type": "string", + "description": "The status of the operation" + }, + "message": { + "type": "string", + "description": "Optional message" + }, + "triggerId": { + "type": "string", + "description": "Optional trigger ID" + } + }, + "type": "object", + "required": [ + "status" + ] + }, + "WebhookURLResponseDTO": { + "properties": { + "status": { + "type": "string", + "description": "The status of the operation" + }, + "callbackURL": { + "type": "string", + "description": "The callback URL if found" + } + }, + "type": "object", + "required": [ + "status" + ] + }, + "GenerateCLISessionReqDTO": { + "properties": { + "channel_name": { + "type": "string", + "description": "The channel name for the CLI session" + } + }, + "type": "object", + "required": [ + "channel_name" + ] + }, + "LoginAccountAsAdminReqDTO": { + "properties": { + "email": { + "type": "string", + "description": "Email of the client" + }, + "apiKey": { + "type": "string", + "description": "API Key of the client" + }, + "adminToken": { + "type": "string", + "description": "Admin token" + } + }, + "type": "object", + "required": [ + "adminToken" + ] + }, + "GenerateCLISessionResDTO": { + "properties": { + "key": { + "type": "string", + "description": "The key for the CLI session" + } + }, + "type": "object", + "required": [ + "key" + ] + }, + "GetCLISessionResDTO": { + "properties": { + "clientId": { + "type": "string", + "description": "The client ID" + }, + "cliCode": { + "type": "string", + "description": "The CLI code" + } + }, + "type": "object", + "required": [ + "clientId", + "cliCode" + ] + }, + "VerifyCLICodeResDTO": { + "properties": { + "clientId": { + "type": "string", + "description": "The client ID" + }, + "cliCode": { + "type": "string", + "description": "The CLI code" + }, + "apiKey": { + "type": "string", + "description": "The API key associated with the client" + } + }, + "type": "object", + "required": [ + "clientId", + "cliCode", + "apiKey" + ] + }, + "CLIQueryDTO": { + "properties": { + "key": { + "type": "string", + "description": "Unique key for CLI session" + }, + "code": { + "type": "string", + "description": "Code for CLI verification" + } + }, + "type": "object", + "required": [ + "key" + ] + }, + "MetadataReqDTO": { + "properties": { + "email": { + "type": "string", + "description": "The email associated with the metadata request" + }, + "metadata": { + "description": "Additional metadata as a key-value pair" + } + }, + "type": "object", + "required": [ + "email" + ] + }, + "TriggersEnabledToggleReqDTO": { + "properties": { + "enabled": { + "type": "boolean", + "description": "Flag to enable or disable triggers" + } + }, + "type": "object", + "required": [ + "enabled" + ] + }, + "TriggersEnabledToggleResDTO": { + "properties": { + "message": { + "type": "string", + "description": "Message indicating the result of the toggle operation" + } + }, + "type": "object", + "required": [ + "message" + ] + }, + "MetadataQueryDTO": { + "properties": { + "email": { + "type": "string", + "description": "Email of the client" + } + }, + "type": "object", + "required": [ + "email" + ] + }, + "TriggerMetadata": { + "properties": { + "id": { + "type": "string", + "description": "The unique id of the log" + }, + "type": { + "type": "string", + "description": "The type of the log", + "oneOf": [ + { + "type": "string", + "enum": [ + "trigger" + ] + } + ] + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The date and time when the log was created", + "format": "date-time" + }, + "updatedAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The date and time when the log was updated", + "format": "date-time" + }, + "provider": { + "type": "string", + "description": "The provider of the log" + }, + "clientId": { + "type": "string", + "description": "The client uuid of the log" + }, + "connectionId": { + "type": "string", + "description": "The connection id of the log" + }, + "triggerProviderPayload": { + "type": "string", + "description": "The trigger provider payload of the log" + }, + "triggerClientPayload": { + "type": "string" + }, + "triggerClientError": { + "type": "string", + "description": "The trigger client error of the log" + }, + "triggerName": { + "type": "string", + "description": "The trigger name of the log" + }, + "triggerClientResponse": { + "type": "string", + "description": "The trigger client response of the log" + } + }, + "type": "object", + "required": [ + "id", + "type", + "createdAt", + "updatedAt", + "provider", + "clientId", + "connectionId" + ] + }, + "ActionMetadata": { + "properties": { + "id": { + "type": "string", + "description": "The unique id of the log" + }, + "request": { + "type": "string", + "description": "The request sent to the provider" + }, + "response": { + "type": "string", + "description": "The response from the provider" + }, + "errorRequest": { + "type": "string", + "description": "The error request sent to the provider" + }, + "type": { + "type": "string", + "description": "The type of the log", + "oneOf": [ + { + "type": "string", + "enum": [ + "action" + ] + } + ] + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The date and time when the log was created", + "format": "date-time" + }, + "updatedAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The date and time when the log was updated", + "format": "date-time" + }, + "provider": { + "type": "string", + "description": "The provider of the log" + }, + "clientId": { + "type": "string", + "description": "The client uuid of the log" + }, + "connectionId": { + "type": "string", + "description": "The connection id of the log" + }, + "actionName": { + "type": "string", + "description": "The action name of the log" + } + }, + "type": "object", + "required": [ + "id", + "request", + "type", + "createdAt", + "updatedAt", + "provider", + "clientId", + "connectionId", + "actionName" + ] + }, + "TriggerLogData": { + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the trigger log" + }, + "connectionId": { + "type": "string", + "description": "The connection identifier associated with the trigger log" + }, + "clientId": { + "type": "string", + "description": "The client identifier associated with the trigger log" + }, + "status": { + "type": "string", + "description": "The status of the trigger log" + }, + "appName": { + "type": "string", + "description": "The name of the application associated with the trigger log" + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The creation date and time of the trigger log", + "format": "date-time" + }, + "type": { + "type": "string", + "description": "The type of the log", + "oneOf": [ + { + "type": "string", + "enum": [ + "trigger" + ] + } + ] + }, + "meta": { + "$ref": "#/components/schemas/TriggerMetadata", + "description": "Metadata associated with the trigger log" + } + }, + "type": "object", + "required": [ + "id", + "connectionId", + "clientId", + "status", + "appName", + "createdAt", + "type", + "meta" + ] + }, + "ActionLogData": { + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the action log" + }, + "connectionId": { + "type": "string", + "description": "The connection identifier associated with the action log" + }, + "clientId": { + "type": "string", + "description": "The client identifier associated with the action log" + }, + "status": { + "type": "string", + "description": "The status of the action log" + }, + "appName": { + "type": "string", + "description": "The name of the application associated with the action log" + }, + "createdAt": { + "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?", + "type": "string", + "description": "The creation date and time of the action log", + "format": "date-time" + }, + "type": { + "type": "string", + "description": "The type of the log", + "oneOf": [ + { + "type": "string", + "enum": [ + "action" + ] + } + ] + }, + "meta": { + "$ref": "#/components/schemas/ActionMetadata", + "description": "Metadata associated with the action log" + } + }, + "type": "object", + "required": [ + "id", + "connectionId", + "clientId", + "status", + "appName", + "createdAt", + "type", + "meta" + ] + }, + "LogsResDTO": { + "properties": { + "nextCursor": { + "type": "string", + "description": "The cursor to get the next page of logs" + }, + "data": { + "items": { + + }, + "type": "array", + "description": "Logs data" + } + }, + "type": "object", + "required": [ + "data" + ] + }, + "GetLogsDTO": { + "properties": { + "type": { + "enum": [ + "error", + "info", + "debug" + ], + "type": "string", + "description": "Type of the log" + }, + "time": { + "enum": [ + "30m", + "6h", + "1d", + "1w", + "1month", + "1y" + ], + "type": "string", + "description": "Time interval for which data needs to be fetched" + }, + "status": { + "enum": [ + "pending", + "processed", + "failed" + ], + "type": "string", + "description": "Status of the log" + }, + "search": { + "type": "string", + "description": "Search term in the log" + }, + "integrationId": { + "type": "string", + "description": "Integration UUID" + }, + "limit": { + "type": "number", + "description": "Limit of the logs", + "default": 10 + }, + "cursor": { + "type": "string", + "description": "Cursor for pagination" + }, + "connectionId": { + "type": "string", + "description": "Connection ID of the log" + } + }, + "type": "object" + } + } + }, + "info": { + "title": "Composio OpenAPI", + "version": "1.0.0", + "description": "Generated with `routing-controllers-openapi`" + }, + "openapi": "3.0.0", + "paths": { + "/api/v1/client/auth/identify": { + "post": { + "operationId": "ClientAuthController.identifyClient", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentifyClientReqDTO" + } + } + }, + "description": "IdentifyClientReqDTO", + "required": false + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentifyClientResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Identify client", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/google_login": { + "post": { + "operationId": "ClientAuthController.googleLogin", + "requestBody": { + "content": { + "application/json": { + "schema": { + + } + } + }, + "description": "", + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Google login", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/track": { + "post": { + "operationId": "ClientAuthController.trackClient", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TrackClientReqDTO" + } + } + }, + "description": "TrackClientReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TrackClientResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Track client", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/send_magic_link": { + "post": { + "operationId": "ClientAuthController.sendMagicLink", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MagicLinkReqDTO" + } + } + }, + "description": "MagicLinkReqDTO", + "required": false + }, + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MagicLinkResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Send magic link", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/logout": { + "post": { + "operationId": "ClientAuthController.logout", + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LogoutResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Logout API", + "tags": [ + "Client Auth" + ], + "description": "Logout the user and clear the server side session" + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/verify_magic_link": { + "post": { + "operationId": "ClientAuthController.verifyMagicLink", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyMagicLinkReqDTO" + } + } + }, + "description": "VerifyMagicLinkReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifyMagicLinkResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Verify magic link", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/client_info": { + "get": { + "operationId": "ClientAuthController.getUserInfo", + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Get user info", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/pusher_auth": { + "post": { + "operationId": "ClientAuthController.pusherUserAuth", + "requestBody": { + "content": { + "application/json": { + "schema": { + + } + } + }, + "description": "", + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Pusher user auth", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/client/auth/delete/{clientId}": { + "delete": { + "operationId": "ClientAuthController.deleteClient", + "parameters": [ + { + "in": "path", + "name": "clientId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Delete client", + "tags": [ + "Client Auth" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/team/invite": { + "post": { + "operationId": "TeamController.inviteMember", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InviteMemberReqDTO" + } + } + }, + "description": "InviteMemberReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/MemberResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Invite member", + "tags": [ + "Team" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/team/members": { + "get": { + "operationId": "TeamController.listMembers", + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "items": { + "$ref": "#/components/schemas/MemberResDTO" + }, + "type": "array" + } + } + }, + "description": "" + } + }, + "summary": "List members", + "tags": [ + "Team" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/team/members/{id}": { + "delete": { + "operationId": "TeamController.removeMember", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Remove member", + "tags": [ + "Team" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/api_keys": { + "post": { + "operationId": "APIKeysController.generateAPIKey", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GenerateAPIKeyReqDTO" + } + } + }, + "description": "GenerateAPIKeyReqDTO", + "required": true + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/APIKeyResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Generate api key", + "tags": [ + "API Keys" + ] + }, + "get": { + "operationId": "APIKeysController.listAPIKeys", + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "items": { + "$ref": "#/components/schemas/APIKeyResDTO" + }, + "type": "array" + } + } + }, + "description": "" + } + }, + "summary": "List api keys", + "tags": [ + "API Keys" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/api_keys/{id}": { + "delete": { + "operationId": "APIKeysController.deleteAPIKey", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "204": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Delete api key", + "tags": [ + "API Keys" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps": { + "get": { + "operationId": "AppController.getApps", + "parameters": [ + { + "in": "query", + "name": "category", + "schema": { + "type": "string", + "description": "Category of the app" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppListResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get apps", + "tags": [ + "App" + ], + "description": "Retrieve a list of all applications based on query parameters." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/openapi/spec/add": { + "post": { + "operationId": "AppController.addOpenAPISpec", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddToolsRequestDTO" + } + } + }, + "description": "AddToolsRequestDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Add open api spec", + "tags": [ + "App" + ], + "description": "Add openapi spec tool" + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/openapi/spec/list": { + "get": { + "operationId": "AppController.getOpenaAPISpecs", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/AppListResDTO" + }, + "type": "array" + } + } + }, + "description": "List of all openapi spec tools" + } + }, + "summary": "Get opena api specs", + "tags": [ + "App" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/openapi/spec/delete/{name}": { + "delete": { + "operationId": "AppController.deleteOpenAPISpecTool", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Delete open api spec tool", + "tags": [ + "App" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/openapi/spec/logs/{name}": { + "get": { + "operationId": "AppController.getOpenAPISpecLogs", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Get open api spec logs", + "tags": [ + "App" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/custom-repo/add-repo": { + "post": { + "operationId": "AppController.addCustomRepo", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddRepoURLReqDTO" + } + } + }, + "description": "AddRepoURLReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Add custom repo", + "tags": [ + "App" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/{appName}": { + "get": { + "operationId": "AppController.getApp", + "parameters": [ + { + "in": "path", + "name": "appName", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SingleAppInfoResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get app", + "tags": [ + "App" + ], + "description": "Get app details" + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/sync": { + "post": { + "operationId": "AppController.syncApps", + "responses": { + "202": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Sync apps", + "tags": [ + "App" + ], + "description": "Sync custom repo" + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/apps/custom-repo/get-repo": { + "get": { + "operationId": "AppController.getCustomRepo", + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Get custom repo", + "tags": [ + "App" + ], + "description": "Get custom repo" + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/integrations": { + "post": { + "operationId": "AppConnectorController.createConnector", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateConnectorPayloadDTO" + } + } + }, + "description": "CreateConnectorPayloadDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/GetConnectorInfoResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Create connector", + "tags": [ + "App Connector" + ] + }, + "get": { + "operationId": "AppConnectorController.listGlobalConnectors", + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/GetConnectorListResDTO" + } + } + }, + "description": "" + } + }, + "summary": "List global connectors", + "tags": [ + "App Connector" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/integrations/{integrationId}": { + "get": { + "operationId": "AppConnectorController.getConnectorInfo", + "parameters": [ + { + "in": "path", + "name": "integrationId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/GetConnectorInfoResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get connector info", + "tags": [ + "App Connector" + ] + }, + "patch": { + "operationId": "AppConnectorController.patchConnector", + "parameters": [ + { + "in": "path", + "name": "integrationId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchConnectorReqDTO" + } + } + }, + "description": "PatchConnectorReqDTO", + "required": false + }, + "responses": { + "204": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/PatchConnectorResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Patch connector", + "tags": [ + "App Connector" + ] + }, + "delete": { + "operationId": "AppConnectorController.deleteConnector", + "parameters": [ + { + "in": "path", + "name": "integrationId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "204": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/DeleteRowAPIDTO" + } + } + }, + "description": "" + } + }, + "summary": "Delete connector", + "tags": [ + "App Connector" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/integrations/{integrationId}/status": { + "post": { + "operationId": "AppConnectorController.patchPostConnector", + "parameters": [ + { + "in": "path", + "name": "integrationId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchConnectorReqDTO" + } + } + }, + "description": "PatchConnectorReqDTO", + "required": false + }, + "responses": { + "201": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/PatchConnectorResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Patch post connector", + "tags": [ + "App Connector" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/actions": { + "get": { + "operationId": "ActionsControllerV1.listActions", + "parameters": [ + { + "in": "query", + "name": "appNames", + "schema": { + "type": "string", + "description": "Names of the apps" + } + }, + { + "in": "query", + "name": "useCase", + "schema": { + "type": "string", + "description": "Use case" + } + }, + { + "in": "query", + "name": "showEnabledOnly", + "schema": { + "type": "boolean", + "description": "Show enabled only" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "number", + "description": "Limit" + } + }, + { + "in": "query", + "name": "apps", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "actions", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "tags", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "usecaseLimit", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "filterImportantActions", + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "showAll", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ActionsListResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "List actions", + "tags": [ + "Actions Controller V 1" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/actions/{actionId}/execute": { + "post": { + "operationId": "ActionsControllerV1.executeAction", + "parameters": [ + { + "in": "path", + "name": "actionId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionExecutionReqDTO" + } + } + }, + "description": "ActionExecutionReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ExecuteActionResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Execute action", + "tags": [ + "Actions Controller V 1" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/actions/proxy": { + "post": { + "operationId": "ActionsControllerV1.executeActionProxy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionExecutionReqDTO" + } + } + }, + "description": "ActionExecutionReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ExecuteActionResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Execute action proxy", + "tags": [ + "Actions Controller V 1" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/actions/{actionId}": { + "get": { + "operationId": "ActionsControllerV1.getAction", + "parameters": [ + { + "in": "path", + "name": "actionId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ActionDetails" + } + } + }, + "description": "" + } + }, + "summary": "Get action", + "tags": [ + "Actions Controller V 1" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/connectedAccounts": { + "get": { + "operationId": "ConnectionsController.getConnections", + "parameters": [ + { + "in": "query", + "name": "page", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "pageSize", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "appNames", + "schema": { + + } + }, + { + "in": "query", + "name": "integrationId", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "connectionId", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "user_uuid", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "showActiveOnly", + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "status", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "showDisabled", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetConnectionsResponseDto" + } + } + }, + "description": "Get all connections for the current user" + } + }, + "summary": "Get connections", + "tags": [ + "Connections" + ] + }, + "post": { + "operationId": "ConnectionsController.initiateConnection", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InitiateConnectionPayloadDto" + } + } + }, + "description": "InitiateConnectionPayloadDto", + "required": false + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InitiateConnectionResponse" + } + } + }, + "description": "Initiates a connection for the given integration and mark the connection status as initiated if the auth scheme is OAuth1 or OAuth2" + } + }, + "summary": "Initiate connection", + "tags": [ + "Connections" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/connectedAccounts/{connectedAccountId}": { + "get": { + "operationId": "ConnectionsController.getConnection", + "parameters": [ + { + "in": "path", + "name": "connectedAccountId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Get connection", + "tags": [ + "Connections" + ] + }, + "delete": { + "operationId": "ConnectionsController.deleteConnection", + "parameters": [ + { + "in": "path", + "name": "connectedAccountId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Delete connection", + "tags": [ + "Connections" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/connectedAccounts/{connectedAccountId}/disable": { + "post": { + "operationId": "ConnectionsController.disableConnection", + "parameters": [ + { + "in": "path", + "name": "connectedAccountId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Disable connection", + "tags": [ + "Connections" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/connectedAccounts/{connectedAccountId}/enable": { + "post": { + "operationId": "ConnectionsController.enableConnection", + "parameters": [ + { + "in": "path", + "name": "connectedAccountId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Enable connection", + "tags": [ + "Connections" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/login/{appName}/auth": { + "get": { + "operationId": "AppLoginController.handleOAuth2Callback", + "parameters": [ + { + "in": "path", + "name": "appName", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + }, + { + "in": "query", + "name": "redirectUri", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Handle o auth 2 callback", + "tags": [ + "App Login" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/login/{appName}/callback": { + "get": { + "operationId": "AppLoginController.verifyOAuth2Login", + "parameters": [ + { + "in": "path", + "name": "appName", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Verify o auth 2 login", + "tags": [ + "App Login" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers": { + "get": { + "operationId": "TriggersController.listTriggers", + "parameters": [ + { + "in": "query", + "name": "appNames", + "schema": { + "type": "string", + "description": "Names of the apps" + } + }, + { + "in": "query", + "name": "connectedAccountIds", + "schema": { + "type": "string", + "description": "IDs of the connected accounts" + } + }, + { + "in": "query", + "name": "triggerIds", + "schema": { + "type": "string", + "description": "IDs of the triggers" + } + }, + { + "in": "query", + "name": "showEnabledOnly", + "schema": { + "type": "boolean", + "description": "Show enabled only" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "items": { + "$ref": "#/components/schemas/TriggerResDTO" + }, + "type": "array" + } + } + }, + "description": "" + } + }, + "summary": "List triggers", + "tags": [ + "Triggers" + ], + "description": "List triggers" + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/handle/{appName}/{clientId}": { + "post": { + "operationId": "TriggersController.handleTrigger", + "parameters": [ + { + "in": "header", + "name": "", + "required": false, + "schema": { + + } + }, + { + "in": "path", + "name": "appName", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + }, + { + "in": "path", + "name": "clientId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + + } + } + }, + "description": "", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Handle trigger", + "tags": [ + "Triggers" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/enable/{connectedAccountId}/{triggerName}": { + "post": { + "operationId": "TriggersController.enableTrigger", + "parameters": [ + { + "in": "path", + "name": "connectedAccountId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + }, + { + "in": "path", + "name": "triggerName", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnableTriggerBodyDTO" + } + } + }, + "description": "EnableTriggerBodyDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/TriggerResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "Enable trigger", + "tags": [ + "Triggers" + ], + "description": "Enables a trigger for a connected account and specific trigger name." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/get/{triggerId}": { + "get": { + "operationId": "TriggersController.getTrigger", + "parameters": [ + { + "in": "path", + "name": "triggerId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Get trigger", + "tags": [ + "Triggers" + ], + "description": "Retrieves a specific trigger by its ID." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/active_triggers": { + "get": { + "operationId": "TriggersController.getActiveTriggers", + "parameters": [ + { + "in": "query", + "name": "connectedAccountIds", + "schema": { + "type": "string", + "description": "IDs of the connected accounts" + } + }, + { + "in": "query", + "name": "integrationIds", + "schema": { + "type": "string", + "description": "IDs of the integrations" + } + }, + { + "in": "query", + "name": "triggerIds", + "schema": { + "type": "string", + "description": "IDs of the triggers" + } + }, + { + "in": "query", + "name": "triggerNames", + "schema": { + "type": "string", + "description": "Names of the triggers" + } + }, + { + "in": "query", + "name": "page", + "schema": { + "type": "number", + "description": "Page number" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "number", + "description": "Limit per page" + } + }, + { + "in": "query", + "name": "showDisabled", + "schema": { + "type": "boolean", + "description": "Show disabled triggers" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ActiveTriggersResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get active triggers", + "tags": [ + "Triggers" + ], + "description": "Lists active triggers based on query parameters." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/instance/{triggerId}/status": { + "patch": { + "operationId": "TriggersController.switchTriggerInstanceStatus", + "parameters": [ + { + "in": "path", + "name": "triggerId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwitchTriggerStatusBodyDTO" + } + } + }, + "description": "SwitchTriggerStatusBodyDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/TriggerResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "Switch trigger instance status", + "tags": [ + "Triggers" + ], + "description": "Switches the status of a trigger instance." + }, + "post": { + "operationId": "TriggersController.switchPostTriggerInstanceStatus", + "parameters": [ + { + "in": "path", + "name": "triggerId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwitchTriggerStatusBodyDTO" + } + } + }, + "description": "SwitchTriggerStatusBodyDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/TriggerResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "Switch post trigger instance status", + "tags": [ + "Triggers" + ], + "description": "Switches the status of a trigger instance." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/disable/{triggerInstanceId}": { + "post": { + "operationId": "TriggersController.disableTrigger", + "parameters": [ + { + "in": "path", + "name": "triggerInstanceId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/TriggerResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "Disable trigger", + "tags": [ + "Triggers" + ], + "description": "Disables a specified trigger instance." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/instance/{triggerInstanceId}": { + "delete": { + "operationId": "TriggersController.deleteTrigger", + "parameters": [ + { + "in": "path", + "name": "triggerInstanceId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/DeleteRowAPIDTO" + } + } + }, + "description": "" + } + }, + "summary": "Delete trigger", + "tags": [ + "Triggers" + ], + "description": "Deletes a specified trigger instance." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/setCallbackURL": { + "post": { + "operationId": "TriggersController.setCallbackUrl", + "requestBody": { + "content": { + "application/json": { + "schema": { + + } + } + }, + "description": "", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Set callback url", + "tags": [ + "Triggers" + ], + "description": "Sets a universal callback URL for the client." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/set_callback_url": { + "post": { + "operationId": "TriggersController.set_callback_url", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetCallbackUrlBodyDTO" + } + } + }, + "description": "SetCallbackUrlBodyDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/TriggerResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "Set callback url", + "tags": [ + "Triggers" + ], + "description": "Sets a universal callback URL for the client." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/callback_url": { + "get": { + "operationId": "TriggersController.getWebhookURL", + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/WebhookURLResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get webhook url", + "tags": [ + "Triggers" + ], + "description": "Retrieves the universal callback URL set for the client." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/logs": { + "get": { + "operationId": "TriggersController.getLogs", + "parameters": [ + { + "in": "query", + "name": "connectionId", + "schema": { + "type": "string", + "description": "ID of the connection" + } + }, + { + "in": "query", + "name": "integrationId", + "schema": { + "type": "string", + "description": "ID of the integration" + } + }, + { + "in": "query", + "name": "page", + "schema": { + "type": "number", + "description": "Page number" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "number", + "description": "Limit per page" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/TriggerLogsResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get logs", + "tags": [ + "Triggers" + ], + "description": "Fetches logs based on connection and integration details." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/triggers/pusher": { + "post": { + "operationId": "TriggersController.handlePusherEvents", + "requestBody": { + "content": { + "application/json": { + "schema": { + + } + } + }, + "description": "", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Handle pusher events", + "tags": [ + "Triggers" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/cli/sentry-dns": { + "get": { + "operationId": "AdminController.sentryDns", + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Sentry dns", + "tags": [ + "Admin" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/cli/generate-cli-session": { + "get": { + "operationId": "CLIController.handleCLICodeExchange", + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/GenerateCLISessionResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Handle cli code exchange", + "tags": [ + "CLI" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/cli/get-cli-code": { + "get": { + "operationId": "CLIController.getCLICode", + "parameters": [ + { + "in": "query", + "name": "key", + "required": true, + "schema": { + "type": "string", + "description": "Unique key for CLI session" + } + }, + { + "in": "query", + "name": "code", + "required": false, + "schema": { + "type": "string", + "description": "Code for CLI verification" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/GetCLISessionResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get cli code", + "tags": [ + "CLI" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/cli/verify-cli-code": { + "get": { + "operationId": "CLIController.handleCLICodeVerification", + "parameters": [ + { + "in": "query", + "name": "key", + "required": true, + "schema": { + "type": "string", + "description": "Unique key for CLI session" + } + }, + { + "in": "query", + "name": "code", + "required": false, + "schema": { + "type": "string", + "description": "Code for CLI verification" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/VerifyCLICodeResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Handle cli code verification", + "tags": [ + "CLI" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/metadata": { + "get": { + "operationId": "MetadataController.getMetadata", + "parameters": [ + { + "in": "query", + "name": "email", + "required": true, + "schema": { + "type": "string", + "description": "Email of the client" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Get metadata", + "tags": [ + "Metadata" + ] + }, + "post": { + "operationId": "MetadataController.updateMetadata", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetadataReqDTO" + } + } + }, + "description": "MetadataReqDTO", + "required": true + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Update metadata", + "tags": [ + "Metadata" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/metadata/toggle/trigger": { + "post": { + "operationId": "MetadataController.toggleTriggerState", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggersEnabledToggleReqDTO" + } + } + }, + "description": "TriggersEnabledToggleReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Toggle trigger state", + "tags": [ + "Metadata" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/metadata/toggle.info": { + "get": { + "operationId": "MetadataController.getToggleInfo", + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + + } + }, + "description": "Successful response" + } + }, + "summary": "Get toggle info", + "tags": [ + "Metadata" + ] + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v1/logs/": { + "get": { + "operationId": "LogsController.getLogs", + "parameters": [ + { + "in": "query", + "name": "type", + "schema": { + "enum": [ + "error", + "info", + "debug" + ], + "type": "string", + "description": "Type of the log" + } + }, + { + "in": "query", + "name": "time", + "schema": { + "enum": [ + "30m", + "6h", + "1d", + "1w", + "1month", + "1y" + ], + "type": "string", + "description": "Time interval for which data needs to be fetched" + } + }, + { + "in": "query", + "name": "status", + "schema": { + "enum": [ + "pending", + "processed", + "failed" + ], + "type": "string", + "description": "Status of the log" + } + }, + { + "in": "query", + "name": "search", + "schema": { + "type": "string", + "description": "Search term in the log" + } + }, + { + "in": "query", + "name": "integrationId", + "schema": { + "type": "string", + "description": "Integration UUID" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "number", + "description": "Limit of the logs", + "default": 10 + } + }, + { + "in": "query", + "name": "cursor", + "schema": { + "type": "string", + "description": "Cursor for pagination" + } + }, + { + "in": "query", + "name": "connectionId", + "schema": { + "type": "string", + "description": "Connection ID of the log" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/LogsResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Get logs", + "tags": [ + "Logs" + ], + "description": "List logs" + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v2/actions": { + "get": { + "operationId": "ActionsControllerV2.listActions", + "parameters": [ + { + "in": "query", + "name": "appNames", + "schema": { + "type": "string", + "description": "Names of the apps" + } + }, + { + "in": "query", + "name": "useCase", + "schema": { + "type": "string", + "description": "Use case" + } + }, + { + "in": "query", + "name": "showEnabledOnly", + "schema": { + "type": "boolean", + "description": "Show enabled only" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "type": "number", + "description": "Limit" + } + }, + { + "in": "query", + "name": "apps", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "actions", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "tags", + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "usecaseLimit", + "schema": { + "type": "number" + } + }, + { + "in": "query", + "name": "filterImportantActions", + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "showAll", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ActionsListResponseDTO" + } + } + }, + "description": "" + } + }, + "summary": "List actions", + "tags": [ + "Actions Controller V 2" + ], + "description": "Retrieve a list of all actions based on query parameters." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v2/actions/{actionId}/execute": { + "post": { + "operationId": "ActionsControllerV2.executeAction", + "parameters": [ + { + "in": "path", + "name": "actionId", + "required": true, + "schema": { + "pattern": "[^\\/#\\?]+?", + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionExecutionReqDTO" + } + } + }, + "description": "ActionExecutionReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ExecuteActionResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Execute action", + "tags": [ + "Actions Controller V 2" + ], + "description": "Execute an action. Support both connected account and no auth auth." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/api/v2/actions/proxy": { + "post": { + "operationId": "ActionsControllerV2.executeActionProxy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActionExecutionReqDTO" + } + } + }, + "description": "ActionExecutionReqDTO", + "required": false + }, + "responses": { + "200": { + "content": { + "text/html; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/ExecuteActionResDTO" + } + } + }, + "description": "" + } + }, + "summary": "Execute action proxy", + "tags": [ + "Actions Controller V 2" + ], + "description": "Execute an action with direct auth." + }, + "parameters": [ + { + "name": "X-API-Key", + "in": "header", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "servers": [ + { + "url": "https://backend.composio.dev" + } + ] +} \ No newline at end of file diff --git a/docs/framework/autogen.mdx b/docs/framework/autogen.mdx index 5f3963d0723..f3174902b8a 100644 --- a/docs/framework/autogen.mdx +++ b/docs/framework/autogen.mdx @@ -1,6 +1,6 @@ --- title: "Using Composio With Autogen" -sidebarTitle: "Autogen SDK" +sidebarTitle: "Autogen" icon: "robot" description: "Integrate Composio with Autogen agents to let them seamlessly interact with external apps" --- diff --git a/docs/framework/camelai.mdx b/docs/framework/camelai.mdx index eafff5291e2..81a6682c2c7 100644 --- a/docs/framework/camelai.mdx +++ b/docs/framework/camelai.mdx @@ -1,6 +1,6 @@ --- title: "🐫 Using Composio With CAMEL-AI" -sidebarTitle: "CAMEL SDK" +sidebarTitle: "CAMEL" icon: "cow" description: "Integrate Composio with CAMEL agents to let them seamlessly interact with external apps" --- diff --git a/docs/framework/crewai.mdx b/docs/framework/crewai.mdx index 4c55fa4d0b1..f3eb68d9e7a 100644 --- a/docs/framework/crewai.mdx +++ b/docs/framework/crewai.mdx @@ -1,6 +1,6 @@ --- -title: "Using Composio With crewAI" -sidebarTitle: "crewAI SDK" +title: "Using Composio With CrewAI" +sidebarTitle: "CrewAI" icon: "people-group" description: "Integrate Composio with Crewai agents to let them seamlessly interact with external apps" --- @@ -39,7 +39,7 @@ These commands prepare your environment for seamless interaction between CrewAI ```python Default Imports - from crewai import Agent, Task + from crewai import Agent, Task, Crew from langchain_openai import ChatOpenAI # add OPENAI_API_KEY to env variables. @@ -71,26 +71,28 @@ These commands prepare your environment for seamless interaction between CrewAI ```python CrewAI Agent Executes Task - # Define agent - crewai_agent = Agent( - role="Github Agent", - goal="""You take action on Github using Github APIs""", - backstory=( - "You are AI agent that is responsible for taking actions on Github " - "on users behalf. You need to take action on Github using Github APIs" - ), - verbose=True, - tools=tools, - llm=llm, - ) - task = Task( - description="Star a repo composiohq/composio on GitHub", - agent=crewai_agent, - expected_output="if the star happened" - ) - task.execute() - ``` - +# Define agent +crewai_agent = Agent( + role="Github Agent", + goal="""You take action on Github using Github APIs""", + backstory=( + "You are AI agent that is responsible for taking actions on Github " + "on users behalf. You need to take action on Github using Github APIs" + ), + verbose=True, + tools=tools, + llm=llm, +) +task = Task( + description="Star a repo composiohq/composio on GitHub", + agent=crewai_agent, + expected_output="if the star happened" +) +my_crew = Crew(agents=[crewai_agent], tasks=[task]) + +result = my_crew.kickoff() +print(result) +``` diff --git a/docs/framework/griptape.mdx b/docs/framework/griptape.mdx index e12f2ad5a5d..20efa320cb4 100644 --- a/docs/framework/griptape.mdx +++ b/docs/framework/griptape.mdx @@ -1,6 +1,6 @@ --- title: "🧻 Using Composio With Griptape" -sidebarTitle: "Griptape SDK" +sidebarTitle: "Griptape" icon: "tape" description: "Integrate Composio with Griptape agents to let them seamlessly interact with external apps" --- diff --git a/docs/framework/julep.mdx b/docs/framework/julep.mdx index 9551207c50f..fb163922780 100644 --- a/docs/framework/julep.mdx +++ b/docs/framework/julep.mdx @@ -1,6 +1,6 @@ --- title: "Using Composio With Julep" -sidebarTitle: "Julep SDK" +sidebarTitle: "Julep" icon: "glass" description: "Integrate Composio with Julep agents to enhance their interaction with external apps" --- diff --git a/docs/framework/langchain.mdx b/docs/framework/langchain.mdx index ee3497e3c3a..623a3aa9a68 100644 --- a/docs/framework/langchain.mdx +++ b/docs/framework/langchain.mdx @@ -1,6 +1,6 @@ --- title: "🦜🔗 Using Composio With LangChain" -sidebarTitle: "LangChain SDK" +sidebarTitle: "LangChain" icon: "link" description: "Integrate Composio with Langchain agents to let them seamlessly interact with external apps" --- diff --git a/docs/framework/langgraph.mdx b/docs/framework/langgraph.mdx index 9065c22f7c3..f61fa83e64e 100644 --- a/docs/framework/langgraph.mdx +++ b/docs/framework/langgraph.mdx @@ -1,6 +1,6 @@ --- title: "🦜🕸️ Using Composio With LangGraph" -sidebarTitle: "LangGraph SDK" +sidebarTitle: "LangGraph" icon: "spider-web" description: "Integrate Composio with LangGraph Agentic workfows & enable them to interact seamlessly with external apps, enhancing their functionality and reach." --- @@ -20,56 +20,83 @@ Ensure you have the necessary packages installed and connect your GitHub account pip install composio-langgraph # login to composio composio login - # Connect your GitHub using command below, so agents can use it. - composio add github - # Check all different apps which you can connect with - composio apps ``` ### Goal: Use LangGraph Agent to Interact with Github using Composio + + +- Connect user `Jessica` GitHub account to allow your agents to utilize GitHub functionalities. + + + +```bash Authenticate GitHub Account +composio add github -e "Jessica" +``` + + + + +```python Authenticate GitHub Account +from composio_langgraph import ComposioToolSet, App + +toolset = ComposioToolSet(entity_id="Jessica") + +entity = toolset.get_entity() + +request = entity.initiate_connection(App.GITHUB) + +print( + f"Open this URL in your browser: {request.redirectUrl}" +) +``` + + + + + -Prepare your environment by initializing necessary imports from LangGraph & LangChain for setting up your agent. +- Prepare your environment by initializing necessary imports from LangGraph & LangChain for setting up your agent. - ```python Default Imports - from typing import Literal +```python Default Imports +from typing import Literal - from langchain_openai import ChatOpenAI - from langgraph.graph import MessagesState, StateGraph - from langgraph.prebuilt import ToolNode - ``` +from langchain_openai import ChatOpenAI +from langgraph.graph import MessagesState, StateGraph +from langgraph.prebuilt import ToolNode +``` -Access GitHub tools provided by Composio for LangGraph, initialize a `ToolNode` with necessary tools obtaned from `ComposioToolSet`. +- Access GitHub tools provided by Composio for LangGraph, initialize a `ToolNode` with necessary tools obtaned from `ComposioToolSet`. - ```python Get tools - from composio_langgraph import Action, ComposioToolSet - - # Initialize the toolset for GitHub - composio_toolset = ComposioToolSet() - tools = composio_toolset.get_actions( - actions=[ - Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER, - Action.GITHUB_USERS_GET_AUTHENTICATED, - ]) - tool_node = ToolNode(tools) - ``` +```python Get tools +from composio_langgraph import Action, ComposioToolSet + +# Initialize the toolset for GitHub +composio_toolset = ComposioToolSet(entity_id="Jessica") +tools = composio_toolset.get_actions( + actions=[ + Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER, + Action.GITHUB_USERS_GET_AUTHENTICATED, + ]) +tool_node = ToolNode(tools) +``` -Initialize the LLM class and bind obtained functions to the model. +- Initialize the LLM class and bind obtained functions to the model. ```python Define model @@ -83,15 +110,15 @@ Initialize the LLM class and bind obtained functions to the model. -LangGraph expects you to define different nodes of the agentic workflow as separate functions. Here we define a node for calling the LLM model. +- LangGraph expects you to define different nodes of the agentic workflow as separate functions. - ```python Define nodes - def call_model(state: MessagesState): - messages = state["messages"] - response = model_with_tools.invoke(messages) - return {"messages": [response]} - ``` +```python Define nodes +def call_model(state: MessagesState): + messages = state["messages"] + response = model_with_tools.invoke(messages) + return {"messages": [response]} +``` @@ -99,33 +126,35 @@ LangGraph expects you to define different nodes of the agentic workflow as separ -To establish the agent's workflow, we begin by initializing the workflow with `agent` and `tools` nodes, followed by specifying the connecting edges between nodes, finally compiling the workflow. These edges can be straightforward or conditional, depending on the workflow requirements. - - - ```python Define edges - def should_continue(state: MessagesState) -> Literal["tools", "__end__"]: - messages = state["messages"] - last_message = messages[-1] - if last_message.tool_calls: - return "tools" - return "__end__" - +- We begin by initializing the workflow with `agent` and `tools` nodes, followed by specifying the connecting edges between nodes, finally compiling the workflow. - workflow = StateGraph(MessagesState) +- These edges can be straightforward or conditional, depending on the workflow requirements. - # Define the two nodes we will cycle between - workflow.add_node("agent", call_model) - workflow.add_node("tools", tool_node) - - workflow.add_edge("__start__", "agent") - workflow.add_conditional_edges( - "agent", - should_continue, - ) - workflow.add_edge("tools", "agent") - - app = workflow.compile() - ``` + +```python Define edges +def should_continue(state: MessagesState) -> Literal["tools", "__end__"]: + messages = state["messages"] + last_message = messages[-1] + if last_message.tool_calls: + return "tools" + return "__end__" + + +workflow = StateGraph(MessagesState) + +# Define the two nodes we will cycle between +workflow.add_node("agent", call_model) +workflow.add_node("tools", tool_node) + +workflow.add_edge("__start__", "agent") +workflow.add_conditional_edges( + "agent", + should_continue, +) +workflow.add_edge("tools", "agent") + +app = workflow.compile() +``` @@ -134,24 +163,24 @@ To establish the agent's workflow, we begin by initializing the workflow with `a -After the compilation of workflow, we invoke the LLM with a task, and stream the response. +- After the compilation of workflow, we invoke the LLM with a task, and stream the response. - ```python Execute workflow - for chunk in app.stream( - { - "messages": [ - ( - "human", - # "Star the Github Repository composiohq/composio", - "Get my information.", - ) - ] - }, - stream_mode="values", - ): - chunk["messages"][-1].pretty_print() - ``` +```python Execute workflow +for chunk in app.stream( + { + "messages": [ + ( + "human", + # "Star the Github Repository composiohq/composio", + "Get my information.", + ) + ] + }, + stream_mode="values", +): + chunk["messages"][-1].pretty_print() +``` diff --git a/docs/framework/llamaindex.mdx b/docs/framework/llamaindex.mdx index 827ce6a3fe6..9fffc98fec0 100644 --- a/docs/framework/llamaindex.mdx +++ b/docs/framework/llamaindex.mdx @@ -1,6 +1,6 @@ --- title: "🦙 Using Composio With LlamaIndex" -sidebarTitle: "LlamaIndex SDK" +sidebarTitle: "LlamaIndex" icon: "dove" description: "Integrate Composio with LlamaIndex application to let them seamlessly interact with external apps" --- @@ -18,17 +18,41 @@ These commands prepare your environment for seamless interaction between LlamaIn ```bash Run Command pip install composio-llamaindex + ``` + + + + + +- Connect a user Jessica's Github account to allow your agents to utilize GitHub functionalities. + + + +```bash Authenticate GitHub Account +composio add github -e "Jessica" +``` + + + + +```python Authenticate Jessica's GitHub Account +from composio_langgraph import ComposioToolSet, App - #Connect your Github so agents can use it - composio add github +toolset = ComposioToolSet(entity_id="Jessica") - #Check all different apps which you can connect with - composio apps +entity = toolset.get_entity() - ``` +request = entity.initiate_connection(App.GITHUB) + +print( + f"Open this URL in your browser: {request.redirectUrl}" +) +``` + + + - ```python Default Imports @@ -54,7 +78,7 @@ These commands prepare your environment for seamless interaction between LlamaIn # Get All the tools - composio_toolset = ComposioToolSet() + composio_toolset = ComposioToolSet(entity_id="Jessica") tools = composio_toolset.get_tools(apps=[App.GITHUB]) ``` diff --git a/docs/framework/lyzr.mdx b/docs/framework/lyzr.mdx index bff9c3f94a0..a17d5eb18f2 100644 --- a/docs/framework/lyzr.mdx +++ b/docs/framework/lyzr.mdx @@ -1,6 +1,6 @@ --- title: "Using Composio With Lyzr" -sidebarTitle: "Lyzr SDK" +sidebarTitle: "Lyzr" icon: "robot" description: "Integrate Composio with Lyzr agents to let them seamlessly interact with external apps" --- diff --git a/docs/framework/openai.mdx b/docs/framework/openai.mdx index f0163ebd7dc..b3315fc15f8 100644 --- a/docs/framework/openai.mdx +++ b/docs/framework/openai.mdx @@ -1,6 +1,6 @@ --- title: "Using Composio With OpenAI" -sidebarTitle: "OpenAI SDK" +sidebarTitle: "OpenAI (Python)" icon: "robot" description: "Enable OpenAI assistants to seamlessly interact with external apps via Composio for enhanced functionality" --- diff --git a/docs/framework/phidata.mdx b/docs/framework/phidata.mdx index c96ffb9501e..7e6ec9646a7 100644 --- a/docs/framework/phidata.mdx +++ b/docs/framework/phidata.mdx @@ -1,6 +1,6 @@ --- title: "Using Composio With phidata" -sidebarTitle: "phidata SDK" +sidebarTitle: "Phidata" icon: "robot" description: "Integrate Composio with phidata agents to let them seamlessly interact with external apps" --- diff --git a/docs/introduction/foundations/basic.mdx b/docs/introduction/foundations/basic.mdx index 90858fb28af..4fb5989e6fc 100644 --- a/docs/introduction/foundations/basic.mdx +++ b/docs/introduction/foundations/basic.mdx @@ -1,44 +1,37 @@ --- -title: "Core Concepts" -sidebarTitle: "Core Concepts" +title: "Concepts at a Glance" +sidebarTitle: "At a Glance" icon: "book" -description: "Platform's core concepts and functionalities." +description: "Core Platform Modules" --- -Let's get you started building with Composio! This section will get you familiar with Composio’s core concepts. + -Goal of this section is to give you a brief walkthrough of each component and how they go together. - - - + +Entity is the user who is using your app Jessica or Melissa - + +GitHub Connection Authorised for Jessica's account + +Send email via Gmail, Outlook, Sendgrid, etc +Webhooks on New Github Issue, Pull Request - - - - - -| Component | Description | Examples | -| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| Entity | Entity represents the user and all accounts that belong to a specific user will have same entity id.   [Learn More...](./components/entity/entity-guide) | Entity could be Melissa, Sam, ABC Corp, etc | -| ConnectedAccounts | Connections represent **link between your app and third-party platforms accounts of your user**.   [Learn More...](./components/entity/entity-guide) | Melissa's Github account after completing auth with integration, Similarly Sam's Hubspot account. | -| Integrations | Integrations are customisable configurations (settings) that are used while creating a new connected account.   [Learn More...](./components/integrations/integration-guide) | Github Integration that that will ask Melissa for private repo permission| -| Tools | Tools refer to the various applications or tools that can be integrated and used by your agents via Composio.   [Learn More...](./components/tools/tool-guide) | Shell manager, Hubspot, Github, Slack & many others | -| Actions | Actions are tasks that can be performed by your agents.   [Learn More...](./components/actions/action-guide) | Send email via Gmail, Send email via Outlook, Send email via Sendgrid, etc | -| Triggers | Triggers are predefined conditions that, when met, initiate webhooks to your agents.   [Learn More...](./components/triggers/trigger-guide) | New Github Issue, New Github Pull Request, New Github Release, New Hubspot Ticket, New Hubspot Case, etc | - - -In next few pages, we can go through each component in detail. They will explain how to use each component in the code and what the expected flow should look like. -If you prefer something quicker, checkout [Quickstart Guide](../intro/quickstart) +| Component | Description | +| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +| Entity | Entity represents the user and all accounts that belong to a specific user will have same entity id.   [Learn More...](./components/entity/entity-guide) +| Accounts | Connections represent **link between your app and third-party platforms accounts of your user**.   [Learn More...](./components/entity/entity-guide) +| Tools | Tools refer to the various applications or tools that can be integrated and used by your agents via Composio.   [Learn More...](./components/tools/tool-guide) +| Actions | Actions are tasks that can be performed by your agents.   [Learn More...](./components/actions/action-guide) +| Triggers | Triggers are predefined conditions that, when met, initiate webhooks to your agents.   [Learn More...](./components/triggers/trigger-guide) +| Integrations | Integrations are customisable configurations (settings) that are used while creating a new connected account.   [Learn More...](./components/integrations/integration-guide) \ No newline at end of file diff --git a/docs/introduction/foundations/components/actions/action-guide.mdx b/docs/introduction/foundations/components/actions/action-guide.mdx index 499c63d9a9c..0d65d5b325b 100644 --- a/docs/introduction/foundations/components/actions/action-guide.mdx +++ b/docs/introduction/foundations/components/actions/action-guide.mdx @@ -9,83 +9,37 @@ description: "Learn how to perform actions with a connected account." **Prerequisite**: Successfully **linking an account** & then having `connectedAccountId`. -Actions are tasks which your agent can perform. Actions can be performed on the tools which are integrated. Some examples of actions: +Actions are tasks which your agent can perform. Actions can be executed on the tools which are connected. * Create a Google Calendar Event -* Fetch all the Subtitles of a Youtube Video * Send an email -* Star a github repo, etc. - -Check out the coding guides provided in the examples section to have a better understanding. - -
- */} - -## Support - - - - Schedule a one-on-one chat with the founder to discuss how we can help. - - - Get in touch with us directly via email for any inquiries or support - - diff --git a/docs/introduction/intro/quickstart.mdx b/docs/introduction/intro/quickstart.mdx index efb38ce7543..83cb81ba663 100644 --- a/docs/introduction/intro/quickstart.mdx +++ b/docs/introduction/intro/quickstart.mdx @@ -2,16 +2,16 @@ title: "🚀 Quick Start" sidebarTitle: "Quick Start" icon: "play" -description: "Use Composio to connect OpenAI Assistant to GitHub (via OAUTH2) to perform a task using natural language" +description: "Connect LLM to GitHub using Composio in just a few steps" --- ## Quick Start Guide -In this quickstart, you will learn how to: +Learn how to use Composio to connect OpenAI with GitHub and perform actions using natural language: -- Install Composio package -- Connect your GitHub account -- Use Composio with OpenAI to perform actions on GitHub using natural language +1. Install Composio +2. Connect your GitHub account +3. Use Composio with OpenAI to interact with GitHub @@ -19,18 +19,16 @@ In this quickstart, you will learn how to: -```bash Install Composio Package -pip install composio_core -pip install composio_openai +```bash Install Packages +pip install composio_core composio_openai ``` -```javascript Install Composio Package -npm install composio-core -npm install openai +```javascript Install Packages +npm install composio-core openai pip install composio_core // for installing CLI via python. ``` @@ -39,69 +37,88 @@ pip install composio_core // for installing CLI via python. - + + +We will use **`Jessica`** as User identifier for now. + + + -```bash Authenticate your Github Account -composio add github +```bash Authenticate Jessica's GitHub Account +composio add github -e "Jessica" # login to GitHub ``` - - - -Modify `OPENAIKEY` and `COMPOSIO_API_KEY` before executing it. - + -```python Initialise the Composio Tool Set -from openai import OpenAI -from composio_openai import ComposioToolSet, App, Action +```python Authenticate Jessica's GitHub Account +from composio import ComposioToolSet, App -openai_client = OpenAI(api_key="**\*\***OPENAIKEY**\*\***") +toolset = ComposioToolSet(entity_id="Jessica") -composio_toolset = ComposioToolSet() +entity = toolset.get_entity() + +request = entity.initiate_connection(App.GITHUB) + +print( + f"Open this URL in your browser: {request.redirectUrl}" +) -# composio_toolset = ComposioToolSet(api_key=COMPOSIO_API_KEY) -# Only need to pass API key if you are not using CLI ``` -```javascript Initialise the Composio Tool Set - -import { OpenAI } from "openai"; -import { OpenAIToolSet } from "composio-core"; +```javascript Authenticate Jessica's GitHub Account +import { Composio } from "composio-core"; -const openai_client = new OpenAI({ - apiKey: process.env.OPENAIKEY +const client = new Composio({ + apiKey: process.env.COMPOSIO_API_KEY }); -// Initialise the Composio Tool Set -const composio_toolset = new OpenAIToolSet({ - apiKey: process.env.COMPOSIO_API_KEY -}); +const entity = await client.getEntity("Jessica"); + +const connection = await entity.initiateConnection( + 'github', + null, + null +); ``` - - + -```python Get GitHub action for starring a repo -actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER]) +```python Initialise the Composio Tool Set +from composio_openai import ComposioToolSet, App, Action +from openai import OpenAI + +openai_client = OpenAI() +composio_toolset = ComposioToolSet(entity_id="Jessica") ``` +Add `COMPOSIO_API_KEY` to environment variables. -```javascript Get GitHub action for starring a repo -const tools = await composio_toolset.getActions({ -actions: ["github_start_repo"] +```javascript Initialise the Composio Tool Set + +import { OpenAI } from "openai"; +import { OpenAIToolSet } from "composio-core"; + +const openai_client = new OpenAI({ + apiKey: process.env.OPENAIKEY +}); + +// Initialise the Composio Tool Set +const composio_toolset = new OpenAIToolSet({ + apiKey: process.env.COMPOSIO_API_KEY, + entityId: "Jessica", }); ``` @@ -110,37 +127,33 @@ actions: ["github_start_repo"] - + -```python Star a repository using LLM -my_task = "Star a repo composiohq/composio on GitHub" +```python Get GitHub action for starring a repo & Star a repository using LLM +tools = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER]) -# Setup openai assistant -assistant_instruction = "You are a super intelligent personal assistant" +task = "Star a repo composiohq/composio on GitHub" -assistant = openai_client.beta.assistants.create( - name="Personal Assistant", - instructions=assistant_instruction, +response = openai_client.chat.completions.create( model="gpt-4-turbo-preview", - tools=actions, # type: ignore + tools=tools, + messages=[ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": task}, + ], ) - - -# create a thread -thread = openai_client.beta.threads.create() -message = openai_client.beta.threads.messages.create(thread_id=thread.id,role="user",content=my_task) - -# Execute Agent with integrations -run = openai_client.beta.threads.runs.create(thread_id=thread.id,assistant_id=assistant.id) - ``` -```javascript Star a repository using LLM +```javascript Get GitHub action for starring a repo & Star a repository using LLM + +const tools = await composio_toolset.getActions({ +actions: ["github_star_a_repository_for_the_authenticated_user"] +}); const instruction = "Star a repo composiohq/composio on GitHub"; // Initialise the Composio Tool Set @@ -158,151 +171,32 @@ const response = await openai_client.chat.completions.create({ - + -```python Execute Function calls -response_after_tool_calls = composio_toolset.wait_and_handle_assistant_tool_calls( - client=openai_client, - run=run, - thread=thread, -) - -print(response_after_tool_calls) +```python Execute Function calls for Jessica +result = composio_toolset.handle_tool_calls(response) +print(result) ``` -```javascript Execute Function calls -var resp = response.choices[0].message.tool_calls -console.log(resp); - -// Execute +```javascript Execute Function calls for Jessica await composio_toolset.handleToolCall(response); ``` - -You can checkout docs on adding connections or executing actions for a specific user [here](/introduction/foundations/components/entity/entity-guide) - - -### Putting it all together - -Replace `OPENAIKEY`. - - - -```python Complete Code -## Step 1 -#!pip install composio_core -#!pip install composio_openai - -## Step 2 -#!composio add github - -## Step 3 -from openai import OpenAI -from composio_openai import ComposioToolSet, App,Action - -openai_client = OpenAI(api_key="******OPENAIKEY******") - -# Initialise the Composio Tool Set -composio_toolset = ComposioToolSet(api_key="**\*\***COMPOSIO_API_KEY**\*\***") - -## Step 4 -# Get GitHub tools that are pre-configured -actions = composio_toolset.get_actions(actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER]) - - -## Step 5 -my_task = "Star a repo composiohq/composio on GitHub" - -# Setup openai assistant -assistant_instruction = "You are a super intelligent personal assistant" - -assistant = openai_client.beta.assistants.create( - name="Personal Assistant", - instructions=assistant_instruction, - model="gpt-4-turbo-preview", - tools=actions, # type: ignore -) - - -# create a thread -thread = openai_client.beta.threads.create() -message = openai_client.beta.threads.messages.create( - thread_id=thread.id, role="user", content=my_task -) - -# Execute Agent with integrations -run = openai_client.beta.threads.runs.create( - thread_id=thread.id, assistant_id=assistant.id -) - - -## Step 6 -# Execute Function calls -response_after_tool_calls = composio_toolset.wait_and_handle_assistant_tool_calls( - client=openai_client, - run=run, - thread=thread, -) - -url = f"https://platform.openai.com/playground/assistants?assistant={assistant.id}&thread={thread.id}" -print(f"Open this URL to see the assistant in action: {url}") -print(response_after_tool_calls) -``` - - - - -```javascript Complete Code -// Importing necessary modules from the openai and composio-core packages - -import { OpenAI } from "openai"; -import { OpenAIToolSet } from "composio-core"; - - -// Initializing the OpenAI client with the API key from environment variables -const openai_client = new OpenAI({ - apiKey: process.env.OPENAI_API_KEY -}); - -// Initializing the Composio ToolSet with the API key from environment variables -const composio_toolset = new OpenAIToolSet({ - apiKey: process.env.COMPOSIO_API_KEY -}); - -// Fetching GitHub actions from Composio ToolSet -const tools = await composio_toolset.getActions({ - actions: ["github_start_repo"] -}); -// Defining the user instruction for the OpenAI model -const instruction = "Star a repo composiohq/composio on GitHub"; - -// Creating a chat completion request to the OpenAI model -const response = await openai_client.chat.completions.create({ - model: "gpt-4-turbo", - messages: [{ role: "user", content: instruction }], - tools: tools, - tool_choice: "auto", -}); - -// Extracting tool calls from the response and logging them -var resp = response.choices[0].message.tool_calls -console.log(resp); - -// Handling the tool call using Composio ToolSet -await composio_toolset.handleToolCall(response); +### What just happened? -``` - - - \ No newline at end of file +- We authenticated and connected **Jessica's GitHub account** using Composio. +- We fetched the relevant actions that **Jessica** can perform on GitHub. +- We **passed these actions to language model** along with a task. +- The language model decided to **star the repo `composiohq/composio` for Jessica**. +- Composio **executed the action on GitHub**. \ No newline at end of file diff --git a/docs/javascript/langchain.mdx b/docs/javascript/langchain.mdx index edaa2039055..f81dd35aaf9 100644 --- a/docs/javascript/langchain.mdx +++ b/docs/javascript/langchain.mdx @@ -1,6 +1,6 @@ --- title: "Using Composio JS SDK with Langchain" -sidebarTitle: "Langchain" +sidebarTitle: "Langchain (JS)" icon: "code" description: "Use Composio JS SDK with Langchain" --- diff --git a/docs/javascript/openai.mdx b/docs/javascript/openai.mdx index 9140b994527..5127101ec6b 100644 --- a/docs/javascript/openai.mdx +++ b/docs/javascript/openai.mdx @@ -1,6 +1,6 @@ --- title: "Using Composio JS SDK with OpenAI" -sidebarTitle: "Quickstart (OpenAI)" +sidebarTitle: "OpenAI (JS)" icon: "code" description: "Use Composio JS SDK with OpenAI to create a github issue creation agent" --- diff --git a/docs/mint.json b/docs/mint.json index 06b0a99f5e3..e5168513020 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -79,64 +79,61 @@ "group": "Introduction", "pages": [ "introduction/intro/overview", - "introduction/intro/quickstart", - { - "group": "Core Concepts", - "pages": [ - "introduction/foundations/basic", - "introduction/foundations/components/entity/entity-guide", - "introduction/foundations/components/integrations/integration-guide", - "introduction/foundations/components/actions/action-guide", - "introduction/foundations/components/triggers/trigger-guide", - "introduction/foundations/components/local_tools", - "introduction/foundations/components/integrations/custom-integration", - "introduction/foundations/components/actions/local-code" - ] - } + "introduction/intro/quickstart" ] }, { - "group": "Python", + "group": "Basics", "pages": [ - "python/introduction", + "introduction/foundations/basic", + "introduction/foundations/components/entity/entity-guide", + "introduction/foundations/components/actions/action-guide", + "introduction/foundations/components/triggers/trigger-guide", + "introduction/foundations/components/local_tools", { - "group": "With Frameworks", - "icon": "code", - "iconType": "solid", + "group": "Advanced", "pages": [ - "framework/langchain", - "framework/autogen", - "framework/crewai", - "framework/lyzr", - "framework/openai", - "framework/julep", - "framework/griptape", - "framework/llamaindex", - "framework/camelai", - "framework/praisonai", - "framework/langgraph", - "framework/phidata" + "introduction/foundations/components/actions/processing", + "introduction/foundations/components/integrations/integration-guide", + "introduction/foundations/components/workspace", + "introduction/foundations/components/integrations/custom-integration" + ] } ] }, - { - "group": "Javascript", - "pages": [ - "javascript/openai", + { + "group":"Supported Frameworks", + + "pages":[ + "framework/langchain", + "framework/llamaindex", + "framework/crewai", + "javascript/cloudflare", + "javascript/vercel", + { - "group": "With frameworks", - "icon": "code", - "iconType": "solid", + "group": "Other Frameworks", "pages": [ + "framework/autogen", + "framework/crewai", + "framework/lyzr", + "framework/openai", + "framework/julep", + "framework/griptape", + "framework/camelai", + "framework/praisonai", + "framework/langgraph", + "framework/phidata", "javascript/langchain", - "javascript/cloudflare", - "javascript/openai", - "javascript/vercel" + "javascript/openai" ] } ] + + }, + { "group": "SweKit (JS)", "pages": [ @@ -220,42 +217,100 @@ "group": "Endpoints", "icon": "robot", "pages": [ - { - "icon": "code", - "group": "apps", - "pages": [ - "api-reference/apps/list-all-apps" - ] - }, - { - "icon": "rectangles-mixed", - "group": "connections", - "pages": [ - "api-reference/connectedaccounts/list-all-connected-accounts", - "api-reference/connectedaccounts/connect-an-account", - "api-reference/connectedaccounts/get-a-connected-account", - "api-reference/connectedaccounts/delete-a-connected-account" - ] - }, - { - "icon": "database", - "group": "integrations", - "pages": [ - "api-reference/integrations/get-an-integration", - "api-reference/integrations/update-an-integration", - "api-reference/integrations/list-all-integrations", - "api-reference/integrations/create-a-new-integration" - ] - }, - { - "group": "actions", - "pages": [ - "api-reference/actions/get-a-specific-action", - "api-reference/actions/get-list-of-actions", - "api-reference/actions/execute-action" - ] - } - ] + { + "group": "Client Auth", + "pages": [ + "api-reference/client-auth/send-magic-link", + "api-reference/client-auth/logout-api", + "api-reference/client-auth/verify-magic-link", + "api-reference/client-auth/get-user-info" + ] + }, + { + "group": "Team", + "pages": [ + "api-reference/team/invite-member", + "api-reference/team/list-members", + "api-reference/team/remove-member" + ] + }, + { + "group": "API Keys", + "pages": [ + "api-reference/api-keys/list-api-keys", + "api-reference/api-keys/generate-api-key", + "api-reference/api-keys/delete-api-key" + ] + }, + { + "group": "App", + "pages": [ + "api-reference/app/get-apps", + "api-reference/app/add-open-api-spec", + "api-reference/app/get-opena-api-specs" + ] + }, + { + "group": "App Connector", + "pages": [ + "api-reference/app-connector/list-global-connectors", + "api-reference/app-connector/create-connector", + "api-reference/app-connector/get-connector-info", + "api-reference/app-connector/delete-connector", + "api-reference/app-connector/patch-connector" + ] + }, + { + "group": "Actions Controller V 1", + "pages": [ + "api-reference/actions-controller-v-1/list-actions", + "api-reference/actions-controller-v-1/execute-action", + "api-reference/actions-controller-v-1/execute-action-proxy", + "api-reference/actions-controller-v-1/get-action" + ] + }, + { + "group": "Connections", + "pages": [ + "api-reference/connections/get-connections", + "api-reference/connections/initiate-connection", + "api-reference/connections/get-connection", + "api-reference/connections/delete-connection", + "api-reference/connections/disable-connection", + "api-reference/connections/enable-connection" + ] + }, + { + "group": "Triggers", + "pages": [ + "api-reference/triggers/list-triggers", + "api-reference/triggers/handle-trigger", + "api-reference/triggers/enable-trigger", + "api-reference/triggers/get-trigger", + "api-reference/triggers/get-active-triggers", + "api-reference/triggers/disable-trigger", + "api-reference/triggers/delete-trigger", + "api-reference/triggers/set-callback-url", + "api-reference/triggers/set-callback-url-1", + "api-reference/triggers/get-webhook-url", + "api-reference/triggers/get-logs" + ] + }, + { + "group": "Logs", + "pages": [ + "api-reference/logs/get-logs" + ] + }, + { + "group": "Actions Controller V 2", + "pages": [ + "api-reference/actions-controller-v-2/list-actions", + "api-reference/actions-controller-v-2/execute-action", + "api-reference/actions-controller-v-2/execute-action-proxy" + ] + } +] } ], "integrations": { diff --git a/docs/package.json b/docs/package.json index f8d4a3e55f8..4a0f8836cc8 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,7 @@ { "scripts": { - "dev": "mintlify dev" + "dev": "mintlify dev", + "generate": "npx @mintlify/scraping@latest openapi-file ./composio_openapi.json -o api-reference" }, "dependencies": { "axios": "^1.6.8", diff --git a/js/.gitignore b/js/.gitignore index bbd4940cf3d..3913219460a 100644 --- a/js/.gitignore +++ b/js/.gitignore @@ -1,4 +1,8 @@ node_modules/ dist/ /types/* -lib/ \ No newline at end of file +lib/ +*.log +ks/test-results/* +coverage/ +jest_html_reporters.html \ No newline at end of file diff --git a/js/config/getTestConfig.ts b/js/config/getTestConfig.ts new file mode 100644 index 00000000000..6e2a54e5833 --- /dev/null +++ b/js/config/getTestConfig.ts @@ -0,0 +1,18 @@ +export const env = process.env.TEST_ENV || "prod" +const CURRENT_FILE_DIR = __dirname; + +export type BACKEND_CONFIG = { + COMPOSIO_API_KEY: string; + BACKEND_HERMES_URL: string; +} + +export const getTestConfig = (): BACKEND_CONFIG => { + const path = `${CURRENT_FILE_DIR}/test.config.${env}.json`; + try { + return JSON.parse(JSON.stringify(require(path))) as unknown as BACKEND_CONFIG; + } catch (error) { + console.error("Error loading test config file:", error); + + throw new Error("Error loading test config file. You can create test.{{env}}.json file in the config folder."); + } +} \ No newline at end of file diff --git a/js/config/test.config.prod.json b/js/config/test.config.prod.json new file mode 100644 index 00000000000..a7be0317a8a --- /dev/null +++ b/js/config/test.config.prod.json @@ -0,0 +1,4 @@ +{ + "COMPOSIO_API_KEY": "pv7s0lpq7z5vu27cikyls", + "BACKEND_HERMES_URL": "https://backend.composio.dev" +} \ No newline at end of file diff --git a/js/examples/openai/demo.mjs b/js/examples/openai/demo.mjs index f1a254f0862..f39ac868bcf 100644 --- a/js/examples/openai/demo.mjs +++ b/js/examples/openai/demo.mjs @@ -2,9 +2,10 @@ import { OpenAI } from "openai"; import { OpenAIToolSet } from "composio-core"; const toolset = new OpenAIToolSet({ - apiKey: process.env.COMPOSIO_API_KEY, + apiKey: "cc0fu8lookgq1ov8z4xx9n", }); + async function setupUserConnectionIfNotExists(entityId) { const entity = await toolset.client.getEntity(entityId); const connection = await entity.getConnection('github'); diff --git a/js/examples/openai/package.json b/js/examples/openai/package.json index 637353d0065..6f0a3cfd3c4 100644 --- a/js/examples/openai/package.json +++ b/js/examples/openai/package.json @@ -4,7 +4,8 @@ "description": "", "main": "demo.mjs", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "debug": "COMPOSIO_API_KEY=cc0fu8lookgq1ov8z4xx9n node sample.mjs" }, "keywords": [], "author": "", diff --git a/js/jest.config.js b/js/jest.config.js new file mode 100644 index 00000000000..8675426ab89 --- /dev/null +++ b/js/jest.config.js @@ -0,0 +1,14 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + testTimeout: 6000000, + collectCoverage: true, + coverageReporters: [ + "html" + ], + reporters: [ + "default", + "jest-html-reporters" + ], +}; \ No newline at end of file diff --git a/js/openapi-ts.config.js b/js/openapi-ts.config.js new file mode 100644 index 00000000000..25747c0da20 --- /dev/null +++ b/js/openapi-ts.config.js @@ -0,0 +1,17 @@ +//@ts-ignore +import { defineConfig } from "@hey-api/openapi-ts"; + +export default defineConfig({ + client: "@hey-api/client-axios", + input: "http://localhost:9900/openapi.json", + output: "src/sdk/client", + services: { + asClass: true, + //@ts-ignore + methodNameBuilder: (operation) => { + const name = operation.name.split("Controller")[1]; + //@ts-ignore + return name.charAt(0).toLowerCase() + name.slice(1); + }, + }, +}); diff --git a/js/package.json b/js/package.json index 0e9285c6891..e2f1558b9d8 100644 --- a/js/package.json +++ b/js/package.json @@ -4,25 +4,38 @@ "description": "", "main": "lib/index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "jest --testMatch=\"**/*.spec.ts\"", + "test:watch": "jest --testMatch=\"**/*.spec.ts\" --watch", + "test:coverage": "jest --coverage --testMatch=\"**/*.spec.ts\"", "build": "tsc --project . --outDir lib", - "type-docs": "typedoc" + "build:watch": "tsc --watch --project . --outDir lib --watch", + "type-docs": "typedoc", + "openapispec:generate": "npx @hey-api/openapi-ts", + "start-client": "ts-node src/sdk/baseClient.ts" }, "keywords": [], "author": "Utkarsh Dixit ", "license": "ISC", "devDependencies": { "@cloudflare/workers-types": "^4.20240718.0", - "@hey-api/openapi-ts": "^0.46.3", + "@hey-api/openapi-ts": "^0.52.4", + "@jest/globals": "^29.7.0", + "@swc/core": "^1.7.10", + "@swc/helpers": "^0.5.12", "@types/cli-progress": "^3.11.6", "@types/colors": "^1.2.1", "@types/dockerode": "^3.3.30", + "@types/jest": "^29.5.12", "@types/node": "^20.14.2", "@types/uuid": "^10.0.0", "@types/winston": "^2.4.4", "clean-webpack-plugin": "^4.0.0", "fork-ts-checker-webpack-plugin": "^9.0.2", + "jest": "^29.7.0", + "jest-html-reporters": "^3.1.7", + "regenerator-runtime": "^0.14.1", "terser-webpack-plugin": "^5.3.10", + "ts-jest": "^29.1.2", "ts-loader": "^9.5.1", "typedoc": "^0.25.13", "typescript": "^5.4.5", @@ -35,6 +48,7 @@ "@e2b/code-interpreter": "^0.0.8", "@e2b/sdk": "^0.16.1", "@faker-js/faker": "^8.4.1", + "@hey-api/client-axios": "^0.2.3", "@hono/node-server": "^1.12.0", "@langchain/core": "^0.2.18", "@langchain/openai": "^0.2.5", @@ -49,6 +63,7 @@ "langchain": "^0.2.11", "openai": "^4.50.0", "pusher-js": "8.4.0-rc2", + "ts-node": "^10.9.2", "uuid": "^10.0.0", "winston": "^3.13.1", "zod": "^3.23.8", diff --git a/js/pnpm-lock.yaml b/js/pnpm-lock.yaml index 9c2b271de9b..40bc2f4cbd5 100644 --- a/js/pnpm-lock.yaml +++ b/js/pnpm-lock.yaml @@ -1,141 +1,174 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -importers: - - .: - dependencies: - '@ai-sdk/openai': - specifier: ^0.0.36 - version: 0.0.36(zod@3.23.8) - '@e2b/code-interpreter': - specifier: ^0.0.8 - version: 0.0.8 - '@e2b/sdk': - specifier: ^0.16.1 - version: 0.16.1 - '@faker-js/faker': - specifier: ^8.4.1 - version: 8.4.1 - '@hono/node-server': - specifier: ^1.12.0 - version: 1.12.0 - '@langchain/core': - specifier: ^0.2.18 - version: 0.2.21(langchain@0.2.13)(openai@4.51.0) - '@langchain/openai': - specifier: ^0.2.5 - version: 0.2.6(langchain@0.2.13) - ai: - specifier: ^3.2.22 - version: 3.3.3(openai@4.51.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.36)(zod@3.23.8) - axios: - specifier: ^1.7.2 - version: 1.7.2 - cli-progress: - specifier: ^3.12.0 - version: 3.12.0 - colors: - specifier: ^1.4.0 - version: 1.4.0 - dockerode: - specifier: ^4.0.2 - version: 4.0.2 - e2b: - specifier: ^0.16.1 - version: 0.16.1 - enumify: - specifier: ^2.0.0 - version: 2.0.0 - hono: - specifier: ^4.4.11 - version: 4.4.12 - langchain: - specifier: ^0.2.11 - version: 0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0) - openai: - specifier: ^4.50.0 - version: 4.51.0 - pusher-js: - specifier: 8.4.0-rc2 - version: 8.4.0-rc2 - uuid: - specifier: ^10.0.0 - version: 10.0.0 - winston: - specifier: ^3.13.1 - version: 3.14.0 - zod: - specifier: ^3.23.8 - version: 3.23.8 - zod-to-json-schema: - specifier: ^3.23.2 - version: 3.23.2(zod@3.23.8) - devDependencies: - '@cloudflare/workers-types': - specifier: ^4.20240718.0 - version: 4.20240806.0 - '@hey-api/openapi-ts': - specifier: ^0.46.3 - version: 0.46.3(typescript@5.4.5) - '@types/cli-progress': - specifier: ^3.11.6 - version: 3.11.6 - '@types/colors': - specifier: ^1.2.1 - version: 1.2.1 - '@types/dockerode': - specifier: ^3.3.30 - version: 3.3.31 - '@types/node': - specifier: ^20.14.2 - version: 20.14.2 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 - '@types/winston': - specifier: ^2.4.4 - version: 2.4.4 - clean-webpack-plugin: - specifier: ^4.0.0 - version: 4.0.0(webpack@5.92.0) - fork-ts-checker-webpack-plugin: - specifier: ^9.0.2 - version: 9.0.2(typescript@5.4.5)(webpack@5.92.0) - terser-webpack-plugin: - specifier: ^5.3.10 - version: 5.3.10(esbuild@0.17.19)(webpack@5.92.0) - ts-loader: - specifier: ^9.5.1 - version: 9.5.1(typescript@5.4.5)(webpack@5.92.0) - typedoc: - specifier: ^0.25.13 - version: 0.25.13(typescript@5.4.5) - typescript: - specifier: ^5.4.5 - version: 5.4.5 - webpack: - specifier: ^5.91.0 - version: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) - webpack-cli: - specifier: ^5.1.4 - version: 5.1.4(webpack@5.92.0) - wrangler: - specifier: ^3.63.1 - version: 3.63.1(@cloudflare/workers-types@4.20240806.0) +dependencies: + '@ai-sdk/openai': + specifier: ^0.0.36 + version: 0.0.36(zod@3.23.8) + '@e2b/code-interpreter': + specifier: ^0.0.8 + version: 0.0.8 + '@e2b/sdk': + specifier: ^0.16.1 + version: 0.16.1 + '@faker-js/faker': + specifier: ^8.4.1 + version: 8.4.1 + '@hey-api/client-axios': + specifier: ^0.2.3 + version: 0.2.3(axios@1.7.2) + '@hono/node-server': + specifier: ^1.12.0 + version: 1.12.0 + '@langchain/core': + specifier: ^0.2.18 + version: 0.2.21(langchain@0.2.13)(openai@4.51.0) + '@langchain/openai': + specifier: ^0.2.5 + version: 0.2.6(langchain@0.2.13) + ai: + specifier: ^3.2.22 + version: 3.3.3(openai@4.51.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.36)(zod@3.23.8) + axios: + specifier: ^1.7.2 + version: 1.7.2 + cli-progress: + specifier: ^3.12.0 + version: 3.12.0 + colors: + specifier: ^1.4.0 + version: 1.4.0 + dockerode: + specifier: ^4.0.2 + version: 4.0.2 + e2b: + specifier: ^0.16.1 + version: 0.16.1 + enumify: + specifier: ^2.0.0 + version: 2.0.0 + hono: + specifier: ^4.4.11 + version: 4.4.12 + langchain: + specifier: ^0.2.11 + version: 0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0) + openai: + specifier: ^4.50.0 + version: 4.51.0 + pusher-js: + specifier: 8.4.0-rc2 + version: 8.4.0-rc2 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@swc/core@1.7.10)(@types/node@20.14.2)(typescript@5.4.5) + uuid: + specifier: ^10.0.0 + version: 10.0.0 + winston: + specifier: ^3.13.1 + version: 3.14.0 + zod: + specifier: ^3.23.8 + version: 3.23.8 + zod-to-json-schema: + specifier: ^3.23.2 + version: 3.23.2(zod@3.23.8) + +devDependencies: + '@cloudflare/workers-types': + specifier: ^4.20240718.0 + version: 4.20240806.0 + '@hey-api/openapi-ts': + specifier: ^0.52.4 + version: 0.52.5(typescript@5.4.5) + '@jest/globals': + specifier: ^29.7.0 + version: 29.7.0 + '@swc/core': + specifier: ^1.7.10 + version: 1.7.10(@swc/helpers@0.5.12) + '@swc/helpers': + specifier: ^0.5.12 + version: 0.5.12 + '@types/cli-progress': + specifier: ^3.11.6 + version: 3.11.6 + '@types/colors': + specifier: ^1.2.1 + version: 1.2.1 + '@types/dockerode': + specifier: ^3.3.30 + version: 3.3.31 + '@types/jest': + specifier: ^29.5.12 + version: 29.5.12 + '@types/node': + specifier: ^20.14.2 + version: 20.14.2 + '@types/uuid': + specifier: ^10.0.0 + version: 10.0.0 + '@types/winston': + specifier: ^2.4.4 + version: 2.4.4 + clean-webpack-plugin: + specifier: ^4.0.0 + version: 4.0.0(webpack@5.92.0) + fork-ts-checker-webpack-plugin: + specifier: ^9.0.2 + version: 9.0.2(typescript@5.4.5)(webpack@5.92.0) + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + jest-html-reporters: + specifier: ^3.1.7 + version: 3.1.7 + regenerator-runtime: + specifier: ^0.14.1 + version: 0.14.1 + terser-webpack-plugin: + specifier: ^5.3.10 + version: 5.3.10(@swc/core@1.7.10)(esbuild@0.17.19)(webpack@5.92.0) + ts-jest: + specifier: ^29.1.2 + version: 29.2.4(@babel/core@7.25.2)(esbuild@0.17.19)(jest@29.7.0)(typescript@5.4.5) + ts-loader: + specifier: ^9.5.1 + version: 9.5.1(typescript@5.4.5)(webpack@5.92.0) + typedoc: + specifier: ^0.25.13 + version: 0.25.13(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + webpack: + specifier: ^5.91.0 + version: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + webpack-cli: + specifier: ^5.1.4 + version: 5.1.4(webpack@5.92.0) + wrangler: + specifier: ^3.63.1 + version: 3.63.1(@cloudflare/workers-types@4.20240806.0) packages: - '@ai-sdk/openai@0.0.36': + /@ai-sdk/openai@0.0.36(zod@3.23.8): resolution: {integrity: sha512-6IcvR35UMuuQEQPkVjzUtqDAuz6vy+PMCEL0PAS2ufHXdPPm81OTKVetqjgOPjebsikhVP0soK1pKPEe2cztAQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 + dependencies: + '@ai-sdk/provider': 0.0.12 + '@ai-sdk/provider-utils': 1.0.2(zod@3.23.8) + zod: 3.23.8 + dev: false - '@ai-sdk/provider-utils@1.0.2': + /@ai-sdk/provider-utils@1.0.2(zod@3.23.8): resolution: {integrity: sha512-57f6O4OFVNEpI8Z8o+K40tIB3YQiTw+VCql/qrAO9Utq7Ti1o6+X9tvm177DlZJL7ft0Rwzvgy48S9YhrEKgmA==} engines: {node: '>=18'} peerDependencies: @@ -143,8 +176,15 @@ packages: peerDependenciesMeta: zod: optional: true + dependencies: + '@ai-sdk/provider': 0.0.12 + eventsource-parser: 1.1.2 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + zod: 3.23.8 + dev: false - '@ai-sdk/provider-utils@1.0.8': + /@ai-sdk/provider-utils@1.0.8(zod@3.23.8): resolution: {integrity: sha512-FLAwVhycHSPINBSyDB4Y+t7UXLdXwhhzrJFXgKHXYmFP9K54KFhfWguKKjq9/MwhpNBt3hDg+Zty4cIASyX7VQ==} engines: {node: '>=18'} peerDependencies: @@ -152,16 +192,29 @@ packages: peerDependenciesMeta: zod: optional: true + dependencies: + '@ai-sdk/provider': 0.0.16 + eventsource-parser: 1.1.2 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + zod: 3.23.8 + dev: false - '@ai-sdk/provider@0.0.12': + /@ai-sdk/provider@0.0.12: resolution: {integrity: sha512-oOwPQD8i2Ynpn22cur4sk26FW3mSy6t6/X/K1Ay2yGBKYiSpRyLfObhOrZEGsXDx+3euKy4nEZ193R36NM+tpQ==} engines: {node: '>=18'} + dependencies: + json-schema: 0.4.0 + dev: false - '@ai-sdk/provider@0.0.16': + /@ai-sdk/provider@0.0.16: resolution: {integrity: sha512-PnNUvedxoCvkyzcA5otNHi5xQdTiw58Ql4m9I9kT8I/Zs2R7RRNkvvCbbRfRztWvIpZvvA2q/UTO7xJHhleY7Q==} engines: {node: '>=18'} + dependencies: + json-schema: 0.4.0 + dev: false - '@ai-sdk/react@0.0.39': + /@ai-sdk/react@0.0.39(react@18.3.1)(zod@3.23.8): resolution: {integrity: sha512-F4g+u5+RAVXeGpnwhUMleSlOXd3XG4h6r2nXkcHp8OBRFXunzKcDyc5ET90+HC+eDQQqZosVGn7rslRvnw8QnA==} engines: {node: '>=18'} peerDependencies: @@ -172,8 +225,15 @@ packages: optional: true zod: optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) + react: 18.3.1 + swr: 2.2.5(react@18.3.1) + zod: 3.23.8 + dev: false - '@ai-sdk/solid@0.0.30': + /@ai-sdk/solid@0.0.30(zod@3.23.8): resolution: {integrity: sha512-AhT1UWbcGB+G1W+odunwiO33HCP/WFCUGEq5OKZt6Xo850k2m5jCLTl9PqGhdn/IAcpAATJKmVCG9PMR1LyNyw==} engines: {node: '>=18'} peerDependencies: @@ -181,8 +241,14 @@ packages: peerDependenciesMeta: solid-js: optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) + transitivePeerDependencies: + - zod + dev: false - '@ai-sdk/svelte@0.0.32': + /@ai-sdk/svelte@0.0.32(svelte@4.2.18)(zod@3.23.8): resolution: {integrity: sha512-KawwKNnHlQ8RZy7S1A60WyHRyOqdUFj3gp1jOJHb4GoYYTfSjvlJB+IZsVttCnlxsajgvwgHIE7QFm0LkXcS8g==} engines: {node: '>=18'} peerDependencies: @@ -190,8 +256,16 @@ packages: peerDependenciesMeta: svelte: optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) + sswr: 2.1.0(svelte@4.2.18) + svelte: 4.2.18 + transitivePeerDependencies: + - zod + dev: false - '@ai-sdk/ui-utils@0.0.27': + /@ai-sdk/ui-utils@0.0.27(zod@3.23.8): resolution: {integrity: sha512-XQaKMLg/KAml7Rt0zdny7AJOXZWZsGp/vQ70F2c9eD/ABkGzHNjWRVVpfYJgHoQxc9KRK/mrGEJEZFFqm2yyHw==} engines: {node: '>=18'} peerDependencies: @@ -199,8 +273,14 @@ packages: peerDependenciesMeta: zod: optional: true + dependencies: + '@ai-sdk/provider': 0.0.16 + '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) + secure-json-parse: 2.7.0 + zod: 3.23.8 + dev: false - '@ai-sdk/vue@0.0.31': + /@ai-sdk/vue@0.0.31(vue@3.4.36)(zod@3.23.8): resolution: {integrity: sha512-/reWD7JCNOdTVnlVDybYUE4cZu0DYmqAX9crss937BivbueVSI1DGJwELz19RjtngJpQXwV7e9fvdOzx6nJDdw==} engines: {node: '>=18'} peerDependencies: @@ -208,465 +288,1607 @@ packages: peerDependenciesMeta: vue: optional: true + dependencies: + '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) + swrv: 1.0.4(vue@3.4.36) + vue: 3.4.36(typescript@5.4.5) + transitivePeerDependencies: + - zod + dev: false - '@ampproject/remapping@2.3.0': + /@ampproject/remapping@2.3.0: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 - '@apidevtools/json-schema-ref-parser@11.6.2': - resolution: {integrity: sha512-ENUdLLT04aDbbHCRwfKf8gR67AhV0CdFrOAtk+FcakBAgaq6ds3HLK9X0BCyiFUz8pK9uP+k6YZyJaGG7Mt7vQ==} + /@apidevtools/json-schema-ref-parser@11.7.0: + resolution: {integrity: sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==} engines: {node: '>= 16'} + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.15 + js-yaml: 4.1.0 + dev: true - '@babel/code-frame@7.24.7': + /@babel/code-frame@7.24.7: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + dev: true + + /@babel/compat-data@7.25.2: + resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.25.2: + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + convert-source-map: 2.0.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.25.0: + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.25.2 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + + /@babel/helper-compilation-targets@7.25.2: + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.25.2 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-module-imports@7.24.7: + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-plugin-utils@7.24.8: + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.24.7: + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-string-parser@7.24.8': + /@babel/helper-string-parser@7.24.8: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': + /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': + /@babel/helper-validator-option@7.24.8: + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.25.0: + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + dev: true + + /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + dev: true - '@babel/parser@7.25.3': + /@babel/parser@7.25.3: resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.25.2 + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true - '@babel/types@7.25.2': + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: true + + /@babel/template@7.25.0: + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + dev: true + + /@babel/traverse@7.25.3: + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + debug: 4.3.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.25.2: resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 - '@balena/dockerignore@1.0.2': + /@balena/dockerignore@1.0.2: resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + dev: false + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true - '@cloudflare/kv-asset-handler@0.3.4': + /@cloudflare/kv-asset-handler@0.3.4: resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} + dependencies: + mime: 3.0.0 + dev: true - '@cloudflare/workerd-darwin-64@1.20240701.0': + /@cloudflare/workerd-darwin-64@1.20240701.0: resolution: {integrity: sha512-XAZa4ZP+qyTn6JQQACCPH09hGZXP2lTnWKkmg5mPwT8EyRzCKLkczAf98vPP5bq7JZD/zORdFWRY0dOTap8zTQ==} engines: {node: '>=16'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@cloudflare/workerd-darwin-arm64@1.20240701.0': + /@cloudflare/workerd-darwin-arm64@1.20240701.0: resolution: {integrity: sha512-w80ZVAgfH4UwTz7fXZtk7KmS2FzlXniuQm4ku4+cIgRTilBAuKqjpOjwUCbx5g13Gqcm9NuiHce+IDGtobRTIQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@cloudflare/workerd-linux-64@1.20240701.0': + /@cloudflare/workerd-linux-64@1.20240701.0: resolution: {integrity: sha512-UWLr/Anxwwe/25nGv451MNd2jhREmPt/ws17DJJqTLAx6JxwGWA15MeitAIzl0dbxRFAJa+0+R8ag2WR3F/D6g==} engines: {node: '>=16'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@cloudflare/workerd-linux-arm64@1.20240701.0': + /@cloudflare/workerd-linux-arm64@1.20240701.0: resolution: {integrity: sha512-3kCnF9kYgov1ggpuWbgpXt4stPOIYtVmPCa7MO2xhhA0TWP6JDUHRUOsnmIgKrvDjXuXqlK16cdg3v+EWsaPJg==} engines: {node: '>=16'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@cloudflare/workerd-windows-64@1.20240701.0': + /@cloudflare/workerd-windows-64@1.20240701.0: resolution: {integrity: sha512-6IPGITRAeS67j3BH1rN4iwYWDt47SqJG7KlZJ5bB4UaNAia4mvMBSy/p2p4vA89bbXoDRjMtEvRu7Robu6O7hQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@cloudflare/workers-types@4.20240806.0': + /@cloudflare/workers-types@4.20240806.0: resolution: {integrity: sha512-8lvgrwXGTZEBsUQJ8YUnMk72Anh9omwr6fqWLw/EwVgcw1nQxs/bfdadBEbdP48l9fWXjE4E5XERLUrrFuEpsg==} + dev: true - '@colors/colors@1.6.0': + /@colors/colors@1.6.0: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - '@cspotcode/source-map-support@0.8.1': + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 - '@dabh/diagnostics@2.0.3': + /@dabh/diagnostics@2.0.3: resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==} + dependencies: + colorspace: 1.1.4 + enabled: 2.0.0 + kuler: 2.0.0 - '@discoveryjs/json-ext@0.5.7': + /@discoveryjs/json-ext@0.5.7: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} + dev: true - '@e2b/code-interpreter@0.0.8': + /@e2b/code-interpreter@0.0.8: resolution: {integrity: sha512-cKDFY9js9l3MfL71x0IDvaz0mAhvHIurVFnimtFRXNzuV0TxhuFqsauKabet0TMOrcDF3H3trC7pct6mNgRYTA==} engines: {node: '>=18'} + dependencies: + e2b: 0.16.1 + isomorphic-ws: 5.0.0(ws@8.18.0) + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false - '@e2b/sdk@0.16.1': + /@e2b/sdk@0.16.1: resolution: {integrity: sha512-7D8NkogBlDAh/zO3LnsZR5duPToriAkfoPgu/jq2HinUF8hgzPeOyBe3OX386CyltAttEI+q12qBegv++NVPgg==} engines: {node: '>=18'} deprecated: 'The package @e2b/sdk has been renamed to e2b. Please uninstall the old one and install the new by running following command: npm uninstall @e2b/sdk && npm install e2b' + dependencies: + isomorphic-ws: 5.0.0(ws@8.18.0) + normalize-path: 3.0.0 + openapi-typescript-fetch: 1.1.3 + path-browserify: 1.0.1 + platform: 1.3.6 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 6.0.4 + dev: false - '@esbuild-plugins/node-globals-polyfill@0.2.3': + /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19): resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: esbuild: '*' + dependencies: + esbuild: 0.17.19 + dev: true - '@esbuild-plugins/node-modules-polyfill@0.2.2': + /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19): resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} peerDependencies: esbuild: '*' + dependencies: + esbuild: 0.17.19 + escape-string-regexp: 4.0.0 + rollup-plugin-node-polyfills: 0.2.1 + dev: true - '@esbuild/android-arm64@0.17.19': + /@esbuild/android-arm64@0.17.19: resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} cpu: [arm64] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-arm@0.17.19': + /@esbuild/android-arm@0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} cpu: [arm] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/android-x64@0.17.19': + /@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} cpu: [x64] os: [android] + requiresBuild: true + dev: true + optional: true - '@esbuild/darwin-arm64@0.17.19': + /@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/darwin-x64@0.17.19': + /@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-arm64@0.17.19': + /@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/freebsd-x64@0.17.19': + /@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm64@0.17.19': + /@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-arm@0.17.19': + /@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ia32@0.17.19': + /@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-loong64@0.17.19': + /@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-mips64el@0.17.19': + /@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-ppc64@0.17.19': + /@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-riscv64@0.17.19': + /@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-s390x@0.17.19': + /@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/linux-x64@0.17.19': + /@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] + requiresBuild: true + dev: true + optional: true - '@esbuild/netbsd-x64@0.17.19': + /@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/openbsd-x64@0.17.19': + /@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + requiresBuild: true + dev: true + optional: true - '@esbuild/sunos-x64@0.17.19': + /@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-arm64@0.17.19': + /@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-ia32@0.17.19': + /@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + requiresBuild: true + dev: true + optional: true - '@esbuild/win32-x64@0.17.19': + /@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} cpu: [x64] os: [win32] + requiresBuild: true + dev: true + optional: true - '@faker-js/faker@8.4.1': + /@faker-js/faker@8.4.1: resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + dev: false - '@fastify/busboy@2.1.1': + /@fastify/busboy@2.1.1: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} + dev: true + + /@hey-api/client-axios@0.2.3(axios@1.7.2): + resolution: {integrity: sha512-v1BoTozp8LQ9JawZF9atXdmaBdQEvoIf39pIYf/0WSdkZSv0rUJDVXxNWHnDDs+S1/6pOfbOhM/0VXD5YJqr8w==} + peerDependencies: + axios: '>= 1.0.0 < 2' + dependencies: + axios: 1.7.2 + dev: false - '@hey-api/openapi-ts@0.46.3': - resolution: {integrity: sha512-2C0tmzUq6m9518uDMHBooqiS7wvWy9UD6SepudWU+9fB6lZvC+yxbK/viaMfwvCv4l1hKuBZZZQNP0xrNcyRsQ==} + /@hey-api/openapi-ts@0.52.5(typescript@5.4.5): + resolution: {integrity: sha512-nhBHVeEe0S11QuD9mEYZ3Fb9eXVoY2JKzLZxpzEoqdnW1yVZssMe9qdxRfuwTJrN0IC8kcY3bna6pLk0ENXrVQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: typescript: ^5.x + dependencies: + '@apidevtools/json-schema-ref-parser': 11.7.0 + c12: 1.11.1 + commander: 12.1.0 + handlebars: 4.7.8 + typescript: 5.4.5 + transitivePeerDependencies: + - magicast + dev: true - '@hono/node-server@1.12.0': + /@hono/node-server@1.12.0: resolution: {integrity: sha512-e6oHjNiErRxsZRZBmc2KucuvY3btlO/XPncIpP2X75bRdTilF9GLjm3NHvKKunpJbbJJj31/FoPTksTf8djAVw==} engines: {node: '>=18.14.1'} + dev: false + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/core@29.7.0(ts-node@10.9.2): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.7 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + jest-mock: 29.7.0 + dev: true + + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + dev: true + + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.14.2 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 20.14.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true - '@jridgewell/gen-mapping@0.3.5': + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + dev: true + + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.25.2 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.7 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.14.2 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + dev: true + + /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.2': + /@jridgewell/resolve-uri@3.1.2: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': + /@jridgewell/set-array@1.2.1: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.6': + /@jridgewell/source-map@0.3.6: resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true - '@jridgewell/sourcemap-codec@1.4.15': + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/sourcemap-codec@1.5.0': + /@jridgewell/sourcemap-codec@1.5.0: resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/trace-mapping@0.3.25': + /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping@0.3.9': + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 - '@jsdevtools/ono@7.1.3': + /@jsdevtools/ono@7.1.3: resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + dev: true + + /@langchain/core@0.2.21(langchain@0.2.13)(openai@4.51.0): + resolution: {integrity: sha512-NQaoiRG4lIAJKAlo1Ww/aLcC3azfXymHAmWPAJOFcugsOSXYlrj050hilZdLzHrpliS4vDMezHNSaCf+H0CInQ==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.12 + langsmith: 0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.51.0) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 + zod: 3.23.8 + zod-to-json-schema: 3.23.2(zod@3.23.8) + transitivePeerDependencies: + - langchain + - openai + dev: false - '@langchain/core@0.2.21': + /@langchain/core@0.2.21(langchain@0.2.13)(openai@4.55.1): resolution: {integrity: sha512-NQaoiRG4lIAJKAlo1Ww/aLcC3azfXymHAmWPAJOFcugsOSXYlrj050hilZdLzHrpliS4vDMezHNSaCf+H0CInQ==} engines: {node: '>=18'} + dependencies: + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.12 + langsmith: 0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.55.1) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 + zod: 3.23.8 + zod-to-json-schema: 3.23.2(zod@3.23.8) + transitivePeerDependencies: + - langchain + - openai + dev: false - '@langchain/openai@0.2.6': + /@langchain/openai@0.2.6(langchain@0.2.13): resolution: {integrity: sha512-LZgSzHOZPJGsZr2ZXJICqZo1GN0kUyP9/RN+T45g7HDdMRfS5Df7fJgY9w7EIfznT83Q0Ywhz+At/UvWMR3xhw==} engines: {node: '>=18'} + dependencies: + '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.55.1) + js-tiktoken: 1.0.12 + openai: 4.55.1(zod@3.23.8) + zod: 3.23.8 + zod-to-json-schema: 3.23.2(zod@3.23.8) + transitivePeerDependencies: + - encoding + - langchain + dev: false - '@langchain/textsplitters@0.0.3': + /@langchain/textsplitters@0.0.3(langchain@0.2.13)(openai@4.51.0): resolution: {integrity: sha512-cXWgKE3sdWLSqAa8ykbCcUsUF1Kyr5J3HOWYGuobhPEycXW4WI++d5DhzdpL238mzoEXTi90VqfSCra37l5YqA==} engines: {node: '>=18'} + dependencies: + '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.51.0) + js-tiktoken: 1.0.12 + transitivePeerDependencies: + - langchain + - openai + dev: false - '@opentelemetry/api@1.9.0': + /@opentelemetry/api@1.9.0: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} + dev: false - '@types/cli-progress@3.11.6': - resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true - '@types/colors@1.2.1': - resolution: {integrity: sha512-7jNkpfN2lVO07nJ1RWzyMnNhH/I5N9iWuMPx9pedptxJ4MODf8rRV0lbJi6RakQ4sKQk231Fw4e2W9n3D7gZ3w==} - deprecated: This is a stub types definition. colors provides its own type definitions, so you don't need this installed. + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + dependencies: + type-detect: 4.0.8 + dev: true - '@types/diff-match-patch@1.0.36': - resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + dependencies: + '@sinonjs/commons': 3.0.1 + dev: true - '@types/docker-modem@3.0.6': - resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} + /@swc/core-darwin-arm64@1.7.10: + resolution: {integrity: sha512-TYp4x/9w/C/yMU1olK5hTKq/Hi7BjG71UJ4V1U1WxI1JA3uokjQ/GoktDfmH5V5pX4dgGSOJwUe2RjoN8Z/XnA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true - '@types/dockerode@3.3.31': - resolution: {integrity: sha512-42R9eoVqJDSvVspV89g7RwRqfNExgievLNWoHkg7NoWIqAmavIbgQBb4oc0qRtHkxE+I3Xxvqv7qVXFABKPBTg==} + /@swc/core-darwin-x64@1.7.10: + resolution: {integrity: sha512-P3LJjAWh5yLc6p5IUwV5LgRfA3R1oDCZDMabYyb2BVQuJTD4MfegW9DhBcUUF5dhBLwq3191KpLVzE+dLTbiXw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true - '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + /@swc/core-linux-arm-gnueabihf@1.7.10: + resolution: {integrity: sha512-yGOFjE7w/akRTmqGY3FvWYrqbxO7OB2N2FHj2LO5HtzXflfoABb5RyRvdEquX+17J6mEpu4EwjYNraTD/WHIEQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + /@swc/core-linux-arm64-gnu@1.7.10: + resolution: {integrity: sha512-SPWsgWHfdWKKjLrYlvhxcdBJ7Ruy6crJbPoE9NfD95eJEjMnS2yZTqj2ChFsY737WeyhWYlHzgYhYOVCp83YwQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + /@swc/core-linux-arm64-musl@1.7.10: + resolution: {integrity: sha512-PUi50bkNqnBL3Z/Zq6jSfwgN9A/taA6u2Zou0tjDJi7oVdpjdr7SxNgCGzMJ/nNg5D/IQn1opM1jktMvpsPAuQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + /@swc/core-linux-x64-gnu@1.7.10: + resolution: {integrity: sha512-Sc+pY55gknCAmBQBR6DhlA7jZSxHaLSDb5Sevzi6DOFMXR79NpA6zWTNKwp1GK2AnRIkbAfvYLgOxS5uWTFVpg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + /@swc/core-linux-x64-musl@1.7.10: + resolution: {integrity: sha512-g5NKx2LXaGd0K26hmEts1Cvb7ptIvq3MHSgr6/D1tRPcDZw1Sp0dYsmyOv0ho4F5GOJyiCooG3oE9FXdb7jIpQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + /@swc/core-win32-arm64-msvc@1.7.10: + resolution: {integrity: sha512-plRIsOcfy9t9Q/ivm5DA7I0HaIvfAWPbI+bvVRrr3C/1K2CSqnqZJjEWOAmx2LiyipijNnEaFYuLBp0IkGuJpg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + /@swc/core-win32-ia32-msvc@1.7.10: + resolution: {integrity: sha512-GntrVNT23viHtbfzmlK8lfBiKeajH24GzbDT7qXhnoO20suUPcyYZxyvCb4gWM2zu8ZBTPHNlqfrNsriQCZ+lQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + /@swc/core-win32-x64-msvc@1.7.10: + resolution: {integrity: sha512-uXIF8GuSappe1imm6Lf7pHGepfCBjDQlS+qTqvEGE0wZAsL1IVATK9P/cH/OCLfJXeQDTLeSYmrpwjtXNt46tQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true - '@types/node@18.19.34': - resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==} + /@swc/core@1.7.10(@swc/helpers@0.5.12): + resolution: {integrity: sha512-l0xrFwBQ9atizhmV94yC2nwcecTk/oftofwMNPiFMGe56dqdmi2ArHaTV3PCtMlgaUH6rGCehoRMt5OrCI1ktg==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.12 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.10 + '@swc/core-darwin-x64': 1.7.10 + '@swc/core-linux-arm-gnueabihf': 1.7.10 + '@swc/core-linux-arm64-gnu': 1.7.10 + '@swc/core-linux-arm64-musl': 1.7.10 + '@swc/core-linux-x64-gnu': 1.7.10 + '@swc/core-linux-x64-musl': 1.7.10 + '@swc/core-win32-arm64-msvc': 1.7.10 + '@swc/core-win32-ia32-msvc': 1.7.10 + '@swc/core-win32-x64-msvc': 1.7.10 + + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + /@swc/helpers@0.5.12: + resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} + dependencies: + tslib: 2.6.3 - '@types/node@20.14.2': - resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} + /@swc/types@0.1.12: + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + dependencies: + '@swc/counter': 0.1.3 - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - '@types/ssh2@1.15.0': - resolution: {integrity: sha512-YcT8jP5F8NzWeevWvcyrrLB3zcneVjzYY9ZDSMAMboI+2zR1qYWFhwsyOFVzT7Jorn67vqxC0FRiw8YyG9P1ww==} + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + dev: true - '@types/winston@2.4.4': - resolution: {integrity: sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==} - deprecated: This is a stub types definition. winston provides its own type definitions, so you do not need this installed. + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.25.2 + dev: true - '@vue/compiler-core@3.4.36': - resolution: {integrity: sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==} + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + dev: true - '@vue/compiler-dom@3.4.36': - resolution: {integrity: sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==} + /@types/babel__traverse@7.20.6: + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + dependencies: + '@babel/types': 7.25.2 + dev: true - '@vue/compiler-sfc@3.4.36': - resolution: {integrity: sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==} + /@types/cli-progress@3.11.6: + resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} + dependencies: + '@types/node': 20.14.2 + dev: true - '@vue/compiler-ssr@3.4.36': - resolution: {integrity: sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==} + /@types/colors@1.2.1: + resolution: {integrity: sha512-7jNkpfN2lVO07nJ1RWzyMnNhH/I5N9iWuMPx9pedptxJ4MODf8rRV0lbJi6RakQ4sKQk231Fw4e2W9n3D7gZ3w==} + deprecated: This is a stub types definition. colors provides its own type definitions, so you don't need this installed. + dependencies: + colors: 1.4.0 + dev: true - '@vue/reactivity@3.4.36': - resolution: {integrity: sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==} + /@types/diff-match-patch@1.0.36: + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + dev: false - '@vue/runtime-core@3.4.36': - resolution: {integrity: sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==} + /@types/docker-modem@3.0.6: + resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} + dependencies: + '@types/node': 20.14.2 + '@types/ssh2': 1.15.0 + dev: true - '@vue/runtime-dom@3.4.36': - resolution: {integrity: sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==} + /@types/dockerode@3.3.31: + resolution: {integrity: sha512-42R9eoVqJDSvVspV89g7RwRqfNExgievLNWoHkg7NoWIqAmavIbgQBb4oc0qRtHkxE+I3Xxvqv7qVXFABKPBTg==} + dependencies: + '@types/docker-modem': 3.0.6 + '@types/node': 20.14.2 + '@types/ssh2': 1.15.0 + dev: true - '@vue/server-renderer@3.4.36': + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + dependencies: + '@types/eslint': 8.56.10 + '@types/estree': 1.0.5 + dev: true + + /@types/eslint@8.56.10: + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + /@types/glob@7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.14.2 + dev: true + + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + dependencies: + '@types/node': 20.14.2 + dev: true + + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true + + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + dev: true + + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + dependencies: + '@types/istanbul-lib-report': 3.0.3 + dev: true + + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true + + /@types/node-fetch@2.6.11: + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + dependencies: + '@types/node': 20.14.2 + form-data: 4.0.0 + dev: false + + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + dependencies: + '@types/node': 20.14.2 + dev: true + + /@types/node@18.19.34: + resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==} + dependencies: + undici-types: 5.26.5 + + /@types/node@20.14.2: + resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} + dependencies: + undici-types: 5.26.5 + + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: false + + /@types/ssh2@1.15.0: + resolution: {integrity: sha512-YcT8jP5F8NzWeevWvcyrrLB3zcneVjzYY9ZDSMAMboI+2zR1qYWFhwsyOFVzT7Jorn67vqxC0FRiw8YyG9P1ww==} + dependencies: + '@types/node': 18.19.34 + dev: true + + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: true + + /@types/triple-beam@1.3.5: + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + /@types/uuid@10.0.0: + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + dev: true + + /@types/uuid@9.0.8: + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + dev: false + + /@types/winston@2.4.4: + resolution: {integrity: sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==} + deprecated: This is a stub types definition. winston provides its own type definitions, so you do not need this installed. + dependencies: + winston: 3.14.0 + dev: true + + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + dev: true + + /@types/yargs@17.0.33: + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + dependencies: + '@types/yargs-parser': 21.0.3 + dev: true + + /@vue/compiler-core@3.4.36: + resolution: {integrity: sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==} + dependencies: + '@babel/parser': 7.25.3 + '@vue/shared': 3.4.36 + entities: 5.0.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + dev: false + + /@vue/compiler-dom@3.4.36: + resolution: {integrity: sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==} + dependencies: + '@vue/compiler-core': 3.4.36 + '@vue/shared': 3.4.36 + dev: false + + /@vue/compiler-sfc@3.4.36: + resolution: {integrity: sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==} + dependencies: + '@babel/parser': 7.25.3 + '@vue/compiler-core': 3.4.36 + '@vue/compiler-dom': 3.4.36 + '@vue/compiler-ssr': 3.4.36 + '@vue/shared': 3.4.36 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.41 + source-map-js: 1.2.0 + dev: false + + /@vue/compiler-ssr@3.4.36: + resolution: {integrity: sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==} + dependencies: + '@vue/compiler-dom': 3.4.36 + '@vue/shared': 3.4.36 + dev: false + + /@vue/reactivity@3.4.36: + resolution: {integrity: sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==} + dependencies: + '@vue/shared': 3.4.36 + dev: false + + /@vue/runtime-core@3.4.36: + resolution: {integrity: sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==} + dependencies: + '@vue/reactivity': 3.4.36 + '@vue/shared': 3.4.36 + dev: false + + /@vue/runtime-dom@3.4.36: + resolution: {integrity: sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==} + dependencies: + '@vue/reactivity': 3.4.36 + '@vue/runtime-core': 3.4.36 + '@vue/shared': 3.4.36 + csstype: 3.1.3 + dev: false + + /@vue/server-renderer@3.4.36(vue@3.4.36): resolution: {integrity: sha512-2XW90Rq8+Y7S1EIsAuubZVLm0gCU8HYb5mRAruFdwfC3XSOU5/YKePz29csFzsch8hXaY5UHh7ZMddmi1XTJEA==} peerDependencies: vue: 3.4.36 + dependencies: + '@vue/compiler-ssr': 3.4.36 + '@vue/shared': 3.4.36 + vue: 3.4.36(typescript@5.4.5) + dev: false - '@vue/shared@3.4.36': + /@vue/shared@3.4.36: resolution: {integrity: sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA==} + dev: false - '@webassemblyjs/ast@1.12.1': + /@webassemblyjs/ast@1.12.1: resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + dev: true - '@webassemblyjs/floating-point-hex-parser@1.11.6': + /@webassemblyjs/floating-point-hex-parser@1.11.6: resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + dev: true - '@webassemblyjs/helper-api-error@1.11.6': + /@webassemblyjs/helper-api-error@1.11.6: resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + dev: true - '@webassemblyjs/helper-buffer@1.12.1': + /@webassemblyjs/helper-buffer@1.12.1: resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + dev: true - '@webassemblyjs/helper-numbers@1.11.6': + /@webassemblyjs/helper-numbers@1.11.6: resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true - '@webassemblyjs/helper-wasm-bytecode@1.11.6': + /@webassemblyjs/helper-wasm-bytecode@1.11.6: resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + dev: true - '@webassemblyjs/helper-wasm-section@1.12.1': + /@webassemblyjs/helper-wasm-section@1.12.1: resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + dev: true - '@webassemblyjs/ieee754@1.11.6': + /@webassemblyjs/ieee754@1.11.6: resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true - '@webassemblyjs/leb128@1.11.6': + /@webassemblyjs/leb128@1.11.6: resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true - '@webassemblyjs/utf8@1.11.6': + /@webassemblyjs/utf8@1.11.6: resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + dev: true - '@webassemblyjs/wasm-edit@1.12.1': + /@webassemblyjs/wasm-edit@1.12.1: resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + dev: true - '@webassemblyjs/wasm-gen@1.12.1': + /@webassemblyjs/wasm-gen@1.12.1: resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true - '@webassemblyjs/wasm-opt@1.12.1': + /@webassemblyjs/wasm-opt@1.12.1: resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + dev: true - '@webassemblyjs/wasm-parser@1.12.1': + /@webassemblyjs/wasm-parser@1.12.1: resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true - '@webassemblyjs/wast-printer@1.12.1': + /@webassemblyjs/wast-printer@1.12.1: resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + dev: true - '@webpack-cli/configtest@2.1.1': + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.92.0): resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x + dependencies: + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.92.0) + dev: true - '@webpack-cli/info@2.0.2': + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.92.0): resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x webpack-cli: 5.x.x + dependencies: + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.92.0) + dev: true - '@webpack-cli/serve@2.0.5': + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.92.0): resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} engines: {node: '>=14.15.0'} peerDependencies: @@ -676,36 +1898,53 @@ packages: peerDependenciesMeta: webpack-dev-server: optional: true + dependencies: + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack@5.92.0) + dev: true - '@xtuc/ieee754@1.2.0': + /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true - '@xtuc/long@4.2.2': + /@xtuc/long@4.2.2: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true - abort-controller@3.0.0: + /abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: false - acorn-import-attributes@1.9.5: + /acorn-import-attributes@1.9.5(acorn@8.11.3): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: true - acorn-walk@8.3.3: + /acorn-walk@8.3.3: resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.11.3 - acorn@8.11.3: + /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true - agentkeepalive@4.5.0: + /agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false - ai@3.3.3: + /ai@3.3.3(openai@4.51.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.36)(zod@3.23.8): resolution: {integrity: sha512-sIwaIDVIQyIMe7KsdrRIEjtVdi3EbqcNnD9ejzuinIoYhfxMpt9POXWnq2R7iC26wqkqOhPuKWePJ8nqYzUYIA==} engines: {node: '>=18'} peerDependencies: @@ -725,249 +1964,591 @@ packages: optional: true zod: optional: true + dependencies: + '@ai-sdk/provider': 0.0.16 + '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) + '@ai-sdk/react': 0.0.39(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.30(zod@3.23.8) + '@ai-sdk/svelte': 0.0.32(svelte@4.2.18)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) + '@ai-sdk/vue': 0.0.31(vue@3.4.36)(zod@3.23.8) + '@opentelemetry/api': 1.9.0 + eventsource-parser: 1.1.2 + json-schema: 0.4.0 + jsondiffpatch: 0.6.0 + nanoid: 3.3.6 + openai: 4.51.0 + react: 18.3.1 + secure-json-parse: 2.7.0 + svelte: 4.2.18 + zod: 3.23.8 + zod-to-json-schema: 3.22.5(zod@3.23.8) + transitivePeerDependencies: + - solid-js + - vue + dev: false - ajv-keywords@3.5.2: + /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true - ajv@6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true - ansi-regex@5.0.1: + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-sequence-parser@1.1.1: + /ansi-sequence-parser@1.1.1: resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + dev: true - ansi-styles@3.2.1: + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true - ansi-styles@4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true - ansi-styles@5.2.0: + /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - anymatch@3.1.3: + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true - argparse@2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: + /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false - array-union@1.0.2: + /array-union@1.0.2: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} + dependencies: + array-uniq: 1.0.3 + dev: true - array-uniq@1.0.3: + /array-uniq@1.0.3: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} + dev: true - as-table@1.0.55: + /as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + dependencies: + printable-characters: 1.0.42 + dev: true - asn1@0.2.6: + /asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: false - async@3.2.5: + /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - asynckit@0.4.0: + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false - axios@1.7.2: + /axios@1.7.2: resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false - axobject-query@4.1.0: + /axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + dev: false + + /babel-jest@29.7.0(@babel/core@7.25.2): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.25.2 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.25.2) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.24.8 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + dev: true + + /babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.2): + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.25.2): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) + dev: true - balanced-match@1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true - base64-js@1.5.1: + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false - bcrypt-pbkdf@1.0.2: + /bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: false - binary-extensions@2.3.0: + /binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - bl@4.1.0: + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false - blake3-wasm@2.1.5: + /blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + dev: true - brace-expansion@1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true - brace-expansion@2.0.1: + /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true - braces@3.0.3: + /braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + dependencies: + fill-range: 7.1.1 + dev: true - browserslist@4.23.1: + /browserslist@4.23.1: resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + dependencies: + caniuse-lite: 1.0.30001633 + electron-to-chromium: 1.4.802 + node-releases: 2.0.14 + update-browserslist-db: 1.0.16(browserslist@4.23.1) + dev: true - buffer-from@1.1.2: + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true - buffer@5.7.1: + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false - bufferutil@4.0.8: + /bufferutil@4.0.8: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.8.1 - buildcheck@0.0.6: + /buildcheck@0.0.6: resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} engines: {node: '>=10.0.0'} + requiresBuild: true + dev: false + optional: true - c12@1.10.0: - resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + /c12@1.11.1: + resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} + peerDependencies: + magicast: ^0.3.4 + peerDependenciesMeta: + magicast: + optional: true + dependencies: + chokidar: 3.6.0 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.1.1 + rc9: 2.1.2 + dev: true - callsites@3.1.0: + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: true - camelcase@6.3.0: + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} - - caniuse-lite@1.0.30001633: + /caniuse-lite@1.0.30001633: resolution: {integrity: sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==} + dev: true - capnp-ts@0.7.0: + /capnp-ts@0.7.0: resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} + dependencies: + debug: 4.3.5 + tslib: 2.6.3 + transitivePeerDependencies: + - supports-color + dev: true - chalk@2.4.2: + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true - chalk@4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true - chalk@5.3.0: + /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false - chokidar@3.6.0: + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true - chownr@1.1.4: + /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false - chownr@2.0.0: + /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + dev: true - chrome-trace-event@1.0.4: + /chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} + dev: true - citty@0.1.6: + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: true + + /citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + dependencies: + consola: 3.2.3 + dev: true - clean-webpack-plugin@4.0.0: + /cjs-module-lexer@1.3.1: + resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + dev: true + + /clean-webpack-plugin@4.0.0(webpack@5.92.0): resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} engines: {node: '>=10.0.0'} peerDependencies: webpack: '>=4.0.0 <6.0.0' + dependencies: + del: 4.1.1 + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + dev: true - cli-progress@3.12.0: + /cli-progress@3.12.0: resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} engines: {node: '>=4'} + dependencies: + string-width: 4.2.3 + dev: false - client-only@0.0.1: + /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true - clone-deep@4.0.1: + /clone-deep@4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true - code-red@1.0.4: + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /code-red@1.0.4: resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.5 + acorn: 8.11.3 + estree-walker: 3.0.3 + periscopic: 3.1.0 + dev: false + + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true - color-convert@1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 - color-convert@2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true - color-name@1.1.3: + /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: + /color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 - color@3.2.1: + /color@3.2.1: resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 - colorette@2.0.20: + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true - colors@1.4.0: + /colors@1.4.0: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} - colorspace@1.1.4: + /colorspace@1.1.4: resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==} + dependencies: + color: 3.2.1 + text-hex: 1.0.0 - combined-stream@1.0.8: + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false - commander@10.0.1: + /commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} - commander@12.1.0: + /commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} + dev: true - commander@2.20.3: + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true - concat-map@0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true - confbox@0.1.7: + /confbox@0.1.7: resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + dev: true - consola@3.2.3: + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true - cookie@0.5.0: + /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} + dev: true - cosmiconfig@8.3.6: + /cosmiconfig@8.3.6(typescript@5.4.5): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -975,29 +2556,76 @@ packages: peerDependenciesMeta: typescript: optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.4.5 + dev: true - cpu-features@0.0.10: + /cpu-features@0.0.10: resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + buildcheck: 0.0.6 + nan: 2.20.0 + dev: false + optional: true + + /create-jest@29.7.0(@types/node@20.14.2)(ts-node@10.9.2): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-spawn@7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true - css-tree@2.3.1: + /css-tree@2.3.1: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + dev: false - csstype@3.1.3: + /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: false - data-uri-to-buffer@2.0.2: + /data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + dev: true - date-fns@3.6.0: + /date-fns@3.6.0: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + dev: true - debug@4.3.5: + /debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} engines: {node: '>=6.0'} peerDependencies: @@ -1005,180 +2633,404 @@ packages: peerDependenciesMeta: supports-color: optional: true + dependencies: + ms: 2.1.2 - decamelize@1.2.0: + /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} + dev: false + + /dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true - deepmerge@4.3.1: + /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + dev: true + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true - defu@6.1.4: + /defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + dev: true - del@4.1.1: + /del@4.1.1: resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} engines: {node: '>=6'} + dependencies: + '@types/glob': 7.2.0 + globby: 6.1.0 + is-path-cwd: 2.2.0 + is-path-in-cwd: 2.1.0 + p-map: 2.1.0 + pify: 4.0.1 + rimraf: 2.7.1 + dev: true - delayed-stream@1.0.0: + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + dev: false - dequal@2.0.3: + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + dev: false - destr@2.0.3: + /destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + dev: true + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true - diff-match-patch@1.0.5: + /diff-match-patch@1.0.5: resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + dev: false + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - docker-modem@5.0.3: + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + /docker-modem@5.0.3: resolution: {integrity: sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg==} engines: {node: '>= 8.0'} + dependencies: + debug: 4.3.5 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.15.0 + transitivePeerDependencies: + - supports-color + dev: false - dockerode@4.0.2: + /dockerode@4.0.2: resolution: {integrity: sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w==} engines: {node: '>= 8.0'} + dependencies: + '@balena/dockerignore': 1.0.2 + docker-modem: 5.0.3 + tar-fs: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false - dotenv@16.4.5: + /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} + dev: true - e2b@0.16.1: + /e2b@0.16.1: resolution: {integrity: sha512-2L1R/REEB+EezD4Q4MmcXXNATjvCYov2lv/69+PY6V95+wl1PZblIMTYAe7USxX6P6sqANxNs+kXqZr6RvXkSw==} engines: {node: '>=18'} + dependencies: + isomorphic-ws: 5.0.0(ws@8.18.0) + normalize-path: 3.0.0 + openapi-typescript-fetch: 1.1.3 + path-browserify: 1.0.1 + platform: 1.3.6 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 6.0.4 + dev: false + + /ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.9.2 + dev: true - electron-to-chromium@1.4.802: + /electron-to-chromium@1.4.802: resolution: {integrity: sha512-TnTMUATbgNdPXVSHsxvNVSG0uEd6cSZsANjm8c9HbvflZVVn1yTRcmVXYT1Ma95/ssB/Dcd30AHweH2TE+dNpA==} + dev: true + + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true - emoji-regex@8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - enabled@2.0.0: + /enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - end-of-stream@1.4.4: + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: false - enhanced-resolve@5.17.0: + /enhanced-resolve@5.17.0: resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true - entities@5.0.0: + /entities@5.0.0: resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} engines: {node: '>=0.12'} + dev: false - enumify@2.0.0: + /enumify@2.0.0: resolution: {integrity: sha512-hpyRdixXrBdr1sZOWH/WKBleMtHWVbM+DyVa0OqKQnKEw6x0TuUNYjcWKlp5/+tdiOsbgYiaZ/pYUeMake4k8A==} + dev: false - envinfo@7.13.0: + /envinfo@7.13.0: resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} engines: {node: '>=4'} hasBin: true + dev: true - error-ex@1.3.2: + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true - es-module-lexer@1.5.3: + /es-module-lexer@1.5.3: resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + dev: true - esbuild@0.17.19: + /esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true - escalade@3.1.2: + /escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + dev: true - escape-string-regexp@1.0.5: + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true - escape-string-regexp@4.0.0: + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + dev: true - eslint-scope@5.1.1: + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true - esrecurse@4.3.0: + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true - estraverse@4.3.0: + /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} + dev: true - estraverse@5.3.0: + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + dev: true - estree-walker@0.6.1: + /estree-walker@0.6.1: resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + dev: true - estree-walker@2.0.2: + /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: false - estree-walker@3.0.3: + /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: false - event-target-shim@5.0.1: + /event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + dev: false - eventemitter3@4.0.7: + /eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: false - events@3.3.0: + /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + dev: true - eventsource-parser@1.1.2: + /eventsource-parser@1.1.2: resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} engines: {node: '>=14.18'} + dev: false + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true - execa@8.0.1: + /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true - exit-hook@2.2.1: + /exit-hook@2.2.1: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} + dev: true + + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true - fast-deep-equal@3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true - fast-json-stable-stringify@2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true - fastest-levenshtein@1.0.16: + /fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} + dev: true + + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true - fecha@4.2.3: + /fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - fill-range@7.1.1: + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true - find-up@4.1.0: + /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - - flat@5.0.2: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true + dev: true - fn.name@1.1.0: + /fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.6: + /follow-redirects@1.15.6: resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} peerDependencies: @@ -1186,281 +3038,1018 @@ packages: peerDependenciesMeta: debug: optional: true + dev: false - fork-ts-checker-webpack-plugin@9.0.2: + /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.0): resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: typescript: '>3.6.0' webpack: ^5.11.0 + dependencies: + '@babel/code-frame': 7.24.7 + chalk: 4.1.2 + chokidar: 3.6.0 + cosmiconfig: 8.3.6(typescript@5.4.5) + deepmerge: 4.3.1 + fs-extra: 10.1.0 + memfs: 3.5.3 + minimatch: 3.1.2 + node-abort-controller: 3.1.1 + schema-utils: 3.3.0 + semver: 7.6.2 + tapable: 2.2.1 + typescript: 5.4.5 + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + dev: true - form-data-encoder@1.7.2: + /form-data-encoder@1.7.2: resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + dev: false - form-data@4.0.0: + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false - formdata-node@4.4.1: + /formdata-node@4.4.1: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + dev: false - fs-constants@1.0.0: + /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false - fs-extra@10.1.0: + /fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true - fs-minipass@2.1.0: + /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true - fs-monkey@1.0.6: + /fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} + dev: true - fs.realpath@1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true - fsevents@2.3.3: + /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + requiresBuild: true + dev: true + optional: true - function-bind@1.1.2: + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true - get-source@2.0.12: + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + dev: true - get-stream@8.0.1: + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + dev: true - giget@1.2.3: + /giget@1.2.3: resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} hasBin: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.8 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 + dev: true - glob-parent@5.1.2: + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true - glob-to-regexp@0.4.1: + /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true - glob@7.2.3: + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true - globby@6.1.0: + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globby@6.1.0: resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} engines: {node: '>=0.10.0'} + dependencies: + array-union: 1.0.2 + glob: 7.2.3 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true - graceful-fs@4.2.11: + /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true - handlebars@4.7.8: + /handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.18.0 + dev: true - has-flag@3.0.0: + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: true - has-flag@4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + dev: true - hasown@2.0.2: + /hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true - hono@4.4.12: + /hono@4.4.12: resolution: {integrity: sha512-Lx4Vwbws0IqFfXIVYychxUW0A4EE+7dn/jsjVeM34OXSA2Xs45MkDDP14Mzznp7LlDemUNHQG2uv2N5jQld0hA==} engines: {node: '>=16.0.0'} + dev: false + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true - human-signals@5.0.0: + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + dev: true - humanize-ms@1.2.1: + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: false - ieee754@1.2.1: + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false - import-fresh@3.3.0: + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true - import-local@3.1.0: + /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true - inflight@1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true - inherits@2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - interpret@3.1.1: + /interpret@3.1.1: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} engines: {node: '>=10.13.0'} + dev: true - is-arrayish@0.2.1: + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true - is-arrayish@0.3.2: + /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-binary-path@2.1.0: + /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + dependencies: + binary-extensions: 2.3.0 + dev: true - is-core-module@2.13.1: + /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.2 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true - is-extglob@2.1.1: + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + dev: true - is-fullwidth-code-point@3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-glob@4.0.3: + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true - is-number@7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + dev: true - is-path-cwd@2.2.0: + /is-path-cwd@2.2.0: resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} engines: {node: '>=6'} + dev: true - is-path-in-cwd@2.1.0: + /is-path-in-cwd@2.1.0: resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} engines: {node: '>=6'} + dependencies: + is-path-inside: 2.1.0 + dev: true - is-path-inside@2.1.0: + /is-path-inside@2.1.0: resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} engines: {node: '>=6'} + dependencies: + path-is-inside: 1.0.2 + dev: true - is-plain-object@2.0.4: + /is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true - is-reference@3.0.2: + /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + dev: false - is-stream@2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-stream@3.0.0: + /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true - isexe@2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true - isobject@3.0.1: + /isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} + dev: true - isomorphic-ws@5.0.0: + /isomorphic-ws@5.0.0(ws@8.18.0): resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: ws: '*' + dependencies: + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + dev: false - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.25.2 + '@babel/parser': 7.25.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.25.2 + '@babel/parser': 7.25.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.5 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + + /jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} hasBin: true + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true - js-tiktoken@1.0.12: - resolution: {integrity: sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ==} + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + dev: true - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.3 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.1.0 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + /jest-cli@29.7.0(@types/node@20.14.2)(ts-node@10.9.2): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + /jest-config@29.7.0(@types/node@20.14.2)(ts-node@10.9.2): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.25.2 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + babel-jest: 29.7.0(@babel/core@7.25.2) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.7 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.2(@swc/core@1.7.10)(@types/node@20.14.2)(typescript@5.4.5) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true - jsondiffpatch@0.6.0: - resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.14.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.7 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + dev: true - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} + /jest-html-reporters@3.1.7: + resolution: {integrity: sha512-GTmjqK6muQ0S0Mnksf9QkL9X9z2FGIpNSxC52E0PHDzjPQ1XDu2+XTI3B3FS43ZiUzD1f354/5FfwbNIBzT7ew==} + dependencies: + fs-extra: 10.1.0 + open: 8.4.2 + dev: true - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true - kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true - langchain@0.2.13: - resolution: {integrity: sha512-PQoDLEoFPyeqUE8YS+Eoxo8F+6ltNeJv/ijiNGp/eomHnVxHkqTXqc9/JK6bii6O/WryOClT7kVNPpVrMNNdzg==} - engines: {node: '>=18'} + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.24.7 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.7 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + jest-util: 29.7.0 + dev: true + + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} peerDependencies: - '@aws-sdk/client-s3': '*' - '@aws-sdk/client-sagemaker-runtime': '*' - '@aws-sdk/client-sfn': '*' - '@aws-sdk/credential-provider-node': '*' - '@azure/storage-blob': '*' - '@browserbasehq/sdk': '*' - '@gomomento/sdk': '*' - '@gomomento/sdk-core': '*' - '@gomomento/sdk-web': ^1.51.1 - '@langchain/anthropic': '*' - '@langchain/aws': '*' - '@langchain/cohere': '*' - '@langchain/community': '*' - '@langchain/google-genai': '*' - '@langchain/google-vertexai': '*' - '@langchain/groq': '*' - '@langchain/mistralai': '*' - '@langchain/ollama': '*' - '@mendable/firecrawl-js': '*' - '@notionhq/client': '*' - '@pinecone-database/pinecone': '*' - '@supabase/supabase-js': '*' - '@vercel/kv': '*' - '@xata.io/client': '*' - apify-client: '*' - assemblyai: '*' - axios: '*' - cheerio: '*' - chromadb: '*' - convex: '*' + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.7.0 + dev: true + + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.8 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + chalk: 4.1.2 + cjs-module-lexer: 1.3.1 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.25.2 + '@babel/generator': 7.25.0 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) + '@babel/types': 7.25.2 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + dev: true + + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.14.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.14.2 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 20.14.2 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest@29.7.0(@types/node@20.14.2)(ts-node@10.9.2): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2) + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + dev: true + + /js-tiktoken@1.0.12: + resolution: {integrity: sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ==} + dependencies: + base64-js: 1.5.1 + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: false + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + dev: true + + /jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + '@types/diff-match-patch': 1.0.36 + chalk: 5.3.0 + diff-match-patch: 1.0.5 + dev: false + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: false + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + /langchain@0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0): + resolution: {integrity: sha512-PQoDLEoFPyeqUE8YS+Eoxo8F+6ltNeJv/ijiNGp/eomHnVxHkqTXqc9/JK6bii6O/WryOClT7kVNPpVrMNNdzg==} + engines: {node: '>=18'} + peerDependencies: + '@aws-sdk/client-s3': '*' + '@aws-sdk/client-sagemaker-runtime': '*' + '@aws-sdk/client-sfn': '*' + '@aws-sdk/credential-provider-node': '*' + '@azure/storage-blob': '*' + '@browserbasehq/sdk': '*' + '@gomomento/sdk': '*' + '@gomomento/sdk-core': '*' + '@gomomento/sdk-web': ^1.51.1 + '@langchain/anthropic': '*' + '@langchain/aws': '*' + '@langchain/cohere': '*' + '@langchain/community': '*' + '@langchain/google-genai': '*' + '@langchain/google-vertexai': '*' + '@langchain/groq': '*' + '@langchain/mistralai': '*' + '@langchain/ollama': '*' + '@mendable/firecrawl-js': '*' + '@notionhq/client': '*' + '@pinecone-database/pinecone': '*' + '@supabase/supabase-js': '*' + '@vercel/kv': '*' + '@xata.io/client': '*' + apify-client: '*' + assemblyai: '*' + axios: '*' + cheerio: '*' + chromadb: '*' + convex: '*' couchbase: '*' d3-dsv: '*' epub2: '*' @@ -1609,8 +4198,54 @@ packages: optional: true youtubei.js: optional: true + dependencies: + '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.51.0) + '@langchain/openai': 0.2.6(langchain@0.2.13) + '@langchain/textsplitters': 0.0.3(langchain@0.2.13)(openai@4.51.0) + axios: 1.7.2 + binary-extensions: 2.3.0 + js-tiktoken: 1.0.12 + js-yaml: 4.1.0 + jsonpointer: 5.0.1 + langsmith: 0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.51.0) + openapi-types: 12.1.3 + p-retry: 4.6.2 + uuid: 10.0.0 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + yaml: 2.4.5 + zod: 3.23.8 + zod-to-json-schema: 3.23.2(zod@3.23.8) + transitivePeerDependencies: + - encoding + - openai + dev: false + + /langsmith@0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.51.0): + resolution: {integrity: sha512-8R7s/225Pxmv0ipMfd6sqmWVsfHLQivYlQZ0vx5K+ReoknummTenQlVK8gapk3kqRMnzkrouuRHMhWjMR6RgUA==} + peerDependencies: + '@langchain/core': '*' + langchain: '*' + openai: '*' + peerDependenciesMeta: + '@langchain/core': + optional: true + langchain: + optional: true + openai: + optional: true + dependencies: + '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.51.0) + '@types/uuid': 9.0.8 + commander: 10.0.1 + langchain: 0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0) + openai: 4.51.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + semver: 7.6.3 + uuid: 9.0.1 + dev: false - langsmith@0.1.41: + /langsmith@0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.55.1): resolution: {integrity: sha512-8R7s/225Pxmv0ipMfd6sqmWVsfHLQivYlQZ0vx5K+ReoknummTenQlVK8gapk3kqRMnzkrouuRHMhWjMR6RgUA==} peerDependencies: '@langchain/core': '*' @@ -1623,2254 +4258,162 @@ packages: optional: true openai: optional: true + dependencies: + '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.55.1) + '@types/uuid': 9.0.8 + commander: 10.0.1 + langchain: 0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0) + openai: 4.55.1(zod@3.23.8) + p-queue: 6.6.2 + p-retry: 4.6.2 + semver: 7.6.3 + uuid: 9.0.1 + dev: false + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true - lines-and-columns@1.2.4: + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true - loader-runner@4.3.0: + /loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} + dev: true - locate-character@3.0.0: + /locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + dev: false - locate-path@5.0.0: + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true - logform@2.6.1: + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /logform@2.6.1: resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} engines: {node: '>= 12.0.0'} + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.4.3 + triple-beam: 1.4.1 - loose-envify@1.4.0: + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false - lunr@2.3.9: + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + dev: true - magic-string@0.25.9: + /magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true - magic-string@0.30.11: + /magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + dev: false + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.3 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true - marked@4.3.0: + /marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} hasBin: true + dev: true - mdn-data@2.0.30: + /mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: false - memfs@3.5.3: + /memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.6 + dev: true - merge-stream@2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true - micromatch@4.0.7: + /micromatch@4.0.7: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + dev: true - mime-db@1.52.0: + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-types@2.1.35: + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 - mime@3.0.0: + /mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true + dev: true - mimic-fn@4.0.0: + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + dev: true - miniflare@3.20240701.0: + /miniflare@3.20240701.0: resolution: {integrity: sha512-m9+I+7JNyqDGftCMKp9cK9pCZkK72hAL2mM9IWwhct+ZmucLBA8Uu6+rHQqA5iod86cpwOkrB2PrPA3wx9YNgw==} - engines: {node: '>=16.13'} - hasBin: true - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} - - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - mustache@4.2.0: - resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} - hasBin: true - - nan@2.20.0: - resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} - - nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - - node-fetch-native@1.6.4: - resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} - hasBin: true - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nypm@0.3.8: - resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - openai@4.51.0: - resolution: {integrity: sha512-UKuWc3/qQyklqhHM8CbdXCv0Z0obap6T0ECdcO5oATQxAbKE5Ky3YCXFQY207z+eGG6ez4U9wvAcuMygxhmStg==} - hasBin: true - - openai@4.55.1: - resolution: {integrity: sha512-FziYJcWl+SAGbt5AcRIzVzNcnKohpEMQdtzVOmHFbBp/if7x2+ACqgxF2XUbyi2PcKONPcVpmtG5h9qoDAEXwQ==} - hasBin: true - peerDependencies: - zod: ^3.23.8 - peerDependenciesMeta: - zod: - optional: true - - openapi-types@12.1.3: - resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - - openapi-typescript-fetch@1.1.3: - resolution: {integrity: sha512-smLZPck4OkKMNExcw8jMgrMOGgVGx2N/s6DbKL2ftNl77g5HfoGpZGFy79RBzU/EkaO0OZpwBnslfdBfh7ZcWg==} - engines: {node: '>= 12.0.0', npm: '>= 7.0.0'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - - platform@1.3.6: - resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} - - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} - engines: {node: ^10 || ^12 || >=14} - - printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - pusher-js@8.4.0-rc2: - resolution: {integrity: sha512-d87GjOEEl9QgO5BWmViSqW0LOzPvybvX6WA9zLUstNdB57jVJuR27zHkRnrav2a3+zAMlHbP2Og8wug+rG8T+g==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rollup-plugin-inject@3.0.2: - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. - - rollup-plugin-node-polyfills@0.2.1: - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - - rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - - selfsigned@2.4.1: - resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} - engines: {node: '>=10'} - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shiki@0.14.7: - resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - - split-ca@1.0.1: - resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} - - ssh2@1.15.0: - resolution: {integrity: sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==} - engines: {node: '>=10.16.0'} - - sswr@2.1.0: - resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==} - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - - stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - - stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} - - stoppable@1.1.0: - resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} - engines: {node: '>=4', npm: '>=6'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svelte@4.2.18: - resolution: {integrity: sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==} - engines: {node: '>=16'} - - swr@2.2.5: - resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 - - swrev@4.0.0: - resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} - - swrv@1.0.4: - resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} - peerDependencies: - vue: '>=3.2.26 < 4' - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - tar-fs@2.0.1: - resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} - - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - - terser@5.31.1: - resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} - engines: {node: '>=10'} - hasBin: true - - text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} - - ts-loader@9.5.1: - resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} - engines: {node: '>=12.0.0'} - peerDependencies: - typescript: '*' - webpack: ^5.0.0 - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - - tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - - typedoc@0.25.13: - resolution: {integrity: sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==} - engines: {node: '>= 16'} - hasBin: true - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x - - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - - uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} - engines: {node: '>=0.8.0'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - undici@5.28.4: - resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} - engines: {node: '>=14.0'} - - unenv-nightly@1.10.0-1717606461.a117952: - resolution: {integrity: sha512-u3TfBX02WzbHTpaEfWEKwDijDSFAHcgXkayUZ+MVDrjhLFvgAJzFGTSTmwlEhwWi2exyRQey23ah9wELMM6etg==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - use-sync-external-store@1.2.2: - resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - utf-8-validate@6.0.4: - resolution: {integrity: sha512-xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==} - engines: {node: '>=6.14.2'} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - - vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - - vue@3.4.36: - resolution: {integrity: sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} - engines: {node: '>=10.13.0'} - - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - - web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webpack-cli@5.1.4: - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} - engines: {node: '>=14.15.0'} - hasBin: true - peerDependencies: - '@webpack-cli/generators': '*' - webpack: 5.x.x - webpack-bundle-analyzer: '*' - webpack-dev-server: '*' - peerDependenciesMeta: - '@webpack-cli/generators': - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true - - webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} - engines: {node: '>=10.0.0'} - - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - - webpack@5.92.0: - resolution: {integrity: sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - - winston-transport@4.7.1: - resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} - engines: {node: '>= 12.0.0'} - - winston@3.14.0: - resolution: {integrity: sha512-XEJvmKJglhTW2TgfpKdkpj0119Yn5AClR7LJ0rBNUQFx20mNQj3s1ukTA1i77q+YBaHYbcKtXpxgPqfdUPCIYA==} - engines: {node: '>= 12.0.0'} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - workerd@1.20240701.0: - resolution: {integrity: sha512-qSgNVqauqzNCij9MaJLF2c2ko3AnFioVSIxMSryGbRK+LvtGr9BKBt6JOxCb24DoJASoJDx3pe3DJHBVydUiBg==} - engines: {node: '>=16'} - hasBin: true - - wrangler@3.63.1: - resolution: {integrity: sha512-fxMPNEyDc9pZNtQOuYqRikzv6lL5eP4S1zv7L/kw24uu1cCEmJ39j8bfJGzrAEqKDNsiFXVjEka0RjlpgEVWPg==} - engines: {node: '>=16.17.0'} - hasBin: true - peerDependencies: - '@cloudflare/workers-types': ^4.20240620.0 - peerDependenciesMeta: - '@cloudflare/workers-types': - optional: true - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xxhash-wasm@1.0.2: - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} - engines: {node: '>= 14'} - hasBin: true - - youch@3.3.3: - resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} - - zod-to-json-schema@3.22.5: - resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} - peerDependencies: - zod: ^3.22.4 - - zod-to-json-schema@3.23.2: - resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} - peerDependencies: - zod: ^3.23.3 - - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - -snapshots: - - '@ai-sdk/openai@0.0.36(zod@3.23.8)': - dependencies: - '@ai-sdk/provider': 0.0.12 - '@ai-sdk/provider-utils': 1.0.2(zod@3.23.8) - zod: 3.23.8 - - '@ai-sdk/provider-utils@1.0.2(zod@3.23.8)': - dependencies: - '@ai-sdk/provider': 0.0.12 - eventsource-parser: 1.1.2 - nanoid: 3.3.6 - secure-json-parse: 2.7.0 - zod: 3.23.8 - - '@ai-sdk/provider-utils@1.0.8(zod@3.23.8)': - dependencies: - '@ai-sdk/provider': 0.0.16 - eventsource-parser: 1.1.2 - nanoid: 3.3.6 - secure-json-parse: 2.7.0 - zod: 3.23.8 - - '@ai-sdk/provider@0.0.12': - dependencies: - json-schema: 0.4.0 - - '@ai-sdk/provider@0.0.16': - dependencies: - json-schema: 0.4.0 - - '@ai-sdk/react@0.0.39(react@18.3.1)(zod@3.23.8)': - dependencies: - '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) - react: 18.3.1 - swr: 2.2.5(react@18.3.1) - zod: 3.23.8 - - '@ai-sdk/solid@0.0.30(zod@3.23.8)': - dependencies: - '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) - transitivePeerDependencies: - - zod - - '@ai-sdk/svelte@0.0.32(svelte@4.2.18)(zod@3.23.8)': - dependencies: - '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) - sswr: 2.1.0(svelte@4.2.18) - svelte: 4.2.18 - transitivePeerDependencies: - - zod - - '@ai-sdk/ui-utils@0.0.27(zod@3.23.8)': - dependencies: - '@ai-sdk/provider': 0.0.16 - '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) - secure-json-parse: 2.7.0 - zod: 3.23.8 - - '@ai-sdk/vue@0.0.31(vue@3.4.36)(zod@3.23.8)': - dependencies: - '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) - swrv: 1.0.4(vue@3.4.36) - vue: 3.4.36(typescript@5.4.5) - transitivePeerDependencies: - - zod - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@apidevtools/json-schema-ref-parser@11.6.2': - dependencies: - '@jsdevtools/ono': 7.1.3 - '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@babel/parser@7.25.3': - dependencies: - '@babel/types': 7.25.2 - - '@babel/types@7.25.2': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - - '@balena/dockerignore@1.0.2': {} - - '@cloudflare/kv-asset-handler@0.3.4': - dependencies: - mime: 3.0.0 - - '@cloudflare/workerd-darwin-64@1.20240701.0': - optional: true - - '@cloudflare/workerd-darwin-arm64@1.20240701.0': - optional: true - - '@cloudflare/workerd-linux-64@1.20240701.0': - optional: true - - '@cloudflare/workerd-linux-arm64@1.20240701.0': - optional: true - - '@cloudflare/workerd-windows-64@1.20240701.0': - optional: true - - '@cloudflare/workers-types@4.20240806.0': {} - - '@colors/colors@1.6.0': {} - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@dabh/diagnostics@2.0.3': - dependencies: - colorspace: 1.1.4 - enabled: 2.0.0 - kuler: 2.0.0 - - '@discoveryjs/json-ext@0.5.7': {} - - '@e2b/code-interpreter@0.0.8': - dependencies: - e2b: 0.16.1 - isomorphic-ws: 5.0.0(ws@8.18.0) - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@e2b/sdk@0.16.1': - dependencies: - isomorphic-ws: 5.0.0(ws@8.18.0) - normalize-path: 3.0.0 - openapi-typescript-fetch: 1.1.3 - path-browserify: 1.0.1 - platform: 1.3.6 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.4 - - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': - dependencies: - esbuild: 0.17.19 - - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': - dependencies: - esbuild: 0.17.19 - escape-string-regexp: 4.0.0 - rollup-plugin-node-polyfills: 0.2.1 - - '@esbuild/android-arm64@0.17.19': - optional: true - - '@esbuild/android-arm@0.17.19': - optional: true - - '@esbuild/android-x64@0.17.19': - optional: true - - '@esbuild/darwin-arm64@0.17.19': - optional: true - - '@esbuild/darwin-x64@0.17.19': - optional: true - - '@esbuild/freebsd-arm64@0.17.19': - optional: true - - '@esbuild/freebsd-x64@0.17.19': - optional: true - - '@esbuild/linux-arm64@0.17.19': - optional: true - - '@esbuild/linux-arm@0.17.19': - optional: true - - '@esbuild/linux-ia32@0.17.19': - optional: true - - '@esbuild/linux-loong64@0.17.19': - optional: true - - '@esbuild/linux-mips64el@0.17.19': - optional: true - - '@esbuild/linux-ppc64@0.17.19': - optional: true - - '@esbuild/linux-riscv64@0.17.19': - optional: true - - '@esbuild/linux-s390x@0.17.19': - optional: true - - '@esbuild/linux-x64@0.17.19': - optional: true - - '@esbuild/netbsd-x64@0.17.19': - optional: true - - '@esbuild/openbsd-x64@0.17.19': - optional: true - - '@esbuild/sunos-x64@0.17.19': - optional: true - - '@esbuild/win32-arm64@0.17.19': - optional: true - - '@esbuild/win32-ia32@0.17.19': - optional: true - - '@esbuild/win32-x64@0.17.19': - optional: true - - '@faker-js/faker@8.4.1': {} - - '@fastify/busboy@2.1.1': {} - - '@hey-api/openapi-ts@0.46.3(typescript@5.4.5)': - dependencies: - '@apidevtools/json-schema-ref-parser': 11.6.2 - c12: 1.10.0 - camelcase: 8.0.0 - commander: 12.1.0 - handlebars: 4.7.8 - typescript: 5.4.5 - - '@hono/node-server@1.12.0': {} - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@jsdevtools/ono@7.1.3': {} - - '@langchain/core@0.2.21(langchain@0.2.13)(openai@4.51.0)': - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.12 - langsmith: 0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.51.0) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.2(zod@3.23.8) - transitivePeerDependencies: - - langchain - - openai - - '@langchain/core@0.2.21(langchain@0.2.13)(openai@4.55.1)': - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.12 - langsmith: 0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.55.1) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.2(zod@3.23.8) - transitivePeerDependencies: - - langchain - - openai - - '@langchain/openai@0.2.6(langchain@0.2.13)': - dependencies: - '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.55.1) - js-tiktoken: 1.0.12 - openai: 4.55.1(zod@3.23.8) - zod: 3.23.8 - zod-to-json-schema: 3.23.2(zod@3.23.8) - transitivePeerDependencies: - - encoding - - langchain - - '@langchain/textsplitters@0.0.3(langchain@0.2.13)(openai@4.51.0)': - dependencies: - '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.51.0) - js-tiktoken: 1.0.12 - transitivePeerDependencies: - - langchain - - openai - - '@opentelemetry/api@1.9.0': {} - - '@types/cli-progress@3.11.6': - dependencies: - '@types/node': 20.14.2 - - '@types/colors@1.2.1': - dependencies: - colors: 1.4.0 - - '@types/diff-match-patch@1.0.36': {} - - '@types/docker-modem@3.0.6': - dependencies: - '@types/node': 20.14.2 - '@types/ssh2': 1.15.0 - - '@types/dockerode@3.3.31': - dependencies: - '@types/docker-modem': 3.0.6 - '@types/node': 20.14.2 - '@types/ssh2': 1.15.0 - - '@types/eslint-scope@3.7.7': - dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.5 - - '@types/eslint@8.56.10': - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - - '@types/estree@1.0.5': {} - - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.14.2 - - '@types/json-schema@7.0.15': {} - - '@types/minimatch@5.1.2': {} - - '@types/node-fetch@2.6.11': - dependencies: - '@types/node': 20.14.2 - form-data: 4.0.0 - - '@types/node-forge@1.3.11': - dependencies: - '@types/node': 20.14.2 - - '@types/node@18.19.34': - dependencies: - undici-types: 5.26.5 - - '@types/node@20.14.2': - dependencies: - undici-types: 5.26.5 - - '@types/retry@0.12.0': {} - - '@types/ssh2@1.15.0': - dependencies: - '@types/node': 18.19.34 - - '@types/triple-beam@1.3.5': {} - - '@types/uuid@10.0.0': {} - - '@types/uuid@9.0.8': {} - - '@types/winston@2.4.4': - dependencies: - winston: 3.14.0 - - '@vue/compiler-core@3.4.36': - dependencies: - '@babel/parser': 7.25.3 - '@vue/shared': 3.4.36 - entities: 5.0.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - - '@vue/compiler-dom@3.4.36': - dependencies: - '@vue/compiler-core': 3.4.36 - '@vue/shared': 3.4.36 - - '@vue/compiler-sfc@3.4.36': - dependencies: - '@babel/parser': 7.25.3 - '@vue/compiler-core': 3.4.36 - '@vue/compiler-dom': 3.4.36 - '@vue/compiler-ssr': 3.4.36 - '@vue/shared': 3.4.36 - estree-walker: 2.0.2 - magic-string: 0.30.11 - postcss: 8.4.41 - source-map-js: 1.2.0 - - '@vue/compiler-ssr@3.4.36': - dependencies: - '@vue/compiler-dom': 3.4.36 - '@vue/shared': 3.4.36 - - '@vue/reactivity@3.4.36': - dependencies: - '@vue/shared': 3.4.36 - - '@vue/runtime-core@3.4.36': - dependencies: - '@vue/reactivity': 3.4.36 - '@vue/shared': 3.4.36 - - '@vue/runtime-dom@3.4.36': - dependencies: - '@vue/reactivity': 3.4.36 - '@vue/runtime-core': 3.4.36 - '@vue/shared': 3.4.36 - csstype: 3.1.3 - - '@vue/server-renderer@3.4.36(vue@3.4.36)': - dependencies: - '@vue/compiler-ssr': 3.4.36 - '@vue/shared': 3.4.36 - vue: 3.4.36(typescript@5.4.5) - - '@vue/shared@3.4.36': {} - - '@webassemblyjs/ast@1.12.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} - - '@webassemblyjs/helper-api-error@1.11.6': {} - - '@webassemblyjs/helper-buffer@1.12.1': {} - - '@webassemblyjs/helper-numbers@1.11.6': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - - '@webassemblyjs/helper-wasm-section@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 - - '@webassemblyjs/ieee754@1.11.6': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.11.6': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.11.6': {} - - '@webassemblyjs/wasm-edit@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 - - '@webassemblyjs/wasm-gen@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wasm-opt@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - - '@webassemblyjs/wasm-parser@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 - - '@webassemblyjs/wast-printer@1.12.1': - dependencies: - '@webassemblyjs/ast': 1.12.1 - '@xtuc/long': 4.2.2 - - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.92.0)': - dependencies: - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.92.0) - - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.92.0)': - dependencies: - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.92.0) - - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.92.0)': - dependencies: - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack@5.92.0) - - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - - acorn-import-attributes@1.9.5(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - - acorn-walk@8.3.3: - dependencies: - acorn: 8.11.3 - - acorn@8.11.3: {} - - agentkeepalive@4.5.0: - dependencies: - humanize-ms: 1.2.1 - - ai@3.3.3(openai@4.51.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.36)(zod@3.23.8): - dependencies: - '@ai-sdk/provider': 0.0.16 - '@ai-sdk/provider-utils': 1.0.8(zod@3.23.8) - '@ai-sdk/react': 0.0.39(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.30(zod@3.23.8) - '@ai-sdk/svelte': 0.0.32(svelte@4.2.18)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.27(zod@3.23.8) - '@ai-sdk/vue': 0.0.31(vue@3.4.36)(zod@3.23.8) - '@opentelemetry/api': 1.9.0 - eventsource-parser: 1.1.2 - json-schema: 0.4.0 - jsondiffpatch: 0.6.0 - nanoid: 3.3.6 - openai: 4.51.0 - react: 18.3.1 - secure-json-parse: 2.7.0 - svelte: 4.2.18 - zod: 3.23.8 - zod-to-json-schema: 3.22.5(zod@3.23.8) - transitivePeerDependencies: - - solid-js - - vue - - ajv-keywords@3.5.2(ajv@6.12.6): - dependencies: - ajv: 6.12.6 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ansi-regex@5.0.1: {} - - ansi-sequence-parser@1.1.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@5.2.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - argparse@2.0.1: {} - - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 - - array-union@1.0.2: - dependencies: - array-uniq: 1.0.3 - - array-uniq@1.0.3: {} - - as-table@1.0.55: - dependencies: - printable-characters: 1.0.42 - - asn1@0.2.6: - dependencies: - safer-buffer: 2.1.2 - - async@3.2.5: {} - - asynckit@0.4.0: {} - - axios@1.7.2: - dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - axobject-query@4.1.0: {} - - balanced-match@1.0.2: {} - - base64-js@1.5.1: {} - - bcrypt-pbkdf@1.0.2: - dependencies: - tweetnacl: 0.14.5 - - binary-extensions@2.3.0: {} - - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - - blake3-wasm@2.1.5: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.23.1: - dependencies: - caniuse-lite: 1.0.30001633 - electron-to-chromium: 1.4.802 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) - - buffer-from@1.1.2: {} - - buffer@5.7.1: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bufferutil@4.0.8: - dependencies: - node-gyp-build: 4.8.1 - - buildcheck@0.0.6: - optional: true - - c12@1.10.0: - dependencies: - chokidar: 3.6.0 - confbox: 0.1.7 - defu: 6.1.4 - dotenv: 16.4.5 - giget: 1.2.3 - jiti: 1.21.6 - mlly: 1.7.1 - ohash: 1.1.3 - pathe: 1.1.2 - perfect-debounce: 1.0.0 - pkg-types: 1.1.1 - rc9: 2.1.2 - - callsites@3.1.0: {} - - camelcase@6.3.0: {} - - camelcase@8.0.0: {} - - caniuse-lite@1.0.30001633: {} - - capnp-ts@0.7.0: - dependencies: - debug: 4.3.5 - tslib: 2.6.3 - transitivePeerDependencies: - - supports-color - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.3.0: {} - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chownr@1.1.4: {} - - chownr@2.0.0: {} - - chrome-trace-event@1.0.4: {} - - citty@0.1.6: - dependencies: - consola: 3.2.3 - - clean-webpack-plugin@4.0.0(webpack@5.92.0): - dependencies: - del: 4.1.1 - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) - - cli-progress@3.12.0: - dependencies: - string-width: 4.2.3 - - client-only@0.0.1: {} - - clone-deep@4.0.1: - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - - code-red@1.0.4: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - '@types/estree': 1.0.5 - acorn: 8.11.3 - estree-walker: 3.0.3 - periscopic: 3.1.0 - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - - color@3.2.1: - dependencies: - color-convert: 1.9.3 - color-string: 1.9.1 - - colorette@2.0.20: {} - - colors@1.4.0: {} - - colorspace@1.1.4: - dependencies: - color: 3.2.1 - text-hex: 1.0.0 - - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - - commander@10.0.1: {} - - commander@12.1.0: {} - - commander@2.20.3: {} - - concat-map@0.0.1: {} - - confbox@0.1.7: {} - - consola@3.2.3: {} - - cookie@0.5.0: {} - - cosmiconfig@8.3.6(typescript@5.4.5): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.4.5 - - cpu-features@0.0.10: - dependencies: - buildcheck: 0.0.6 - nan: 2.20.0 - optional: true - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.0 - - csstype@3.1.3: {} - - data-uri-to-buffer@2.0.2: {} - - date-fns@3.6.0: {} - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - decamelize@1.2.0: {} - - deepmerge@4.3.1: {} - - defu@6.1.4: {} - - del@4.1.1: - dependencies: - '@types/glob': 7.2.0 - globby: 6.1.0 - is-path-cwd: 2.2.0 - is-path-in-cwd: 2.1.0 - p-map: 2.1.0 - pify: 4.0.1 - rimraf: 2.7.1 - - delayed-stream@1.0.0: {} - - dequal@2.0.3: {} - - destr@2.0.3: {} - - diff-match-patch@1.0.5: {} - - docker-modem@5.0.3: - dependencies: - debug: 4.3.5 - readable-stream: 3.6.2 - split-ca: 1.0.1 - ssh2: 1.15.0 - transitivePeerDependencies: - - supports-color - - dockerode@4.0.2: - dependencies: - '@balena/dockerignore': 1.0.2 - docker-modem: 5.0.3 - tar-fs: 2.0.1 - transitivePeerDependencies: - - supports-color - - dotenv@16.4.5: {} - - e2b@0.16.1: - dependencies: - isomorphic-ws: 5.0.0(ws@8.18.0) - normalize-path: 3.0.0 - openapi-typescript-fetch: 1.1.3 - path-browserify: 1.0.1 - platform: 1.3.6 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.4 - - electron-to-chromium@1.4.802: {} - - emoji-regex@8.0.0: {} - - enabled@2.0.0: {} - - end-of-stream@1.4.4: - dependencies: - once: 1.4.0 - - enhanced-resolve@5.17.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - entities@5.0.0: {} - - enumify@2.0.0: {} - - envinfo@7.13.0: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - es-module-lexer@1.5.3: {} - - esbuild@0.17.19: - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - - escalade@3.1.2: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - estree-walker@0.6.1: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.5 - - event-target-shim@5.0.1: {} - - eventemitter3@4.0.7: {} - - events@3.3.0: {} - - eventsource-parser@1.1.2: {} - - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - - exit-hook@2.2.1: {} - - fast-deep-equal@3.1.3: {} - - fast-json-stable-stringify@2.1.0: {} - - fastest-levenshtein@1.0.16: {} - - fecha@4.2.3: {} - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - flat@5.0.2: {} - - fn.name@1.1.0: {} - - follow-redirects@1.15.6: {} - - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.92.0): - dependencies: - '@babel/code-frame': 7.24.7 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 8.3.6(typescript@5.4.5) - deepmerge: 4.3.1 - fs-extra: 10.1.0 - memfs: 3.5.3 - minimatch: 3.1.2 - node-abort-controller: 3.1.1 - schema-utils: 3.3.0 - semver: 7.6.2 - tapable: 2.2.1 - typescript: 5.4.5 - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) - - form-data-encoder@1.7.2: {} - - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - - formdata-node@4.4.1: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - - fs-constants@1.0.0: {} - - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - - fs-monkey@1.0.6: {} - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - get-source@2.0.12: - dependencies: - data-uri-to-buffer: 2.0.2 - source-map: 0.6.1 - - get-stream@8.0.1: {} - - giget@1.2.3: - dependencies: - citty: 0.1.6 - consola: 3.2.3 - defu: 6.1.4 - node-fetch-native: 1.6.4 - nypm: 0.3.8 - ohash: 1.1.3 - pathe: 1.1.2 - tar: 6.2.1 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-to-regexp@0.4.1: {} - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - globby@6.1.0: - dependencies: - array-union: 1.0.2 - glob: 7.2.3 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - - graceful-fs@4.2.11: {} - - handlebars@4.7.8: - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.18.0 - - has-flag@3.0.0: {} - - has-flag@4.0.0: {} - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hono@4.4.12: {} - - human-signals@5.0.0: {} - - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - - ieee754@1.2.1: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-local@3.1.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - interpret@3.1.1: {} - - is-arrayish@0.2.1: {} - - is-arrayish@0.3.2: {} - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.13.1: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-path-cwd@2.2.0: {} - - is-path-in-cwd@2.1.0: - dependencies: - is-path-inside: 2.1.0 - - is-path-inside@2.1.0: - dependencies: - path-is-inside: 1.0.2 - - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.5 - - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - - isexe@2.0.0: {} - - isobject@3.0.1: {} - - isomorphic-ws@5.0.0(ws@8.18.0): - dependencies: - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - - jest-worker@27.5.1: - dependencies: - '@types/node': 20.14.2 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jiti@1.21.6: {} - - js-tiktoken@1.0.12: - dependencies: - base64-js: 1.5.1 - - js-tokens@4.0.0: {} - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-schema@0.4.0: {} - - jsonc-parser@3.2.1: {} - - jsondiffpatch@0.6.0: - dependencies: - '@types/diff-match-patch': 1.0.36 - chalk: 5.3.0 - diff-match-patch: 1.0.5 - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - jsonpointer@5.0.1: {} - - kind-of@6.0.3: {} - - kuler@2.0.0: {} - - langchain@0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0): - dependencies: - '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.51.0) - '@langchain/openai': 0.2.6(langchain@0.2.13) - '@langchain/textsplitters': 0.0.3(langchain@0.2.13)(openai@4.51.0) - axios: 1.7.2 - binary-extensions: 2.3.0 - js-tiktoken: 1.0.12 - js-yaml: 4.1.0 - jsonpointer: 5.0.1 - langsmith: 0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.51.0) - openapi-types: 12.1.3 - p-retry: 4.6.2 - uuid: 10.0.0 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - yaml: 2.4.5 - zod: 3.23.8 - zod-to-json-schema: 3.23.2(zod@3.23.8) - transitivePeerDependencies: - - encoding - - openai - - langsmith@0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.51.0): - dependencies: - '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.51.0) - '@types/uuid': 9.0.8 - commander: 10.0.1 - langchain: 0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0) - openai: 4.51.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.6.3 - uuid: 9.0.1 - - langsmith@0.1.41(@langchain/core@0.2.21)(langchain@0.2.13)(openai@4.55.1): - dependencies: - '@langchain/core': 0.2.21(langchain@0.2.13)(openai@4.55.1) - '@types/uuid': 9.0.8 - commander: 10.0.1 - langchain: 0.2.13(axios@1.7.2)(openai@4.51.0)(ws@8.18.0) - openai: 4.55.1(zod@3.23.8) - p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.6.3 - uuid: 9.0.1 - - lines-and-columns@1.2.4: {} - - loader-runner@4.3.0: {} - - locate-character@3.0.0: {} - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - logform@2.6.1: - dependencies: - '@colors/colors': 1.6.0 - '@types/triple-beam': 1.3.5 - fecha: 4.2.3 - ms: 2.1.3 - safe-stable-stringify: 2.4.3 - triple-beam: 1.4.1 - - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lunr@2.3.9: {} - - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - - magic-string@0.30.11: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - marked@4.3.0: {} - - mdn-data@2.0.30: {} - - memfs@3.5.3: - dependencies: - fs-monkey: 1.0.6 - - merge-stream@2.0.0: {} - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime@3.0.0: {} - - mimic-fn@4.0.0: {} - - miniflare@3.20240701.0: + engines: {node: '>=16.13'} + hasBin: true dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.11.3 @@ -3888,101 +4431,224 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true - minimatch@9.0.4: + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true - minimist@1.2.8: {} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true - minipass@3.3.6: + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} dependencies: yallist: 4.0.0 + dev: true - minipass@5.0.0: {} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true - minizlib@2.1.2: + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: minipass: 3.3.6 yallist: 4.0.0 + dev: true - mkdirp-classic@0.5.3: {} + /mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + dev: false - mkdirp@1.0.4: {} + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true - mlly@1.7.1: + /mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} dependencies: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.1.1 ufo: 1.5.3 + dev: true - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - mustache@4.2.0: {} + /mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true - nan@2.20.0: + /nan@2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} + requiresBuild: true + dev: false optional: true - nanoid@3.3.6: {} + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - nanoid@3.3.7: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - neo-async@2.6.2: {} + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true - node-abort-controller@3.1.1: {} + /node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + dev: true - node-domexception@1.0.0: {} + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: false - node-fetch-native@1.6.4: {} + /node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + dev: true - node-fetch@2.7.0: + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: whatwg-url: 5.0.0 + dev: false + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true - node-forge@1.3.1: {} + /node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true + requiresBuild: true - node-gyp-build@4.8.1: {} + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true - node-releases@2.0.14: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} - normalize-path@3.0.0: {} + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true - npm-run-path@5.3.0: + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 + dev: true - nypm@0.3.8: + /nypm@0.3.8: + resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true dependencies: citty: 0.1.6 consola: 3.2.3 execa: 8.0.1 pathe: 1.1.2 ufo: 1.5.3 + dev: true - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true - ohash@1.1.3: {} + /ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + dev: true - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - one-time@1.0.0: + /one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} dependencies: fn.name: 1.1.0 - onetime@6.0.0: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 + dev: true - openai@4.51.0: + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /openai@4.51.0: + resolution: {integrity: sha512-UKuWc3/qQyklqhHM8CbdXCv0Z0obap6T0ECdcO5oATQxAbKE5Ky3YCXFQY207z+eGG6ez4U9wvAcuMygxhmStg==} + hasBin: true dependencies: '@types/node': 18.19.34 '@types/node-fetch': 2.6.11 @@ -3994,8 +4660,16 @@ snapshots: web-streams-polyfill: 3.3.3 transitivePeerDependencies: - encoding + dev: false - openai@4.55.1(zod@3.23.8): + /openai@4.55.1(zod@3.23.8): + resolution: {integrity: sha512-FziYJcWl+SAGbt5AcRIzVzNcnKohpEMQdtzVOmHFbBp/if7x2+ACqgxF2XUbyi2PcKONPcVpmtG5h9qoDAEXwQ==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true dependencies: '@types/node': 18.19.34 '@types/node-fetch': 2.6.11 @@ -4007,306 +4681,646 @@ snapshots: zod: 3.23.8 transitivePeerDependencies: - encoding + dev: false - openapi-types@12.1.3: {} + /openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + dev: false - openapi-typescript-fetch@1.1.3: {} + /openapi-typescript-fetch@1.1.3: + resolution: {integrity: sha512-smLZPck4OkKMNExcw8jMgrMOGgVGx2N/s6DbKL2ftNl77g5HfoGpZGFy79RBzU/EkaO0OZpwBnslfdBfh7ZcWg==} + engines: {node: '>= 12.0.0', npm: '>= 7.0.0'} + dev: false - p-finally@1.0.0: {} + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: false - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 + dev: true - p-map@2.1.0: {} + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true - p-queue@6.6.2: + /p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 + dev: false - p-retry@4.6.2: + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} dependencies: '@types/retry': 0.12.0 retry: 0.13.1 + dev: false - p-timeout@3.2.0: + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} dependencies: p-finally: 1.0.0 + dev: false - p-try@2.2.0: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true - path-browserify@1.0.1: {} + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true - path-is-inside@1.0.2: {} + /path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + dev: true - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true - path-key@4.0.0: {} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true - path-parse@1.0.7: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true - path-to-regexp@6.2.2: {} + /path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + dev: true - path-type@4.0.0: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true - pathe@1.1.2: {} + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true - perfect-debounce@1.0.0: {} + /perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + dev: true - periscopic@3.1.0: + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 + dev: false - picocolors@1.0.1: {} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true - pify@2.3.0: {} + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true - pify@4.0.1: {} + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true - pinkie-promise@2.0.1: + /pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} dependencies: pinkie: 2.0.4 + dev: true - pinkie@2.0.4: {} + /pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 + dev: true - pkg-types@1.1.1: + /pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} dependencies: confbox: 0.1.7 mlly: 1.7.1 pathe: 1.1.2 + dev: true - platform@1.3.6: {} + /platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + dev: false - postcss@8.4.41: + /postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.1 source-map-js: 1.2.0 + dev: false + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + dev: true + + /printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + dev: true - printable-characters@1.0.42: {} + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true - proxy-from-env@1.1.0: {} + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false - pump@3.0.0: + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 + dev: false + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true - punycode@2.3.1: {} + /pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + dev: true - pusher-js@8.4.0-rc2: + /pusher-js@8.4.0-rc2: + resolution: {integrity: sha512-d87GjOEEl9QgO5BWmViSqW0LOzPvybvX6WA9zLUstNdB57jVJuR27zHkRnrav2a3+zAMlHbP2Og8wug+rG8T+g==} dependencies: tweetnacl: 1.0.3 + dev: false - randombytes@2.1.0: + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 + dev: true - rc9@2.1.2: + /rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} dependencies: defu: 6.1.4 destr: 2.0.3 + dev: true + + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + dev: true - react@18.3.1: + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 + dev: false - readable-stream@3.6.2: + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + dev: true - rechoir@0.8.0: + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} dependencies: resolve: 1.22.8 + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true - resolve-cwd@3.0.0: + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 + dev: true - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true - resolve.exports@2.0.2: {} + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true - retry@0.13.1: {} + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: false - rimraf@2.7.1: + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 + dev: true - rollup-plugin-inject@3.0.2: + /rollup-plugin-inject@3.0.2: + resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. dependencies: estree-walker: 0.6.1 magic-string: 0.25.9 rollup-pluginutils: 2.8.2 + dev: true - rollup-plugin-node-polyfills@0.2.1: + /rollup-plugin-node-polyfills@0.2.1: + resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} dependencies: rollup-plugin-inject: 3.0.2 + dev: true - rollup-pluginutils@2.8.2: + /rollup-pluginutils@2.8.2: + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} dependencies: estree-walker: 0.6.1 + dev: true - safe-buffer@5.2.1: {} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-stable-stringify@2.4.3: {} + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: false - schema-utils@3.3.0: + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true - secure-json-parse@2.7.0: {} + /secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + dev: false - selfsigned@2.4.1: + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} dependencies: '@types/node-forge': 1.3.11 node-forge: 1.3.1 + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true - semver@7.6.2: {} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true + dev: true - semver@7.6.3: {} + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true - serialize-javascript@6.0.2: + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 + dev: true - shallow-clone@3.0.1: + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} dependencies: kind-of: 6.0.3 + dev: true - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: true - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true - shiki@0.14.7: + /shiki@0.14.7: + resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} dependencies: ansi-sequence-parser: 1.1.1 jsonc-parser: 3.2.1 vscode-oniguruma: 1.7.0 vscode-textmate: 8.0.0 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true - signal-exit@4.1.0: {} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true - simple-swizzle@0.2.2: + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 - source-map-js@1.2.0: {} + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true - source-map-support@0.5.21: + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true - source-map@0.6.1: {} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true - source-map@0.7.4: {} + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true - sourcemap-codec@1.4.8: {} + /split-ca@1.0.1: + resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} + dev: false - split-ca@1.0.1: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true - ssh2@1.15.0: + /ssh2@1.15.0: + resolution: {integrity: sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==} + engines: {node: '>=10.16.0'} + requiresBuild: true dependencies: asn1: 0.2.6 bcrypt-pbkdf: 1.0.2 optionalDependencies: cpu-features: 0.0.10 nan: 2.20.0 + dev: false - sswr@2.1.0(svelte@4.2.18): + /sswr@2.1.0(svelte@4.2.18): + resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 dependencies: svelte: 4.2.18 swrev: 4.0.0 + dev: false - stack-trace@0.0.10: {} + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true - stacktracey@2.1.8: + /stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} dependencies: as-table: 1.0.55 get-source: 2.0.12 + dev: true + + /stoppable@1.1.0: + resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} + engines: {node: '>=4', npm: '>=6'} + dev: true - stoppable@1.1.0: {} + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string_decoder@1.3.0: + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - strip-final-newline@3.0.0: {} + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: true - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 + dev: true - supports-preserve-symlinks-flag@1.0.0: {} + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true - svelte@4.2.18: + /svelte@4.2.18: + resolution: {integrity: sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==} + engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -4322,37 +5336,58 @@ snapshots: locate-character: 3.0.0 magic-string: 0.30.11 periscopic: 3.1.0 + dev: false - swr@2.2.5(react@18.3.1): + /swr@2.2.5(react@18.3.1): + resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: client-only: 0.0.1 react: 18.3.1 use-sync-external-store: 1.2.2(react@18.3.1) + dev: false - swrev@4.0.0: {} + /swrev@4.0.0: + resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} + dev: false - swrv@1.0.4(vue@3.4.36): + /swrv@1.0.4(vue@3.4.36): + resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} + peerDependencies: + vue: '>=3.2.26 < 4' dependencies: vue: 3.4.36(typescript@5.4.5) + dev: false - tapable@2.2.1: {} + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true - tar-fs@2.0.1: + /tar-fs@2.0.1: + resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==} dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 2.2.0 + dev: false - tar-stream@2.2.0: + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} dependencies: bl: 4.1.0 end-of-stream: 1.4.4 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 + dev: false - tar@6.2.1: + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -4360,37 +5395,125 @@ snapshots: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 + dev: true - terser-webpack-plugin@5.3.10(esbuild@0.17.19)(webpack@5.92.0): + /terser-webpack-plugin@5.3.10(@swc/core@1.7.10)(esbuild@0.17.19)(webpack@5.92.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 + '@swc/core': 1.7.10(@swc/helpers@0.5.12) esbuild: 0.17.19 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.1 - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + dev: true - terser@5.31.1: + /terser@5.31.1: + resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} + engines: {node: '>=10'} + hasBin: true dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-hex@1.0.0: {} + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true - to-fast-properties@2.0.0: {} + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: true - tr46@0.0.3: {} + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + + /triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} - triple-beam@1.4.1: {} + /ts-jest@29.2.4(@babel/core@7.25.2)(esbuild@0.17.19)(jest@29.7.0)(typescript@5.4.5): + resolution: {integrity: sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/transform': ^29.0.0 + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/transform': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.25.2 + bs-logger: 0.2.6 + ejs: 3.1.10 + esbuild: 0.17.19 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.6.3 + typescript: 5.4.5 + yargs-parser: 21.1.1 + dev: true - ts-loader@9.5.1(typescript@5.4.5)(webpack@5.92.0): + /ts-loader@9.5.1(typescript@5.4.5)(webpack@5.92.0): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 dependencies: chalk: 4.1.2 enhanced-resolve: 5.17.0 @@ -4398,36 +5521,104 @@ snapshots: semver: 7.6.2 source-map: 0.7.4 typescript: 5.4.5 - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) + dev: true + + /ts-node@10.9.2(@swc/core@1.7.10)(@types/node@20.14.2)(typescript@5.4.5): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@swc/core': 1.7.10(@swc/helpers@0.5.12) + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.14.2 + acorn: 8.11.3 + acorn-walk: 8.3.3 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.4.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + /tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: false - tslib@2.6.3: {} + /tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + dev: false - tweetnacl@0.14.5: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true - tweetnacl@1.0.3: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true - typedoc@0.25.13(typescript@5.4.5): + /typedoc@0.25.13(typescript@5.4.5): + resolution: {integrity: sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x dependencies: lunr: 2.3.9 marked: 4.3.0 minimatch: 9.0.4 shiki: 0.14.7 typescript: 5.4.5 + dev: true - typescript@5.4.5: {} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true - ufo@1.5.3: {} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + dev: true - uglify-js@3.18.0: + /uglify-js@3.18.0: + resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true optional: true - undici-types@5.26.5: {} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici@5.28.4: + /undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} dependencies: '@fastify/busboy': 2.1.1 + dev: true - unenv-nightly@1.10.0-1717606461.a117952: + /unenv-nightly@1.10.0-1717606461.a117952: + resolution: {integrity: sha512-u3TfBX02WzbHTpaEfWEKwDijDSFAHcgXkayUZ+MVDrjhLFvgAJzFGTSTmwlEhwWi2exyRQey23ah9wELMM6etg==} dependencies: consola: 3.2.3 defu: 6.1.4 @@ -4435,38 +5626,85 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 ufo: 1.5.3 + dev: true - universalify@2.0.1: {} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true - update-browserslist-db@1.0.16(browserslist@4.23.1): + /update-browserslist-db@1.0.16(browserslist@4.23.1): + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.1 escalade: 3.1.2 picocolors: 1.0.1 + dev: true - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 + dev: true - use-sync-external-store@1.2.2(react@18.3.1): + /use-sync-external-store@1.2.2(react@18.3.1): + resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: react: 18.3.1 + dev: false - utf-8-validate@6.0.4: + /utf-8-validate@6.0.4: + resolution: {integrity: sha512-xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==} + engines: {node: '>=6.14.2'} + requiresBuild: true dependencies: node-gyp-build: 4.8.1 - util-deprecate@1.0.2: {} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + dev: false - uuid@10.0.0: {} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false - uuid@9.0.1: {} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + /v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + dev: true - vscode-oniguruma@1.7.0: {} + /vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: true - vscode-textmate@8.0.0: {} + /vscode-textmate@8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true - vue@3.4.36(typescript@5.4.5): + /vue@3.4.36(typescript@5.4.5): + resolution: {integrity: sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@vue/compiler-dom': 3.4.36 '@vue/compiler-sfc': 3.4.36 @@ -4474,19 +5712,52 @@ snapshots: '@vue/server-renderer': 3.4.36(vue@3.4.36) '@vue/shared': 3.4.36 typescript: 5.4.5 + dev: false + + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true - watchpack@2.4.1: + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + dev: true - web-streams-polyfill@3.3.3: {} + /web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + dev: false - web-streams-polyfill@4.0.0-beta.3: {} + /web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + dev: false - webidl-conversions@3.0.1: {} + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false - webpack-cli@5.1.4(webpack@5.92.0): + /webpack-cli@5.1.4(webpack@5.92.0): + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true dependencies: '@discoveryjs/json-ext': 0.5.7 '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.92.0) @@ -4500,18 +5771,33 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4) + webpack: 5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4) webpack-merge: 5.10.0 + dev: true - webpack-merge@5.10.0: + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} dependencies: clone-deep: 4.0.1 flat: 5.0.2 wildcard: 2.0.1 + dev: true - webpack-sources@3.2.3: {} + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true - webpack@5.92.0(esbuild@0.17.19)(webpack-cli@5.1.4): + /webpack@5.92.0(@swc/core@1.7.10)(esbuild@0.17.19)(webpack-cli@5.1.4): + resolution: {integrity: sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -4534,7 +5820,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.17.19)(webpack@5.92.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.10)(esbuild@0.17.19)(webpack@5.92.0) watchpack: 2.4.1 webpack-cli: 5.1.4(webpack@5.92.0) webpack-sources: 3.2.3 @@ -4542,25 +5828,38 @@ snapshots: - '@swc/core' - esbuild - uglify-js + dev: true - whatwg-url@5.0.0: + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: false - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 + dev: true - wildcard@2.0.1: {} + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + dev: true - winston-transport@4.7.1: + /winston-transport@4.7.1: + resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} + engines: {node: '>= 12.0.0'} dependencies: logform: 2.6.1 readable-stream: 3.6.2 triple-beam: 1.4.1 - winston@3.14.0: + /winston@3.14.0: + resolution: {integrity: sha512-XEJvmKJglhTW2TgfpKdkpj0119Yn5AClR7LJ0rBNUQFx20mNQj3s1ukTA1i77q+YBaHYbcKtXpxgPqfdUPCIYA==} + engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 '@dabh/diagnostics': 2.0.3 @@ -4574,17 +5873,32 @@ snapshots: triple-beam: 1.4.1 winston-transport: 4.7.1 - wordwrap@1.0.0: {} + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true - workerd@1.20240701.0: + /workerd@1.20240701.0: + resolution: {integrity: sha512-qSgNVqauqzNCij9MaJLF2c2ko3AnFioVSIxMSryGbRK+LvtGr9BKBt6JOxCb24DoJASoJDx3pe3DJHBVydUiBg==} + engines: {node: '>=16'} + hasBin: true + requiresBuild: true optionalDependencies: '@cloudflare/workerd-darwin-64': 1.20240701.0 '@cloudflare/workerd-darwin-arm64': 1.20240701.0 '@cloudflare/workerd-linux-64': 1.20240701.0 '@cloudflare/workerd-linux-arm64': 1.20240701.0 '@cloudflare/workerd-windows-64': 1.20240701.0 + dev: true - wrangler@3.63.1(@cloudflare/workers-types@4.20240806.0): + /wrangler@3.63.1(@cloudflare/workers-types@4.20240806.0): + resolution: {integrity: sha512-fxMPNEyDc9pZNtQOuYqRikzv6lL5eP4S1zv7L/kw24uu1cCEmJ39j8bfJGzrAEqKDNsiFXVjEka0RjlpgEVWPg==} + engines: {node: '>=16.17.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20240620.0 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@cloudflare/workers-types': 4.20240806.0 @@ -4601,7 +5915,7 @@ snapshots: resolve.exports: 2.0.2 selfsigned: 2.4.1 source-map: 0.6.1 - unenv: unenv-nightly@1.10.0-1717606461.a117952 + unenv: /unenv-nightly@1.10.0-1717606461.a117952 xxhash-wasm: 1.0.2 optionalDependencies: fsevents: 2.3.3 @@ -4609,32 +5923,116 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true - ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): + /ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dependencies: bufferutil: 4.0.8 utf-8-validate: 6.0.4 - xxhash-wasm@1.0.2: {} + /xxhash-wasm@1.0.2: + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@2.4.5: + resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + engines: {node: '>= 14'} + hasBin: true + dev: false + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true - yallist@4.0.0: {} + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} - yaml@2.4.5: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true - youch@3.3.3: + /youch@3.3.3: + resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} dependencies: cookie: 0.5.0 mustache: 4.2.0 stacktracey: 2.1.8 + dev: true - zod-to-json-schema@3.22.5(zod@3.23.8): + /zod-to-json-schema@3.22.5(zod@3.23.8): + resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==} + peerDependencies: + zod: ^3.22.4 dependencies: zod: 3.23.8 + dev: false - zod-to-json-schema@3.23.2(zod@3.23.8): + /zod-to-json-schema@3.23.2(zod@3.23.8): + resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} + peerDependencies: + zod: ^3.23.3 dependencies: zod: 3.23.8 + dev: false - zod@3.23.8: {} + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} diff --git a/js/src/frameworks/cloudflare.spec.ts b/js/src/frameworks/cloudflare.spec.ts new file mode 100644 index 00000000000..242e570fec5 --- /dev/null +++ b/js/src/frameworks/cloudflare.spec.ts @@ -0,0 +1,25 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { CloudflareToolSet } from "./cloudflare"; +import { get } from "http"; +import { getTestConfig } from "../../config/getTestConfig"; + + +describe("Apps class tests", () => { + + let cloudflareToolSet: CloudflareToolSet; + beforeAll(() => { + cloudflareToolSet = new CloudflareToolSet({ + apiKey: getTestConfig().COMPOSIO_API_KEY, + baseUrl: getTestConfig().BACKEND_HERMES_URL + }); + }); + + it("check if tools are coming", async () => { + const tools = await cloudflareToolSet.getActions({ + actions: ['GITHUB_GITHUB_API_ROOT'] + }); + + expect(tools.length).toBe(1); + }); + +}); diff --git a/js/src/frameworks/cloudflare.ts b/js/src/frameworks/cloudflare.ts index 220f8fa0f67..bda33a203e6 100644 --- a/js/src/frameworks/cloudflare.ts +++ b/js/src/frameworks/cloudflare.ts @@ -2,14 +2,12 @@ import { ComposioToolSet as BaseComposioToolSet } from "../sdk/base.toolset"; import { AiTextGenerationOutput, AiTextGenerationToolInput, - // @ts-ignore } from "@cloudflare/workers-types"; -import { ExecEnv } from "../env/factory"; import { COMPOSIO_BASE_URL } from "../sdk/client/core/OpenAPI"; -import { GetListActionsResponse } from "../sdk/client"; import { WorkspaceConfig } from "../env/config"; import { Workspace } from "../env"; import logger from "../utils/logger"; +import { ActionsControllerV1ListActionsResponse, ActionsListResponseDTO } from "../sdk/client"; type Optional = T | null; type Sequence = Array; @@ -42,7 +40,7 @@ export class CloudflareToolSet extends BaseComposioToolSet { actions: Sequence; }): Promise> { const actions = await this.getActionsSchema(filters); - return actions.map((action: NonNullable[0]) => { + return actions.map((action: NonNullable[0]) => { const formattedSchema: AiTextGenerationToolInput["function"] = { name: action.name!, description: action.description!, @@ -81,7 +79,7 @@ export class CloudflareToolSet extends BaseComposioToolSet { useCase?: Optional; }): Promise> { const actions = await this.getToolsSchema(filters); - return actions.map((action: NonNullable[0]) => { + return actions.map((action: NonNullable[0]) => { const formattedSchema: AiTextGenerationToolInput["function"] = { name: action.name!, description: action.description!, diff --git a/js/src/frameworks/langchain.spec.ts b/js/src/frameworks/langchain.spec.ts new file mode 100644 index 00000000000..a06230d6184 --- /dev/null +++ b/js/src/frameworks/langchain.spec.ts @@ -0,0 +1,35 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { CloudflareToolSet } from "./cloudflare"; +import { get } from "http"; +import { getTestConfig } from "../../config/getTestConfig"; +import { LangchainToolSet } from "./langchain"; + + +describe("Apps class tests", () => { + + let langchainToolSet: LangchainToolSet; + beforeAll(() => { + langchainToolSet = new LangchainToolSet({ + apiKey: getTestConfig().COMPOSIO_API_KEY, + baseUrl: getTestConfig().BACKEND_HERMES_URL + }); + }); + + it("getools",async() => { + const tools = await langchainToolSet.getTools({ + apps: ['github'] + }); + + expect(tools).toBeInstanceOf(Array); + + }); + + it("check if tools are coming", async () => { + const tools = await langchainToolSet.getActions({ + actions: ['GITHUB_GITHUB_API_ROOT'] + }); + + expect(tools.length).toBe(1); + }); + +}); diff --git a/js/src/frameworks/langchain.ts b/js/src/frameworks/langchain.ts index 843a66660e7..9ac2a7210d1 100644 --- a/js/src/frameworks/langchain.ts +++ b/js/src/frameworks/langchain.ts @@ -1,14 +1,12 @@ import { ComposioToolSet as BaseComposioToolSet } from "../sdk/base.toolset"; import { jsonSchemaToModel } from "../utils/shared"; import { DynamicStructuredTool } from "@langchain/core/tools"; -import { ExecEnv } from "../env/factory"; import { COMPOSIO_BASE_URL } from "../sdk/client/core/OpenAPI"; import type { Optional, Dict, Sequence } from "../sdk/types"; -import { GetListActionsResponse } from "../sdk/client"; +import {ActionsControllerV2ListActionsResponse, ActionsListResponseDTO } from "../sdk/client"; import { WorkspaceConfig } from "../env/config"; import { Workspace } from "../env"; import logger from "../utils/logger"; -import { zodToJsonSchema } from "zod-to-json-schema"; export class LangchainToolSet extends BaseComposioToolSet { /** @@ -51,7 +49,7 @@ export class LangchainToolSet extends BaseComposioToolSet { apiKey?: Optional, baseUrl?: Optional, entityId?: string, - workspaceConfig: WorkspaceConfig + workspaceConfig?: WorkspaceConfig } ) { super( @@ -98,7 +96,7 @@ export class LangchainToolSet extends BaseComposioToolSet { entityId?: Optional ): Promise> { const actions = await this.getActionsSchema(filters as any, entityId); - return actions!.map((tool: NonNullable[0]) => + return actions!.map((tool: NonNullable[0]) => this._wrapTool( tool, entityId || this.entityId @@ -125,7 +123,7 @@ export class LangchainToolSet extends BaseComposioToolSet { entityId: Optional = null ): Promise> { const tools = await this.getToolsSchema(filters, entityId); - return tools.map((tool: NonNullable[0]) => + return tools.map((tool: NonNullable[0]) => this._wrapTool( tool, entityId || this.entityId diff --git a/js/src/frameworks/openai.spec.ts b/js/src/frameworks/openai.spec.ts new file mode 100644 index 00000000000..be741b2455f --- /dev/null +++ b/js/src/frameworks/openai.spec.ts @@ -0,0 +1,36 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { CloudflareToolSet } from "./cloudflare"; +import { get } from "http"; +import { getTestConfig } from "../../config/getTestConfig"; +import { LangchainToolSet } from "./langchain"; +import { OpenAIToolSet } from "./openai"; + + +describe("Apps class tests", () => { + + let openAIToolset: OpenAIToolSet; + beforeAll(() => { + openAIToolset = new OpenAIToolSet({ + apiKey: getTestConfig().COMPOSIO_API_KEY, + baseUrl: getTestConfig().BACKEND_HERMES_URL + }); + }); + + it("get tools", async () => { + const tools = await openAIToolset.getTools({ + apps: ['github'] + }); + + expect(tools).toBeInstanceOf(Array); + + }); + + it("check if tools are coming", async () => { + const tools = await openAIToolset.get_actions({ + actions: ['GITHUB_GITHUB_API_ROOT'] + }); + + expect(Object.keys(tools).length).toBe(1); + }); + +}); diff --git a/js/src/frameworks/openai.ts b/js/src/frameworks/openai.ts index 279beaa93c5..9eda7884c85 100644 --- a/js/src/frameworks/openai.ts +++ b/js/src/frameworks/openai.ts @@ -1,11 +1,11 @@ import { ComposioToolSet as BaseComposioToolSet } from "../sdk/base.toolset"; import { OpenAI } from "openai"; -import { ExecEnv } from "../env/factory"; + import { COMPOSIO_BASE_URL } from "../sdk/client/core/OpenAPI"; -import { GetListActionsResponse } from "../sdk/client"; import { WorkspaceConfig } from "../env/config"; import { Workspace } from "../env"; import logger from "../utils/logger"; +import { ActionsListResponseDTO } from "../sdk/client"; type Optional = T | null; type Sequence = Array; @@ -24,7 +24,7 @@ export class OpenAIToolSet extends BaseComposioToolSet { apiKey?: Optional, baseUrl?: Optional, entityId?: string, - workspaceConfig: WorkspaceConfig + workspaceConfig?: WorkspaceConfig } ) { super( @@ -41,7 +41,7 @@ export class OpenAIToolSet extends BaseComposioToolSet { entityId?: Optional ): Promise> { const mainActions = await this.getActionsSchema(filters, entityId); - return mainActions.map((action: NonNullable[0]) => { + return mainActions.map((action: NonNullable[0]) => { const formattedSchema: OpenAI.FunctionDefinition = { name: action.name!, description: action.description!, @@ -74,7 +74,7 @@ export class OpenAIToolSet extends BaseComposioToolSet { entityId?: Optional ): Promise> { const mainActions = await this.getToolsSchema(filters, entityId); - return mainActions.map((action: NonNullable[0]) => { + return mainActions.map((action: NonNullable[0]) => { const formattedSchema: OpenAI.FunctionDefinition = { name: action.name!, description: action.description!, diff --git a/js/src/frameworks/vercel.spec.ts b/js/src/frameworks/vercel.spec.ts new file mode 100644 index 00000000000..eddc81ac723 --- /dev/null +++ b/js/src/frameworks/vercel.spec.ts @@ -0,0 +1,37 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { CloudflareToolSet } from "./cloudflare"; +import { get } from "http"; +import { getTestConfig } from "../../config/getTestConfig"; +import { LangchainToolSet } from "./langchain"; +import { OpenAIToolSet } from "./openai"; +import { VercelAIToolSet } from "./vercel"; + + +describe("Apps class tests", () => { + + let vercelAIToolSet: VercelAIToolSet; + beforeAll(() => { + vercelAIToolSet = new VercelAIToolSet({ + apiKey: getTestConfig().COMPOSIO_API_KEY, + baseUrl: getTestConfig().BACKEND_HERMES_URL + }); + }); + + it("check if tools are coming", async () => { + const tools = await vercelAIToolSet.get_tools({ + apps: ['github'] + }); + + expect(Object.keys(tools)).toBeInstanceOf(Array); + + }); + + it("check if actions are coming", async () => { + const tools = await vercelAIToolSet.get_actions({ + actions: ['GITHUB_GITHUB_API_ROOT'] + }); + + expect(Object.keys(tools).length).toBe(1); + }); + +}); diff --git a/js/src/frameworks/vercel.ts b/js/src/frameworks/vercel.ts index e3f55c0f68d..cb7df2f83c5 100644 --- a/js/src/frameworks/vercel.ts +++ b/js/src/frameworks/vercel.ts @@ -1,4 +1,4 @@ -import { CoreTool, GenerateTextResult, tool } from "ai"; +import { tool } from "ai"; import { ComposioToolSet as BaseComposioToolSet } from "../sdk/base.toolset"; import { jsonSchemaToModel } from "../utils/shared"; @@ -45,10 +45,11 @@ export class VercelAIToolSet extends BaseComposioToolSet { return tools; } + // change this implementation async get_tools(filters: { - apps: Sequence; - tags: Optional>; - useCase: Optional; + apps: Array; + tags?: Optional>; + useCase?: Optional; }): Promise<{ [key: string]: any }> { const actionsList = await this.client.actions.list({ apps: filters.apps.join(","), diff --git a/js/src/sdk/base.toolset.spec.ts b/js/src/sdk/base.toolset.spec.ts new file mode 100644 index 00000000000..5b82688f4a3 --- /dev/null +++ b/js/src/sdk/base.toolset.spec.ts @@ -0,0 +1,58 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { ComposioToolSet } from "./base.toolset"; +import { getTestConfig } from "../../config/getTestConfig"; + +describe("ComposioToolSet class tests", () => { + let toolset: ComposioToolSet; + const testConfig = getTestConfig(); + + beforeAll(() => { + toolset = new ComposioToolSet(testConfig.COMPOSIO_API_KEY, testConfig.BACKEND_HERMES_URL); + }); + + it("should create a ComposioToolSet instance", async() => { + const tools = await toolset.getToolsSchema({ apps: ["github"] }); + expect(tools).toBeInstanceOf(Array); + expect(tools).not.toHaveLength(0); + }); + + it("should create a ComposioToolSet instance", async () => { + const tools = await toolset.getToolsSchema({ apps: ["github"], tags: ["important"] }); + expect(tools).toBeInstanceOf(Array); + expect(tools).not.toHaveLength(0); + }); + + it("should create a ComposioToolSet instance", async () => { + const tools = await toolset.getActionsSchema({ actions: ["github_issues_create"] }); + expect(tools).toBeInstanceOf(Array); + }); + + it("should execute an action", async () => { + + const actionName = "github_issues_create"; + const requestBody = { + owner: "utkarsh-dixit", + repo: "speedy", + title: "Test issue", + body: "This is a test issue", + appNames: "github" + }; + + const executionResult = await toolset.executeAction(actionName, requestBody, "default"); + expect(executionResult).toBeDefined(); + // @ts-ignore + expect(executionResult.execution_details).toHaveProperty('executed', true); + expect(executionResult.response_data).toBeDefined(); + + }); + + // it("should have a valid API key", () => { + // expect(toolset.apiKey).toBe(testConfig.COMPOSIO_API_KEY); + // }); + + // it("should have a valid backend URL", () => { + // expect(toolset.client.baseUrl).toBe(testConfig.BACKEND_HERMES_URL); + // }); + + // Additional tests for ComposioToolSet methods can be added here +}); diff --git a/js/src/sdk/base.toolset.ts b/js/src/sdk/base.toolset.ts index 86136a27f40..1761db4cd39 100644 --- a/js/src/sdk/base.toolset.ts +++ b/js/src/sdk/base.toolset.ts @@ -3,12 +3,13 @@ import { ExecEnv, WorkspaceFactory } from "../env/factory"; import { COMPOSIO_BASE_URL } from "./client/core/OpenAPI"; import { RemoteWorkspace } from "../env/base"; import type { IPythonActionDetails, Optional, Sequence } from "./types"; -import { GetListActionsResponse } from "./client"; +// import { GetListActionsResponse } from "./client"; import { getEnvVariable } from "../utils/shared"; import { WorkspaceConfig } from "../env/config"; import { Workspace } from "../env"; import logger from "../utils/logger"; +type GetListActionsResponse = any; class UserData { apiKey: string | undefined; constructor(public _path: string) { @@ -77,6 +78,7 @@ export class ComposioToolSet { await this.workspace.workspace?.teardown(); }); } + } async setup() { @@ -92,7 +94,7 @@ export class ComposioToolSet { entityId?: Optional ): Promise[0]>> { await this.setup(); - let actions: GetListActionsResponse["items"] = (await this.client.actions.list({ + let actions = (await this.client.actions.list({ actions: filters.actions?.join(","), showAll: true })).items; @@ -175,6 +177,7 @@ export class ComposioToolSet { async execute_action( action: string, + // this need to improve params: Record, entityId: string = "default" ): Promise> { diff --git a/js/src/sdk/client/client.ts b/js/src/sdk/client/client.ts new file mode 100644 index 00000000000..f25ae079bb8 --- /dev/null +++ b/js/src/sdk/client/client.ts @@ -0,0 +1,19 @@ +import * as SDKClient from "./services.gen"; + +export default { + logs: SDKClient.LogsService, + actionsV1: SDKClient.ActionsControllerV1Service, + actionsV2: SDKClient.ActionsControllerV2Service, + apiKeys: SDKClient.ApiKeysService, + clientAuthService: SDKClient.ClientAuthService, + cli: SDKClient.CliService, + appConnector: SDKClient.AppConnectorService, + + apps: SDKClient.AppService, + appLogin: SDKClient.AppLoginService, + + connections: SDKClient.ConnectionsService, + metadata: SDKClient.MetadataService, + team: SDKClient.TeamService, + triggers: SDKClient.TriggersService, +}; diff --git a/js/src/sdk/client/core/OpenAPI.ts b/js/src/sdk/client/core/OpenAPI.ts index b635621ec29..84390398eb7 100644 --- a/js/src/sdk/client/core/OpenAPI.ts +++ b/js/src/sdk/client/core/OpenAPI.ts @@ -39,7 +39,7 @@ export type OpenAPIConfig = { }; }; -export const COMPOSIO_BASE_URL = "https://backend.composio.dev/api"; +export const COMPOSIO_BASE_URL = "https://backend.composio.dev/"; export const OpenAPI: OpenAPIConfig = { BASE: COMPOSIO_BASE_URL, diff --git a/js/src/sdk/client/index.ts b/js/src/sdk/client/index.ts index 3e1f0b35c8b..0a2b84baed4 100644 --- a/js/src/sdk/client/index.ts +++ b/js/src/sdk/client/index.ts @@ -1,6 +1,4 @@ // This file is auto-generated by @hey-api/openapi-ts -export { ApiError } from './core/ApiError'; -export { CancelablePromise, CancelError } from './core/CancelablePromise'; -export { OpenAPI, type OpenAPIConfig } from './core/OpenAPI'; +export * from './schemas.gen'; export * from './services.gen'; export * from './types.gen'; \ No newline at end of file diff --git a/js/src/sdk/client/schemas.gen.ts b/js/src/sdk/client/schemas.gen.ts new file mode 100644 index 00000000000..5767a5dc00a --- /dev/null +++ b/js/src/sdk/client/schemas.gen.ts @@ -0,0 +1,2171 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export const $MagicLinkResDTO = { + properties: { + status: { + type: 'string' + } + }, + type: 'object', + required: ['status'] +} as const; + +export const $MagicLinkReqDTO = { + properties: { + email: { + format: 'email', + type: 'string', + description: 'The email of the user', + examples: ['john.doe@example.com', 'jane.doe@example.com'] + }, + verifyHost: { + type: 'string', + description: 'The frontend host of the user', + examples: ['https://app.composio.dev', 'https://localhost:3000'] + } + }, + type: 'object', + required: ['email', 'verifyHost'] +} as const; + +export const $LogoutResDTO = { + properties: { + message: { + type: 'string', + description: 'Message confirming the logout', + examples: ['Logout successful'] + } + }, + type: 'object', + required: ['message'] +} as const; + +export const $VerifyMagicLinkReqDTO = { + properties: { + token: { + type: 'string', + description: 'The magic link token', + examples: ['token123', 'token456'] + } + }, + type: 'object', + required: ['token'] +} as const; + +export const $VerifyMagicLinkDataDTO = { + properties: { + clientId: { + type: 'string' + }, + isValid: { + type: 'boolean' + }, + jwtToken: { + type: 'string' + }, + email: { + type: 'string', + format: 'email' + } + }, + type: 'object', + required: ['clientId', 'isValid', 'jwtToken', 'email'] +} as const; + +export const $VerifyMagicLinkResDTO = { + properties: { + message: { + type: 'string', + description: 'Message indicating the result of the verification', + examples: ['Verification successful', 'Invalid or expired token'] + }, + data: { + '$ref': '#/components/schemas/VerifyMagicLinkDataDTO', + description: 'Data containing client and token information if verification is successful' + } + }, + type: 'object', + required: ['message'] +} as const; + +export const $IdentifyClientReqDTO = { + properties: { + hash: { + type: 'string', + description: 'The hash of the client', + examples: ['123abc', '456def'] + }, + framework: { + type: 'string', + description: 'The framework used by the client', + examples: ['autogen', 'langchain'] + } + }, + type: 'object', + required: ['hash'] +} as const; + +export const $IdentifyClientResDTO = { + properties: { + clientId: { + type: 'string', + description: 'The client ID', + examples: ['550e8400-e29b-41d4-a716-446655440000', '123e4567-e89b-12d3-a456-426614174000'] + }, + apiKey: { + type: 'string', + description: 'The API key associated with the client', + examples: ['apiKey123', 'apiKey456'] + } + }, + type: 'object', + required: ['clientId', 'apiKey'] +} as const; + +export const $UserGitUserInfo = { + properties: { + name: { + type: 'string' + }, + email: { + format: 'email', + type: 'string' + } + }, + type: 'object', + required: ['email'] +} as const; + +export const $TrackClientReqDTO = { + properties: { + framework: { + type: 'string', + description: 'The framework used by the client', + examples: ['React', 'Vue', 'Angular'] + }, + mac_address: { + type: 'string', + description: 'The MAC address of the client device', + examples: ['00:1A:2B:3C:4D:5E', '00:1B:2C:3D:4E:5F'] + }, + user_git_user_info: { + '$ref': '#/components/schemas/UserGitUserInfo', + description: 'User Git information', + examples: [ + { + name: 'John Doe', + email: 'john.doe@example.com' + } + ] + } + }, + type: 'object', + required: ['framework'] +} as const; + +export const $TrackClientResDTO = { + properties: { + message: { + type: 'string', + description: 'Message indicating the result of the tracking operation', + examples: ['Already tracked', 'Event tracked successfully', 'Event not tracked for this user'] + } + }, + type: 'object', + required: ['message'] +} as const; + +export const $DeleteRowAPIDTO = { + properties: { + status: { + type: 'string', + description: 'Status of the delete operation', + examples: ['success', 'failed'] + }, + count: { + type: 'number', + description: 'Number of records deleted', + examples: [1] + } + }, + type: 'object', + required: ['status', 'count'] +} as const; + +export const $InviteMemberReqDTO = { + properties: { + email: { + format: 'email', + type: 'string', + description: 'The email of the member', + examples: ['user@example.com'] + }, + name: { + type: 'string', + description: 'The name of the member', + examples: ['John Doe'] + }, + verifyHost: { + type: 'string', + description: 'The host to verify the member', + examples: ['https://app.composio.dev', 'https://localhost:3000'] + } + }, + type: 'object', + required: ['email', 'name', 'verifyHost'] +} as const; + +export const $MemberResDTO = { + properties: { + email: { + type: 'string', + description: 'The email of the member', + examples: ['user@example.com'] + }, + id: { + type: 'string', + description: 'The uuid identifier for the member', + examples: ['123e4567-e89b-12d3-a456-426655440000'] + }, + name: { + type: 'string', + description: 'The name of the member', + examples: ['John Doe'] + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The creation date of the member record', + examples: ['2021-01-01T00:00:00.000Z'] + }, + updatedAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The last update date of the member record', + examples: ['2021-01-02T00:00:00.000Z'] + } + }, + type: 'object', + required: ['email', 'id', 'name'] +} as const; + +export const $GenerateAPIKeyReqDTO = { + properties: { + name: { + type: 'string', + description: 'The name of the API key to be generated', + examples: ['primary', 'secondary'] + } + }, + type: 'object', + required: ['name'] +} as const; + +export const $APIKeyResDTO = { + properties: { + id: { + type: 'string', + description: 'The ID of the API key', + examples: ['id123', 'id456'] + }, + name: { + type: 'string', + description: 'The name of the API key', + examples: ['primary', 'secondary'] + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The creation date of the API key', + examples: ['2023-01-01T00:00:00.000Z'] + }, + updatedAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The last update date of the API key', + examples: ['2023-01-02T00:00:00.000Z'] + }, + key: { + type: 'string', + description: 'The generated API key', + examples: ['apiKey123', 'apiKey456'] + } + }, + type: 'object', + required: ['id', 'name', 'createdAt', 'updatedAt', 'key'] +} as const; + +export const $DeleteAPIKeyReqDTO = { + properties: { + id: { + type: 'string', + description: 'The ID of the API key to be deleted', + examples: ['id123', 'id456'] + } + }, + type: 'object', + required: ['id'] +} as const; + +export const $SingleAppInfoResDTO = { + properties: { + appId: { + type: 'string', + description: 'The unique identifier for the app' + }, + key: { + type: 'string', + description: 'The key of the app' + }, + name: { + type: 'string', + description: 'The name of the app' + }, + description: { + type: 'string', + description: 'The description of the app' + }, + logo: { + type: 'string', + description: 'The logo of the app' + }, + categories: { + items: { + type: 'string' + }, + type: 'array', + description: 'The categories of the app' + }, + path: { + type: 'string', + description: 'The path of the app' + }, + docs: { + type: 'string', + description: 'The documentation URL of the app' + }, + configuration_docs_text: { + type: 'string', + description: 'The configuration documentation text of the app' + }, + status: { + type: 'string', + description: 'The status of the app' + }, + documentation_doc_text: { + type: 'string', + description: 'The documentation text of the app' + }, + testConnectors: { + items: {}, + type: 'array', + description: 'The test connectors of the app' + }, + no_auth: { + type: 'boolean', + description: 'Indicates if the app has no authentication' + }, + auth_schemes: { + items: {}, + type: 'array', + description: 'The authentication schemes of the app' + }, + meta: { + description: 'The metadata of the app' + }, + yaml: { + description: 'The yaml of the app' + } + }, + type: 'object', + required: ['appId', 'key', 'name', 'description'] +} as const; + +export const $AddToolsReqDTO = { + properties: { + name: { + type: 'string', + description: 'The name of the tool' + }, + openApiSpecYaml: { + type: 'string', + description: 'The OpenAPI specification in YAML format' + }, + integrationYaml: { + type: 'string', + description: 'The integration details in YAML format' + } + }, + type: 'object', + required: ['name', 'openApiSpecYaml', 'integrationYaml'] +} as const; + +export const $OpenAPISpecListResDTO = { + properties: { + id: { + type: 'string', + description: 'Unique identifier for the OpenAPI spec' + }, + name: { + type: 'string', + description: 'Name of the OpenAPI spec' + }, + clientId: { + type: 'string', + description: 'Client identifier' + }, + openApiSpec: { + type: 'string', + description: 'OpenAPI specification in YAML format' + }, + integrationYaml: { + type: 'string', + description: 'Integration details in YAML format' + }, + enabled: { + type: 'boolean', + description: 'Whether the OpenAPI spec is enabled' + }, + openAPISpecURL: { + type: 'string', + description: 'URL to the OpenAPI specification', + format: 'uri', + nullable: true + }, + integrationYAMLURL: { + type: 'string', + description: 'URL to the integration YAML', + format: 'uri', + nullable: true + }, + lastSyncAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'Last synchronization date and time', + format: 'date-time' + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'Creation date and time', + format: 'date-time' + }, + updatedAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'Last update date and time', + format: 'date-time' + }, + jobStatus: { + enum: ['running', 'success', 'failed'], + type: 'string', + description: 'The job status of the app' + } + }, + type: 'object', + required: ['id', 'name', 'clientId', 'openApiSpec', 'integrationYaml', 'enabled', 'lastSyncAt', 'createdAt', 'updatedAt'] +} as const; + +export const $AddRepoURLResDTO = { + properties: { + repoUrl: { + type: 'string', + description: 'Repository URL' + } + }, + type: 'object', + required: ['repoUrl'] +} as const; + +export const $DeleteToolsReqDTO = { + properties: { + name: { + type: 'string', + description: 'Name of the tool' + } + }, + type: 'object', + required: ['name'] +} as const; + +export const $DeleteToolsResDTO = { + properties: { + message: { + type: 'string', + description: 'Message indicating successful deletion of tools' + } + }, + type: 'object', + required: ['message'] +} as const; + +export const $AddToolsRequestDTO = { + properties: { + name: { + type: 'string', + description: 'The name of the tool' + }, + open_api_spec_yaml: { + type: 'string', + description: 'The OpenAPI specification in YAML format' + }, + integration_yaml: { + type: 'string', + description: 'The integration details in YAML format' + } + }, + type: 'object', + required: ['name', 'open_api_spec_yaml', 'integration_yaml'] +} as const; + +export const $AddRepoURLReqDTO = { + properties: { + repoUrl: { + type: 'string', + description: 'Repository URL' + } + }, + type: 'object', + required: ['repoUrl'] +} as const; + +export const $AppQueryDTO = { + properties: { + category: { + type: 'string', + description: 'Category of the app', + examples: ['popular', 'crm', 'devtools'] + } + }, + type: 'object' +} as const; + +export const $AppInfoResponseDto = { + properties: { + appId: { + type: 'string', + description: 'The ID of the app' + }, + key: { + type: 'string', + description: 'The key of the app' + }, + name: { + type: 'string', + description: 'The name of the app' + }, + description: { + type: 'string', + description: 'The description of the app' + }, + logo: { + type: 'string', + description: 'The logo of the app' + }, + categories: { + items: {}, + type: 'string', + description: 'The categories of the app' + }, + enabled: { + type: 'boolean', + description: 'Indicates if the app is enabled' + }, + noAuth: { + type: 'boolean', + description: 'Indicates if the app has no authentication' + } + }, + type: 'object', + required: ['appId', 'key', 'name', 'description', 'logo', 'categories', 'enabled'] +} as const; + +export const $AppListResDTO = { + properties: { + items: { + items: { + '$ref': '#/components/schemas/AppInfoResponseDto' + }, + type: 'array', + description: 'List of app details' + }, + totalPages: { + type: 'number', + description: 'Total number of pages' + } + }, + type: 'object', + required: ['items', 'totalPages'] +} as const; + +export const $GetConnectorInfoResDTO = { + properties: { + id: { + type: 'string', + description: 'Unique identifier of the connector', + examples: ['connector123'] + }, + authScheme: { + type: 'string', + description: 'Authentication scheme used by the connector', + examples: ['OAuth2', 'APIKey'] + }, + name: { + type: 'string', + description: 'Name of the connector', + examples: ['MyConnector'] + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'Creation date of the connector', + examples: ['2021-07-21T17:32:28Z'] + }, + updatedAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'Last update date of the connector', + examples: ['2021-08-21T17:32:28Z'] + }, + enabled: { + type: 'boolean', + description: 'Flag to indicate if the connector is currently enabled', + examples: [true, false] + }, + deleted: { + type: 'boolean', + description: 'Flag to indicate if the connector has been deleted', + examples: [true, false, null] + }, + appId: { + type: 'string', + description: 'Application ID associated with the connector', + examples: ['app123', 'app456'] + }, + defaultConnectorId: { + type: 'string', + description: 'Default connector ID if one exists', + examples: ['connector987', 'connector654', null] + }, + authConfig: { + type: 'object', + description: 'Authentication configuration with sensitive data obscured' + }, + expectedInputFields: { + items: { + type: 'string' + }, + type: 'array', + description: 'List of required fields expected from the customer', + examples: ['field1', 'field2'] + }, + logo: { + type: 'string', + description: 'Logo URL of the application associated with the connector', + examples: ['https://example.com/logo.png'] + }, + appName: { + type: 'string', + description: 'Name of the application associated with the connector', + examples: ['MyApp'] + }, + useComposioAuth: { + type: 'boolean', + description: 'Flag to indicate if Composio authentication is used', + examples: [true, false] + } + }, + type: 'object', + required: ['enabled', 'appId', 'authConfig', 'expectedInputFields', 'logo', 'appName', 'useComposioAuth'] +} as const; + +export const $AuthConfigDTO = { + properties: { + scopes: { + items: { + type: 'string' + }, + type: 'array' + }, + user_scopes: { + items: { + type: 'string' + }, + type: 'array' + } + }, + type: 'object' +} as const; + +export const $CreateConnectorPayloadDTO = { + properties: { + name: { + type: 'string', + description: 'Name of the connector', + examples: ['MyConnector'] + }, + authScheme: { + type: 'string', + description: 'Authentication scheme', + examples: ['OAuth2', 'APIKey'] + }, + authConfig: { + '$ref': '#/components/schemas/AuthConfigDTO', + description: 'Authentication configuration' + }, + useComposioAuth: { + type: 'boolean', + description: 'Flag to indicate if Composio authentication should be used', + examples: [true, false], + anyOf: [ + { + type: 'boolean' + } + ] + }, + appId: { + type: 'string', + description: 'Application ID', + examples: ['appId123'] + }, + forceNewIntegration: { + type: 'boolean', + description: 'Flag to force new integration', + examples: [true, false] + } + }, + type: 'object', + required: ['name', 'appId'] +} as const; + +export const $PatchConnectorReqDTO = { + properties: { + authConfig: { + type: 'object', + description: 'Authentication configuration for the connector', + examples: [ + { + key: 'value' + } + ] + }, + enabled: { + type: 'boolean', + description: 'Flag to indicate if the connector is enabled', + examples: [true, false] + } + }, + type: 'object' +} as const; + +export const $PatchConnectorResDTO = { + properties: { + status: { + type: 'string', + description: 'Status of the patch operation', + examples: ['success'] + } + }, + type: 'object', + required: ['status'] +} as const; + +export const $ConnectorListItemDTO = { + properties: { + appName: { + type: 'string', + description: 'Application name associated with the connector', + examples: ['MyApp'] + }, + _count: { + type: 'object', + description: 'Count of connections for the connector', + examples: [ + { + connections: 5 + } + ] + }, + connections: { + items: {}, + type: 'array', + description: 'List of connections with their details and request logs count', + examples: [ + { + id: 'conn1', + _count: { + requestLogs: 10 + } + } + ] + }, + id: { + type: 'string', + description: 'Unique identifier of the connector', + examples: ['connector123'] + }, + name: { + type: 'string', + description: 'Name of the connector', + examples: ['MyConnector'] + }, + authScheme: { + type: 'string', + description: 'Authentication scheme used by the connector', + examples: ['OAuth2'] + }, + createdAt: { + oneOf: [ + { + format: 'date', + type: 'string' + }, + { + format: 'date-time', + type: 'string' + } + ], + description: 'Creation date of the connector', + examples: ['2024-08-13T03:09:15.422Z'] + }, + updatedAt: { + oneOf: [ + { + format: 'date', + type: 'string' + }, + { + format: 'date-time', + type: 'string' + } + ], + description: 'Last update date of the connector', + examples: ['2024-08-13T03:09:15.422Z'] + }, + enabled: { + type: 'boolean', + description: 'Flag to indicate if the connector is enabled', + examples: [true, false] + }, + deleted: { + type: 'boolean', + description: 'Flag to indicate if the connector is deleted', + examples: [ + null, + true + ] + }, + appId: { + type: 'string', + description: 'App ID associated with the connector', + examples: ['appId123'] + }, + defaultConnectorId: { + type: 'string', + description: 'Default connector ID if available', + examples: [ + null, + 'defaultConn123' + ] + } + }, + type: 'object', + required: ['appName', '_count', 'connections', 'id', 'name', 'authScheme', 'createdAt', 'updatedAt', 'enabled', 'appId'] +} as const; + +export const $GetConnectorListResDTO = { + properties: { + items: { + items: {}, + type: 'array', + description: 'List of connectors' + }, + totalPages: { + type: 'number', + description: 'Total number of pages available' + }, + page: { + type: 'number', + description: 'Current page number' + } + }, + type: 'object', + required: ['items', 'totalPages', 'page'] +} as const; + +export const $PageInfo = { + properties: { + total: { + minimum: 0, + type: 'integer' + }, + page: { + minimum: 1, + type: 'integer' + }, + pageSize: { + minimum: 1, + type: 'integer' + }, + totalPages: { + minimum: 1, + type: 'integer' + } + }, + type: 'object', + required: ['total', 'page', 'pageSize', 'totalPages'] +} as const; + +export const $ConnectionWithAppData = { + properties: { + id: { + type: 'string' + }, + integrationId: { + type: 'string' + }, + clientUniqueUserId: { + type: 'string' + }, + status: { + type: 'string' + }, + data: { + type: 'object' + }, + deleted: { + type: 'boolean' + }, + enabled: { + type: 'boolean' + }, + createdAt: { + oneOf: [ + { + format: 'date', + type: 'string' + }, + { + format: 'date-time', + type: 'string' + } + ] + }, + updatedAt: { + oneOf: [ + { + format: 'date', + type: 'string' + }, + { + format: 'date-time', + type: 'string' + } + ] + }, + appUniqueId: { + type: 'string' + }, + appName: { + type: 'string' + }, + logo: { + type: 'string' + }, + authConfig: { + type: 'object' + } + }, + type: 'object', + required: ['id', 'integrationId', 'status', 'createdAt', 'updatedAt', 'appUniqueId', 'appName'] +} as const; + +export const $GetConnectionsResult = { + properties: { + connections: { + items: { + '$ref': '#/components/schemas/ConnectionWithAppData' + }, + type: 'array' + }, + pageInfo: { + '$ref': '#/components/schemas/PageInfo' + } + }, + type: 'object', + required: ['connections', 'pageInfo'] +} as const; + +export const $ActionExecutionServiceResDTO = { + properties: { + response_data: { + type: 'boolean' + }, + execution_details: { + type: 'object' + } + }, + type: 'object', + required: ['response_data', 'execution_details'] +} as const; + +export const $ToolsExecuteReqDto = { + properties: { + actionName: { + type: 'string' + }, + runInSandbox: { + type: 'boolean' + }, + input: { + type: 'object' + }, + nlaInput: { + type: 'string' + }, + authorizationData: { + type: 'object' + }, + appSchema: { + type: 'object' + } + }, + type: 'object', + required: ['actionName', 'runInSandbox', 'input'] +} as const; + +export const $DirectExecuteReqDto = { + properties: { + endpoint: { + type: 'string' + }, + base_url: { + type: 'string' + }, + headers: { + type: 'object' + }, + queryParams: { + type: 'object' + } + }, + type: 'object', + required: ['endpoint', 'base_url', 'headers', 'queryParams'] +} as const; + +export const $ActionExecutionResDto = { + properties: { + response_data: { + type: 'object' + }, + status: { + enum: ['success', 'error'], + type: 'string' + }, + upstreamStatusCode: { + type: 'number' + } + }, + type: 'object', + required: ['response_data', 'status', 'upstreamStatusCode'] +} as const; + +export const $ActionExecutionReqDTO = { + properties: { + connectedAccountId: { + type: 'string' + }, + appName: { + type: 'string' + }, + entityId: { + type: 'string' + }, + endpoint: { + type: 'string' + }, + input: { + type: 'object' + }, + text: { + type: 'string' + } + }, + type: 'object' +} as const; + +export const $ActionExecutionResDTO = { + properties: { + connectedAccountId: { + type: 'string' + }, + appName: { + type: 'string' + }, + entityId: { + type: 'string' + }, + endpoint: { + type: 'string' + }, + input: { + type: 'object' + }, + text: { + type: 'string' + } + }, + type: 'object' +} as const; + +export const $ActionDetails = { + properties: { + appId: { + type: 'string' + }, + appKey: { + type: 'string' + }, + appName: { + type: 'string' + }, + description: { + type: 'string' + }, + displayName: { + type: 'string' + }, + enabled: { + type: 'boolean' + }, + logo: { + type: 'string' + }, + name: { + type: 'string' + }, + parameters: { + type: 'object' + }, + response: { + type: 'object' + }, + tags: { + items: { + type: 'string' + }, + type: 'array' + } + }, + type: 'object', + required: ['appKey', 'appName', 'description', 'displayName', 'enabled', 'logo', 'name', 'parameters', 'response', 'tags'] +} as const; + +export const $ActionsListResponseDTO = { + properties: { + items: { + items: { + '$ref': '#/components/schemas/ActionDetails' + }, + type: 'array' + }, + page: { + type: 'number' + }, + totalPages: { + type: 'number' + } + }, + type: 'object', + required: ['items', 'page', 'totalPages'] +} as const; + +export const $ExecuteActionResDTO = { + properties: { + response_data: { + type: 'object' + }, + status: { + enum: ['success', 'error'], + type: 'string' + }, + upstreamStatusCode: { + type: 'number' + } + }, + type: 'object', + required: ['response_data', 'status', 'upstreamStatusCode'] +} as const; + +export const $ActionsQueryDTO = { + properties: { + appNames: { + type: 'string', + description: 'Names of the apps' + }, + useCase: { + type: 'string', + description: 'Use case' + }, + showEnabledOnly: { + type: 'boolean', + description: 'Show enabled only' + }, + limit: { + type: 'number', + description: 'Limit' + }, + apps: { + type: 'string' + }, + actions: { + type: 'string' + }, + tags: { + type: 'string' + }, + usecaseLimit: { + type: 'number' + }, + filterImportantActions: { + type: 'boolean' + }, + showAll: { + type: 'boolean' + } + }, + type: 'object' +} as const; + +export const $ActionsControllerV1 = { + properties: { + getAction: { + items: {}, + type: 'array' + } + }, + type: 'object', + required: ['getAction'] +} as const; + +export const $ConnectionParams = { + properties: { + integrationId: { + type: 'string' + }, + connectionParams: { + type: 'object' + }, + isDisabled: { + type: 'boolean' + }, + invocationCount: { + type: 'number' + }, + id: { + type: 'string' + }, + clientUniqueUserId: { + type: 'string' + }, + status: { + type: 'string' + }, + data: { + type: 'object' + }, + deleted: { + type: 'boolean' + }, + enabled: { + type: 'boolean' + }, + createdAt: { + oneOf: [ + { + format: 'date', + type: 'string' + }, + { + format: 'date-time', + type: 'string' + } + ] + }, + updatedAt: { + oneOf: [ + { + format: 'date', + type: 'string' + }, + { + format: 'date-time', + type: 'string' + } + ] + }, + appUniqueId: { + type: 'string' + }, + appName: { + type: 'string' + }, + logo: { + type: 'string' + }, + authConfig: { + type: 'object' + } + }, + type: 'object', + required: ['integrationId', 'isDisabled', 'invocationCount', 'id', 'status', 'createdAt', 'updatedAt', 'appUniqueId', 'appName'] +} as const; + +export const $GetConnectionsResponseDto = { + properties: { + items: { + items: { + '$ref': '#/components/schemas/ConnectionParams' + }, + type: 'array' + }, + totalPages: { + type: 'number' + }, + page: { + type: 'number' + } + }, + type: 'object', + required: ['items', 'totalPages', 'page'] +} as const; + +export const $GetConnectionsQueryDto = { + properties: { + page: { + type: 'number' + }, + pageSize: { + type: 'number' + }, + appNames: {}, + integrationId: { + type: 'string' + }, + connectionId: { + type: 'string' + }, + user_uuid: { + type: 'string' + }, + showActiveOnly: { + type: 'boolean' + }, + status: { + type: 'string' + }, + showDisabled: { + type: 'boolean' + } + }, + type: 'object' +} as const; + +export const $InitiateConnectionPayloadDto = { + properties: { + data: { + type: 'string', + minLength: 1 + }, + integrationId: { + minLength: 1, + type: 'string' + }, + redirectUri: { + type: 'string' + }, + userUuid: { + type: 'string' + } + }, + type: 'object', + required: ['integrationId'] +} as const; + +export const $InitiateConnectionResponse = { + properties: { + connectionStatus: { + minLength: 1, + type: 'string' + }, + connectedAccountId: { + minLength: 1, + type: 'string' + } + }, + type: 'object', + required: ['connectionStatus', 'connectedAccountId'] +} as const; + +export const $OAuth2CallbackQueryDto = { + properties: { + state: { + type: 'string' + } + }, + type: 'object', + required: ['state'] +} as const; + +export const $RedirectUriDTO = { + properties: { + redirectUri: { + type: 'string' + } + }, + type: 'object', + required: ['redirectUri'] +} as const; + +export const $ListTriggersQueryDTO = { + properties: { + appNames: { + type: 'string', + description: 'Names of the apps' + }, + connectedAccountIds: { + type: 'string', + description: 'IDs of the connected accounts' + }, + triggerIds: { + type: 'string', + description: 'IDs of the triggers' + }, + showEnabledOnly: { + type: 'boolean', + description: 'Show enabled only' + } + }, + type: 'object' +} as const; + +export const $GetActiveTriggersQueryDTO = { + properties: { + connectedAccountIds: { + type: 'string', + description: 'IDs of the connected accounts' + }, + integrationIds: { + type: 'string', + description: 'IDs of the integrations' + }, + triggerIds: { + type: 'string', + description: 'IDs of the triggers' + }, + triggerNames: { + type: 'string', + description: 'Names of the triggers' + }, + page: { + type: 'number', + description: 'Page number' + }, + limit: { + type: 'number', + description: 'Limit per page' + }, + showDisabled: { + type: 'boolean', + description: 'Show disabled triggers' + } + }, + type: 'object' +} as const; + +export const $GetLogsQueryDTO = { + properties: { + connectionId: { + type: 'string', + description: 'ID of the connection' + }, + integrationId: { + type: 'string', + description: 'ID of the integration' + }, + page: { + type: 'number', + description: 'Page number' + }, + limit: { + type: 'number', + description: 'Limit per page' + } + }, + type: 'object' +} as const; + +export const $TriggerResDTO = { + properties: { + name: { + type: 'string', + description: 'Trigger name' + }, + display_name: { + type: 'string', + description: 'Trigger display name' + }, + description: { + type: 'string', + description: 'Trigger description' + }, + enabled: { + type: 'boolean', + description: 'Is trigger enabled' + }, + config: { + type: 'object', + description: 'Trigger configuration' + }, + payload: { + type: 'object', + description: 'Trigger payload' + }, + logo: { + type: 'string', + description: 'Trigger logo URL' + }, + count: { + type: 'number', + description: 'Trigger count' + }, + appKey: { + type: 'string', + description: 'App key' + }, + appId: { + type: 'string', + description: 'App ID' + }, + appName: { + type: 'string', + description: 'App name' + }, + instructions: { + type: 'string', + description: 'Trigger instructions' + }, + type: { + type: 'string', + description: 'Trigger type' + } + }, + type: 'object', + required: ['name', 'display_name', 'appKey', 'appId', 'appName'] +} as const; + +export const $TriggerConfig = { + properties: { + repo: { + type: 'string', + description: 'Repository name' + }, + owner: { + type: 'string', + description: 'Repository owner' + } + }, + type: 'object', + required: ['repo', 'owner'] +} as const; + +export const $ActiveTriggerInstance = { + properties: { + id: { + type: 'string', + description: 'Trigger instance ID' + }, + connectionId: { + type: 'string', + description: 'Connected account ID' + }, + triggerName: { + type: 'string', + description: 'Trigger name' + }, + triggerData: { + type: 'string', + description: 'Trigger data' + }, + triggerConfig: { + '$ref': '#/components/schemas/TriggerConfig', + description: 'Trigger configuration' + }, + createdAt: { + type: 'string', + description: 'Created at timestamp', + format: 'date-time' + }, + updatedAt: { + type: 'string', + description: 'Updated at timestamp', + format: 'date-time' + }, + disabledAt: { + type: 'string', + description: 'Disabled at timestamp', + format: 'date-time', + nullable: true + } + }, + type: 'object', + required: ['connectionId', 'triggerName', 'triggerConfig', 'createdAt', 'updatedAt'] +} as const; + +export const $PageInfoDTO = { + properties: { + currentPage: { + type: 'number' + }, + perPage: { + type: 'number' + }, + totalPages: { + type: 'number' + } + }, + type: 'object', + required: ['currentPage', 'perPage', 'totalPages'] +} as const; + +export const $ActiveTriggersResDTO = { + properties: { + triggers: { + items: {}, + type: 'array' + }, + pageInfo: { + items: { + '$ref': '#/components/schemas/PageInfoDTO' + }, + type: 'array' + } + }, + type: 'object', + required: ['triggers', 'pageInfo'] +} as const; + +export const $TriggerLogsResDTO = { + properties: { + data: { + items: { + '$ref': '#/components/schemas/TriggerLogItemDTO' + }, + type: 'array' + }, + pageInfo: { + '$ref': '#/components/schemas/PageInfoDTO' + } + }, + type: 'object', + required: ['data', 'pageInfo'] +} as const; + +export const $TriggerLogItemDTO = { + properties: { + clientId: { + type: 'string', + description: 'Client ID' + }, + connectionId: { + type: 'string', + description: 'Connection ID' + }, + errorTrigger: { + type: 'string', + description: 'Error trigger', + nullable: true + }, + triggerClientError: { + type: 'string', + description: 'Trigger client error', + nullable: true + }, + triggerClientPayload: { + type: 'string', + description: 'Trigger client payload', + nullable: true + }, + triggerProviderPayload: { + type: 'string', + description: 'Trigger provider payload', + nullable: true + }, + triggerName: { + type: 'string', + description: 'Trigger name', + nullable: true + }, + id: { + type: 'string', + description: 'Log ID' + }, + appKey: { + type: 'string', + description: 'App key' + }, + createdAt: { + type: 'string', + description: 'Created at timestamp', + format: 'date-time' + } + }, + type: 'object', + required: ['clientId', 'connectionId', 'id', 'appKey', 'createdAt'] +} as const; + +export const $GenerateCLISessionReqDTO = { + properties: { + channel_name: { + type: 'string', + description: 'The channel name for the CLI session', + examples: ['general', 'development'] + } + }, + type: 'object', + required: ['channel_name'] +} as const; + +export const $LoginAccountAsAdminReqDTO = { + properties: { + email: { + type: 'string', + description: 'Email of the client', + examples: ['utkarshdix02@gmail.com'] + }, + apiKey: { + type: 'string', + description: 'API Key of the client', + examples: ['Xfhidushj312x21'] + }, + adminToken: { + type: 'string', + description: 'Admin token', + examples: ['Xfhidushj312x21'] + } + }, + type: 'object', + required: ['adminToken'] +} as const; + +export const $GenerateCLISessionResDTO = { + properties: { + key: { + type: 'string', + description: 'The key for the CLI session', + examples: ['550e8400-e29b-41d4-a716-446655440000', '123e4567-e89b-12d3-a456-426614174000'] + } + }, + type: 'object', + required: ['key'] +} as const; + +export const $GetCLISessionResDTO = { + properties: { + clientId: { + type: 'string', + description: 'The client ID', + examples: ['550e8400-e29b-41d4-a716-446655440000', '123e4567-e89b-12d3-a456-426614174000'] + }, + cliCode: { + type: 'string', + description: 'The CLI code', + examples: ['cliCode123', 'cliCode456'] + } + }, + type: 'object', + required: ['clientId', 'cliCode'] +} as const; + +export const $VerifyCLICodeResDTO = { + properties: { + clientId: { + type: 'string', + description: 'The client ID', + examples: ['550e8400-e29b-41d4-a716-446655440000', '123e4567-e89b-12d3-a456-426614174000'] + }, + cliCode: { + type: 'string', + description: 'The CLI code', + examples: ['cliCode123', 'cliCode456'] + }, + apiKey: { + type: 'string', + description: 'The API key associated with the client', + examples: ['apiKey123', 'apiKey456'] + } + }, + type: 'object', + required: ['clientId', 'cliCode', 'apiKey'] +} as const; + +export const $CLIQueryDTO = { + properties: { + key: { + type: 'string', + description: 'Unique key for CLI session', + examples: ['123e4567-e89b-12d3-a456-426614174000'] + }, + code: { + type: 'string', + description: 'Code for CLI verification', + examples: ['ABCD1234'] + } + }, + type: 'object', + required: ['key'] +} as const; + +export const $MetadataReqDTO = { + properties: { + email: { + type: 'string', + description: 'The email associated with the metadata request', + examples: ['user@example.com'] + }, + metadata: { + description: 'Additional metadata as a key-value pair', + examples: [ + { + key: 'value' + } + ] + } + }, + type: 'object', + required: ['email'] +} as const; + +export const $TriggersEnabledToggleReqDTO = { + properties: { + enabled: { + type: 'boolean', + description: 'Flag to enable or disable triggers', + examples: [true, false] + } + }, + type: 'object', + required: ['enabled'] +} as const; + +export const $TriggersEnabledToggleResDTO = { + properties: { + message: { + type: 'string', + description: 'Message indicating the result of the toggle operation', + examples: ['Triggers enabled successfully', 'Triggers disabled successfully'] + } + }, + type: 'object', + required: ['message'] +} as const; + +export const $MetadataQueryDTO = { + properties: { + email: { + type: 'string', + description: 'Email of the client', + examples: ['example@example.com'] + } + }, + type: 'object', + required: ['email'] +} as const; + +export const $TriggerMetadata = { + properties: { + id: { + type: 'string', + description: 'The unique id of the log', + examples: ['123e4567-e89b-12d3-a456-426655440000'] + }, + type: { + type: 'string', + description: 'The type of the log', + oneOf: [ + { + type: 'string', + enum: ['trigger'] + } + ] + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The date and time when the log was created', + format: 'date-time' + }, + updatedAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The date and time when the log was updated', + format: 'date-time' + }, + provider: { + type: 'string', + description: 'The provider of the log' + }, + clientId: { + type: 'string', + description: 'The client uuid of the log' + }, + connectionId: { + type: 'string', + description: 'The connection id of the log' + }, + triggerProviderPayload: { + type: 'string', + description: 'The trigger provider payload of the log' + }, + triggerClientPayload: { + type: 'string' + }, + triggerClientError: { + type: 'string', + description: 'The trigger client error of the log' + }, + triggerName: { + type: 'string', + description: 'The trigger name of the log' + }, + triggerClientResponse: { + type: 'string', + description: 'The trigger client response of the log' + } + }, + type: 'object', + required: ['id', 'type', 'createdAt', 'updatedAt', 'provider', 'clientId', 'connectionId'] +} as const; + +export const $ActionMetadata = { + properties: { + id: { + type: 'string', + description: 'The unique id of the log', + examples: ['123e4567-e89b-12d3-a456-426655440000'] + }, + request: { + type: 'string', + description: 'The request sent to the provider' + }, + response: { + type: 'string', + description: 'The response from the provider' + }, + errorRequest: { + type: 'string', + description: 'The error request sent to the provider' + }, + type: { + type: 'string', + description: 'The type of the log', + oneOf: [ + { + type: 'string', + enum: ['action'] + } + ] + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The date and time when the log was created', + format: 'date-time' + }, + updatedAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The date and time when the log was updated', + format: 'date-time' + }, + provider: { + type: 'string', + description: 'The provider of the log' + }, + clientId: { + type: 'string', + description: 'The client uuid of the log' + }, + connectionId: { + type: 'string', + description: 'The connection id of the log' + }, + actionName: { + type: 'string', + description: 'The action name of the log' + } + }, + type: 'object', + required: ['id', 'request', 'type', 'createdAt', 'updatedAt', 'provider', 'clientId', 'connectionId', 'actionName'] +} as const; + +export const $TriggerLogData = { + properties: { + id: { + type: 'string', + description: 'The unique identifier of the trigger log' + }, + connectionId: { + type: 'string', + description: 'The connection identifier associated with the trigger log' + }, + clientId: { + type: 'string', + description: 'The client identifier associated with the trigger log' + }, + status: { + type: 'string', + description: 'The status of the trigger log' + }, + appName: { + type: 'string', + description: 'The name of the application associated with the trigger log' + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The creation date and time of the trigger log', + format: 'date-time' + }, + type: { + type: 'string', + description: 'The type of the log', + oneOf: [ + { + type: 'string', + enum: ['trigger'] + } + ] + }, + meta: { + '$ref': '#/components/schemas/TriggerMetadata', + description: 'Metadata associated with the trigger log' + } + }, + type: 'object', + required: ['id', 'connectionId', 'clientId', 'status', 'appName', 'createdAt', 'type', 'meta'] +} as const; + +export const $ActionLogData = { + properties: { + id: { + type: 'string', + description: 'The unique identifier of the action log' + }, + connectionId: { + type: 'string', + description: 'The connection identifier associated with the action log' + }, + clientId: { + type: 'string', + description: 'The client identifier associated with the action log' + }, + status: { + type: 'string', + description: 'The status of the action log' + }, + appName: { + type: 'string', + description: 'The name of the application associated with the action log' + }, + createdAt: { + pattern: '\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?', + type: 'string', + description: 'The creation date and time of the action log', + format: 'date-time' + }, + type: { + type: 'string', + description: 'The type of the log', + oneOf: [ + { + type: 'string', + enum: ['action'] + } + ] + }, + meta: { + '$ref': '#/components/schemas/ActionMetadata', + description: 'Metadata associated with the action log' + } + }, + type: 'object', + required: ['id', 'connectionId', 'clientId', 'status', 'appName', 'createdAt', 'type', 'meta'] +} as const; + +export const $LogsResDTO = { + properties: { + nextCursor: { + type: 'string', + description: 'The cursor to get the next page of logs', + examples: ['123e4567-e89b-12d3-a456-426655440000'] + }, + data: { + items: {}, + type: 'array', + description: 'Logs data' + } + }, + type: 'object', + required: ['data'] +} as const; + +export const $GetLogsDTO = { + properties: { + type: { + enum: ['error', 'info', 'debug'], + type: 'string', + description: 'Type of the log', + examples: ['error', 'info', 'debug'] + }, + time: { + enum: ['30m', '6h', '1d', '1w', '1month', '1y'], + type: 'string', + description: 'Time interval for which data needs to be fetched', + examples: ['30m', '6h', '1d', '1w', '1month', '1y'] + }, + status: { + enum: ['pending', 'processed', 'failed'], + type: 'string', + description: 'Status of the log', + examples: ['pending', 'processed', 'failed'] + }, + search: { + type: 'string', + description: 'Search term in the log', + examples: ['error', 'user not found'] + }, + integrationId: { + type: 'string', + description: 'Integration UUID', + examples: ['123e4567-e89b-12d3-a456-426655440000'] + }, + limit: { + type: 'number', + description: 'Limit of the logs', + examples: [10], + default: 10 + }, + cursor: { + type: 'string', + description: 'Cursor for pagination', + examples: ['cursor123'] + }, + connectionId: { + type: 'string', + description: 'Connection ID of the log', + examples: ['connection123'] + } + }, + type: 'object' +} as const; \ No newline at end of file diff --git a/js/src/sdk/client/services.gen.ts b/js/src/sdk/client/services.gen.ts index baf47359068..b6f2b515ec9 100644 --- a/js/src/sdk/client/services.gen.ts +++ b/js/src/sdk/client/services.gen.ts @@ -1,437 +1,740 @@ // This file is auto-generated by @hey-api/openapi-ts -import type { CancelablePromise } from './core/CancelablePromise'; -import { OpenAPI } from './core/OpenAPI'; -import { request as __request } from './core/request'; -import type { ListAllAppsResponse, ListAllConnectionsData, ListAllConnectionsResponse, CreateConnectionData, CreateConnectionResponse, GetConnectedAccountData, GetConnectedAccountResponse, DeleteConnectionData, DeleteConnectionResponse, GetIntegrationData, GetIntegrationResponse, UpdateIntegrationData, UpdateIntegrationResponse, ListAllIntegrationsData, ListAllIntegrationsResponse, CreateIntegrationData, CreateIntegrationResponse, GetActionData, GetActionResponse, GetListActionsResponse, ExecuteActionData, ExecuteActionResponse, ListTriggersData, ListTriggersResponse, ListActiveTriggersData, ListActiveTriggersResponse, GetActiveTriggerData, GetActiveTriggerResponse, PatchUpdateActiveTriggerStatusData, PatchUpdateActiveTriggerStatusResponse, GetAppData, GetAppResponse, GetListActionsData, SetupTriggerData, SetupTriggerResponse } from './types.gen'; +import { createClient, createConfig, type Options } from '@hey-api/client-axios'; +import type { ClientAuthControllerIdentifyClientData, ClientAuthControllerIdentifyClientError, ClientAuthControllerIdentifyClientResponse, ClientAuthControllerTrackClientData, ClientAuthControllerTrackClientError, ClientAuthControllerTrackClientResponse, ClientAuthControllerSendMagicLinkData, ClientAuthControllerSendMagicLinkError, ClientAuthControllerSendMagicLinkResponse, ClientAuthControllerLogoutError, ClientAuthControllerLogoutResponse, ClientAuthControllerVerifyMagicLinkData, ClientAuthControllerVerifyMagicLinkError, ClientAuthControllerVerifyMagicLinkResponse, ClientAuthControllerGetUserInfoError, ClientAuthControllerGetUserInfoResponse, ClientAuthControllerPusherUserAuthData, ClientAuthControllerPusherUserAuthError, ClientAuthControllerPusherUserAuthResponse, ClientAuthControllerDeleteClientData, ClientAuthControllerDeleteClientError, ClientAuthControllerDeleteClientResponse, TeamControllerInviteMemberData, TeamControllerInviteMemberError, TeamControllerInviteMemberResponse, TeamControllerListMembersError, TeamControllerListMembersResponse, TeamControllerRemoveMemberData, TeamControllerRemoveMemberError, TeamControllerRemoveMemberResponse, ApiKeysControllerGenerateApiKeyData, ApiKeysControllerGenerateApiKeyError, ApiKeysControllerGenerateApiKeyResponse, ApiKeysControllerListApiKeysError, ApiKeysControllerListApiKeysResponse, ApiKeysControllerDeleteApiKeyData, ApiKeysControllerDeleteApiKeyError, ApiKeysControllerDeleteApiKeyResponse, AppControllerGetAppsData, AppControllerGetAppsError, AppControllerGetAppsResponse, AppControllerAddOpenApiSpecData, AppControllerAddOpenApiSpecError, AppControllerAddOpenApiSpecResponse, AppControllerGetOpenaApiSpecsError, AppControllerGetOpenaApiSpecsResponse, AppControllerDeleteOpenApiSpecToolData, AppControllerDeleteOpenApiSpecToolError, AppControllerDeleteOpenApiSpecToolResponse, AppControllerGetOpenApiSpecLogsData, AppControllerGetOpenApiSpecLogsError, AppControllerGetOpenApiSpecLogsResponse, AppControllerAddCustomRepoData, AppControllerAddCustomRepoError, AppControllerAddCustomRepoResponse, AppControllerGetAppData, AppControllerGetAppError, AppControllerGetAppResponse, AppControllerSyncAppsError, AppControllerSyncAppsResponse, AppControllerGetCustomRepoError, AppControllerGetCustomRepoResponse, AppConnectorControllerCreateConnectorData, AppConnectorControllerCreateConnectorError, AppConnectorControllerCreateConnectorResponse, AppConnectorControllerListGlobalConnectorsError, AppConnectorControllerListGlobalConnectorsResponse, AppConnectorControllerGetConnectorInfoData, AppConnectorControllerGetConnectorInfoError, AppConnectorControllerGetConnectorInfoResponse, AppConnectorControllerPatchConnectorData, AppConnectorControllerPatchConnectorError, AppConnectorControllerPatchConnectorResponse, AppConnectorControllerDeleteConnectorData, AppConnectorControllerDeleteConnectorError, AppConnectorControllerDeleteConnectorResponse, AppConnectorControllerPatchPostConnectorData, AppConnectorControllerPatchPostConnectorError, AppConnectorControllerPatchPostConnectorResponse, ActionsControllerV1ListActionsData, ActionsControllerV1ListActionsError, ActionsControllerV1ListActionsResponse, ActionsControllerV1ExecuteActionData, ActionsControllerV1ExecuteActionError, ActionsControllerV1ExecuteActionResponse, ActionsControllerV1ExecuteActionProxyData, ActionsControllerV1ExecuteActionProxyError, ActionsControllerV1ExecuteActionProxyResponse, ActionsControllerV1GetActionData, ActionsControllerV1GetActionError, ActionsControllerV1GetActionResponse, ConnectionsControllerGetConnectionsData, ConnectionsControllerGetConnectionsError, ConnectionsControllerGetConnectionsResponse, ConnectionsControllerInitiateConnectionData, ConnectionsControllerInitiateConnectionError, ConnectionsControllerInitiateConnectionResponse, ConnectionsControllerGetConnectionData, ConnectionsControllerGetConnectionError, ConnectionsControllerGetConnectionResponse, ConnectionsControllerDeleteConnectionData, ConnectionsControllerDeleteConnectionError, ConnectionsControllerDeleteConnectionResponse, ConnectionsControllerDisableConnectionData, ConnectionsControllerDisableConnectionError, ConnectionsControllerDisableConnectionResponse, ConnectionsControllerEnableConnectionData, ConnectionsControllerEnableConnectionError, ConnectionsControllerEnableConnectionResponse, AppLoginControllerHandleOauth2CallbackData, AppLoginControllerHandleOauth2CallbackError, AppLoginControllerHandleOauth2CallbackResponse, AppLoginControllerVerifyOauth2LoginData, AppLoginControllerVerifyOauth2LoginError, AppLoginControllerVerifyOauth2LoginResponse, TriggersControllerListTriggersData, TriggersControllerListTriggersError, TriggersControllerListTriggersResponse, TriggersControllerHandleTriggerData, TriggersControllerHandleTriggerError, TriggersControllerHandleTriggerResponse, TriggersControllerEnableTriggerData, TriggersControllerEnableTriggerError, TriggersControllerEnableTriggerResponse, TriggersControllerGetTriggerData, TriggersControllerGetTriggerError, TriggersControllerGetTriggerResponse, TriggersControllerGetActiveTriggersData, TriggersControllerGetActiveTriggersError, TriggersControllerGetActiveTriggersResponse, TriggersControllerSwitchTriggerInstanceStatusData, TriggersControllerSwitchTriggerInstanceStatusError, TriggersControllerSwitchTriggerInstanceStatusResponse, TriggersControllerSwitchPostTriggerInstanceStatusData, TriggersControllerSwitchPostTriggerInstanceStatusError, TriggersControllerSwitchPostTriggerInstanceStatusResponse, TriggersControllerDisableTriggerData, TriggersControllerDisableTriggerError, TriggersControllerDisableTriggerResponse, TriggersControllerDeleteTriggerData, TriggersControllerDeleteTriggerError, TriggersControllerDeleteTriggerResponse, TriggersControllerSetCallbackUrlData, TriggersControllerSetCallbackUrlError, TriggersControllerSetCallbackUrlResponse, TriggersControllerSetCallbackUrl1Data, TriggersControllerSetCallbackUrl1Error, TriggersControllerSetCallbackUrl1Response, TriggersControllerGetWebhookUrlError, TriggersControllerGetWebhookUrlResponse, TriggersControllerGetLogsData, TriggersControllerGetLogsError, TriggersControllerGetLogsResponse, TriggersControllerHandlePusherEventsData, TriggersControllerHandlePusherEventsError, TriggersControllerHandlePusherEventsResponse, AdminControllerSentryDnsError, AdminControllerSentryDnsResponse, CliControllerHandleCliCodeExchangeError, CliControllerHandleCliCodeExchangeResponse, CliControllerGetCliCodeData, CliControllerGetCliCodeError, CliControllerGetCliCodeResponse, CliControllerHandleCliCodeVerificationData, CliControllerHandleCliCodeVerificationError, CliControllerHandleCliCodeVerificationResponse, MetadataControllerGetMetadataData, MetadataControllerGetMetadataError, MetadataControllerGetMetadataResponse, MetadataControllerUpdateMetadataData, MetadataControllerUpdateMetadataError, MetadataControllerUpdateMetadataResponse, MetadataControllerToggleTriggerStateData, MetadataControllerToggleTriggerStateError, MetadataControllerToggleTriggerStateResponse, MetadataControllerGetToggleInfoError, MetadataControllerGetToggleInfoResponse, LogsControllerGetLogsData, LogsControllerGetLogsError, LogsControllerGetLogsResponse, ActionsControllerV2ListActionsData, ActionsControllerV2ListActionsError, ActionsControllerV2ListActionsResponse, ActionsControllerV2ExecuteActionData, ActionsControllerV2ExecuteActionError, ActionsControllerV2ExecuteActionResponse, ActionsControllerV2ExecuteActionProxyData, ActionsControllerV2ExecuteActionProxyError, ActionsControllerV2ExecuteActionProxyResponse } from './types.gen'; -/** - * List All Apps - * Retrieves a list of all available apps in the Composio platform. - * - * This endpoint allows clients to explore and discover the supported apps. It returns an array of app objects, each containing essential details such as the app's key, name, description, logo, categories, and unique identifier. - * - * Use this endpoint to build a catalog of available apps and provide your users with an overview of the apps they can integrate with. - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const listAllApps = (config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/apps' -}); }; +export const client = createClient(createConfig()); -/** - * Get a Specific App - * Retrieves details of a specific app in the Composio platform. - * @param data The data for the request. - * @param data.appKey The unique identifier of the app. - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const getApp = (data: GetAppData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/apps/{appKey}', - path: { - appKey: data.appKey - } -}); }; - -/** - * List All Connected Accounts - * Retrieves a list of all connected accounts in the Composio platform. - * - * It supports pagination and filtering based on various parameters such as app ID, integration ID, and connected ID. The response includes an array of connection objects, each containing details like the connector ID, connection parameters, status, creation/update timestamps, and associated app information. - * - * Use this endpoint to manage and monitor all active connections. - * @param data The data for the request. - * @param data.page Page number to fetch - * @param data.pageSize Page size to assume - * @param data.integrationId Filter by using specific Integration - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const listAllConnections = (data: ListAllConnectionsData = {}, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/connectedAccounts', - query: { - user_uuid: data.user_uuid, - appNames: data.appNames?.join(','), - page: data.page, - pageSize: data.pageSize, - integrationId: data.integrationId - } -}); }; - -/** - * Connect an Account - * Connect an account - * - * This endpoint allows you to connect an external app account with Composio. It requires the integration ID in the request body and returns the connection status, connection ID, and a redirect URL (if applicable) for completing the connection flow. - * - * Use this endpoint to initiate the process of connecting an external app for your end user. - * @param data The data for the request. - * @param data.requestBody - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const createConnection = (data: CreateConnectionData = {}, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'POST', - url: '/v1/connectedAccounts', - body: data.requestBody, - mediaType: 'application/json', - errors: { - 404: `{ - "message": "Connector not found" -}` - } -}); }; - -/** - * Get a Connected Account - * Retrieves details of a specific account connected to the Composio platform by providing its connected account ID. - * The response includes the integration ID, connection parameters (such as scope, base URL, client ID, token type, access token, etc.), connection ID, status, and creation/update timestamps. - * @param data The data for the request. - * @param data.connectedAccountId The unique identifier of the connection. - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const getConnectedAccount = (data: GetConnectedAccountData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/connectedAccounts/{connectedAccountId}', - path: { - connectedAccountId: data.connectedAccountId - }, - errors: { - 404: `{ - "message": "Connection not found or already deleted" -}` - } -}); }; - -/** - * Delete a Connected Account - * Remove a specific account from the Composio platform by providing its connection ID. Upon successful deletion, the response includes a status indicating the success of the operation. - * Use this endpoint to clean up unwanted connections for your end user and manage the connection lifecycle. - * @param data The data for the request. - * @param data.connectedAccountId The unique identifier of the connection. - * @param config The OpenAPI configuration. - * @returns unknown { - * "message": "Connection not found or already deleted" - * } - * @throws ApiError - */ -export const deleteConnection = (data: DeleteConnectionData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'DELETE', - url: '/v1/connectedAccounts/{connectedAccountId}', - path: { - connectedAccountId: data.connectedAccountId - }, - errors: { - 404: 'Not Found' - } -}); }; +export class ClientAuthService { + /** + * Identify client + */ + public static identifyClient(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/client/auth/identify' + }); + } + + /** + * Track client + */ + public static trackClient(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/client/auth/track' + }); + } + + /** + * Send magic link + */ + public static sendMagicLink(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/client/auth/send_magic_link' + }); + } + + /** + * Logout API + * Logout the user and clear the server side session + */ + public static logout(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/client/auth/logout' + }); + } + + /** + * Verify magic link + */ + public static verifyMagicLink(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/client/auth/verify_magic_link' + }); + } + + /** + * Get user info + */ + public static getUserInfo(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/client/auth/client_info' + }); + } + + /** + * Pusher user auth + */ + public static pusherUserAuth(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/client/auth/pusher_auth' + }); + } + + /** + * Delete client + */ + public static deleteClient(options: Options) { + return (options?.client ?? client).delete({ + ...options, + url: '/api/v1/client/auth/delete/{clientId}' + }); + } + +} -/** - * Get an Integration - * Retrieves details of a specific integration in the Composio platform by providing its unique identifier. The response includes the connector's name, authentication scheme, authentication configuration, creation and update timestamps, enabled status, associated app information, expected input fields, and logo. - * - * Use this endpoint to obtain detailed information about a integration and its configuration. It can be shown to end user for selection. - * - * You will also get parameters that are required to be captured from end user to connect an account using this connector. - * ex. API Key or subdomain URL. - * - * If the end-user selects this flow, collect the parameters and connect an account using it. - * @param data The data for the request. - * @param data.integrationId The unique identifier of the integration. - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const getIntegration = (data: GetIntegrationData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/integrations/{integrationId}', - path: { - integrationId: data.integrationId - }, - errors: { - 404: 'Not Found' - } -}); }; +export class TeamService { + /** + * Invite member + */ + public static inviteMember(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/team/invite' + }); + } + + /** + * List members + */ + public static listMembers(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/team/members' + }); + } + + /** + * Remove member + */ + public static removeMember(options: Options) { + return (options?.client ?? client).delete({ + ...options, + url: '/api/v1/team/members/{id}' + }); + } + +} -/** - * Update an Integration - * Updates the settings of a specific integration in the Composio platform. - * - * This endpoint allows you to modify the settings of a integration, such as enabling or disabling it, by providing its unique identifier. The request body should include the updated settings, and the response indicates the success of the update operation. - * - * Use this endpoint to manage the configuration and behavior of integrations in the Composio platform. - * @param data The data for the request. - * @param data.integrationId The unique identifier of the integration. - * @param data.requestBody - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const updateIntegration = (data: UpdateIntegrationData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'PATCH', - url: '/v1/integrations/{integrationId}', - path: { - integrationId: data.integrationId - }, - body: data.requestBody, - mediaType: 'application/json', - errors: { - 404: 'Not Found' - } -}); }; +export class ApiKeysService { + /** + * Generate api key + */ + public static generateApiKey(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/api_keys' + }); + } + + /** + * List api keys + */ + public static listApiKeys(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/api_keys' + }); + } + + /** + * Delete api key + */ + public static deleteApiKey(options: Options) { + return (options?.client ?? client).delete({ + ...options, + url: '/api/v1/api_keys/{id}' + }); + } + +} -/** - * List All Integrations - * Retrieves a list of all integrations in the Composio platform. It supports pagination to handle large numbers of connectors. The response includes an array of connector objects, each containing information such as the connector's ID, name, authentication scheme, creation/update timestamps, enabled status, associated app information, and logo. - * - * This are the integration you can showcase to end user, and let them select which integration they want to connect an account with. - * @param data The data for the request. - * @param data.page Page number to fetch - * @param data.pageSize Page Size to assume - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const listAllIntegrations = (data: ListAllIntegrationsData = {}, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/integrations', - query: { - page: data.page, - pageSize: data.pageSize - } -}); }; +export class AppService { + /** + * Get apps + * Retrieve a list of all applications based on query parameters. + */ + public static getApps(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/apps' + }); + } + + /** + * Add open api spec + * Add openapi spec tool + */ + public static addOpenApiSpec(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/apps/openapi/spec/add' + }); + } + + /** + * Get opena api specs + */ + public static getOpenaApiSpecs(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/apps/openapi/spec/list' + }); + } + + /** + * Delete open api spec tool + */ + public static deleteOpenApiSpecTool(options?: Options) { + return (options?.client ?? client).delete({ + ...options, + url: '/api/v1/apps/openapi/spec/delete' + }); + } + + /** + * Get open api spec logs + */ + public static getOpenApiSpecLogs(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/apps/openapi/spec/logs/{name}' + }); + } + + /** + * Add custom repo + */ + public static addCustomRepo(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/apps/custom-repo/add-repo' + }); + } + + /** + * Get app + * Get app details + */ + public static getApp(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/apps/{appName}' + }); + } + + /** + * Sync apps + * Sync custom repo + */ + public static syncApps(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/apps/sync' + }); + } + + /** + * Get custom repo + * Get custom repo + */ + public static getCustomRepo(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/apps/custom-repo/get-repo' + }); + } + +} -/** - * Create a new integration - * This endpoint allows you to add a new integration by providing the necessary details such as the integration name, authentication scheme, associated app ID, and authentication configuration. Upon successful creation, the response includes the newly created connector object. - * @param data The data for the request. - * @param data.requestBody - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const createIntegration = (data: CreateIntegrationData = {}, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'POST', - url: '/v1/integrations', - body: data.requestBody, - mediaType: 'application/json', - errors: { - 400: 'Bad Request' - } -}); }; +export class AppConnectorService { + /** + * Create connector + */ + public static createConnector(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/integrations' + }); + } + + /** + * List global connectors + */ + public static listGlobalConnectors(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/integrations' + }); + } + + /** + * Get connector info + */ + public static getConnectorInfo(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/integrations/{integrationId}' + }); + } + + /** + * Patch connector + */ + public static patchConnector(options: Options) { + return (options?.client ?? client).patch({ + ...options, + url: '/api/v1/integrations/{integrationId}' + }); + } + + /** + * Delete connector + */ + public static deleteConnector(options: Options) { + return (options?.client ?? client).delete({ + ...options, + url: '/api/v1/integrations/{integrationId}' + }); + } + + /** + * Patch post connector + */ + public static patchPostConnector(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/integrations/{integrationId}/status' + }); + } + +} -/** - * Get a Specific Action - * Retrieves details of a specific action in the Composio platform. - * - * This endpoint allows you to fetch comprehensive information about a particular action by providing its unique identifier. - * The response includes the action's name, display name, description, input parameters, expected response, associated app information, and enabled status. - * Use this endpoint to obtain detailed information about an action, including its configuration and usage requirements. - * You can then pass this to function calling or use LLM to fill in the parameters. - * @param data The data for the request. - * @param data.actionName The unique identifier of the action. - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const getAction = (data: GetActionData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/actions/{actionName}', - path: { - actionName: data.actionName - }, - errors: { - 404: 'Not Found' - } -}); }; +export class ActionsControllerV1Service { + /** + * List actions + */ + public static v1ListActions(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/actions' + }); + } + + /** + * Execute action + */ + public static v1ExecuteAction(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/actions/{actionId}/execute' + }); + } + + /** + * Execute action proxy + */ + public static v1ExecuteActionProxy(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/actions/proxy' + }); + } + + /** + * Get action + */ + public static v1GetAction(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/actions/{actionId}' + }); + } + +} -/** - * Get List of Actions - * Retrieves a list of all actions in the Composio platform. - * - * This endpoint allows you to fetch a list of all the available actions. It supports pagination to handle large numbers of actions. The response includes an array of action objects, each containing information such as the action's name, display name, description, input parameters, expected response, associated app information, and enabled status. - * - * Use this endpoint to explore and discover the actions supported by the Composio platform and showcase them to end user. - * @param data The data for the request. - * @param data.appNames Name of the app like "github", "linear" - * @param data.useCase Natural language usecase - * @param data.showEnabledOnly Show actions enabled for the API Key - * @param data.limit Limit of apis - * @param data.requestBody - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const getListActions = (data: GetListActionsData = {}, config: typeof OpenAPI): CancelablePromise => { - return __request(config, { - method: 'GET', - url: '/v2/actions', - query: { - apps: data.apps, - actions: data.actions, - tags: data.tags, - useCase: data.useCase, - showEnabledOnly: data.showEnabledOnly, - usecaseLimit: data.usecaseLimit, - filterImportantActions: data.filterImportantActions - } -}); }; +export class ConnectionsService { + /** + * Get connections + */ + public static getConnections(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/connectedAccounts' + }); + } + + /** + * Initiate connection + */ + public static initiateConnection(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/connectedAccounts' + }); + } + + /** + * Get connection + */ + public static getConnection(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/connectedAccounts/{connectedAccountId}' + }); + } + + /** + * Delete connection + */ + public static deleteConnection(options: Options) { + return (options?.client ?? client).delete({ + ...options, + url: '/api/v1/connectedAccounts/{connectedAccountId}' + }); + } + + /** + * Disable connection + */ + public static disableConnection(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/connectedAccounts/{connectedAccountId}/disable' + }); + } + + /** + * Enable connection + */ + public static enableConnection(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/connectedAccounts/{connectedAccountId}/enable' + }); + } + +} -/** - * Execute action - * Executes a specific action in the Composio platform. - * - * This endpoint allows you to trigger the execution of an action by providing its name and the necessary input parameters. The request includes the connected account ID to identify the app connection to use for the action, and the input parameters required by the action. The response provides details about the execution status and the response data returned by the action. - * - * Use this endpoint to execute actions available in the Composio platform for your end customer. - * - * Executed will indicate whether the action was successfully executed. - * @param data The data for the request. - * @param data.actionName The name of the action to execute. - * @param data.requestBody - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const executeAction = (data: ExecuteActionData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'POST', - url: '/v1/actions/{actionName}/execute', - path: { - actionName: data.actionName - }, - body: data.requestBody, - mediaType: 'application/json', - errors: { - 404: 'Not Found' - } -}); }; +export class AppLoginService { + /** + * Handle o auth 2 callback + */ + public static handleOauth2Callback(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/login/{appName}/auth' + }); + } + + /** + * Verify o auth 2 login + */ + public static verifyOauth2Login(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/login/{appName}/callback' + }); + } + +} -/** - * Get List of Triggers - * Retrieves a list of all triggers in the Composio platform. - * - * This endpoint allows you to fetch a list of all the available triggers. It supports pagination to handle large numbers of triggers. The response includes an array of trigger objects, each containing information such as the trigger's name, description, input parameters, expected response, associated app information, and enabled status. - * - * Use this endpoint to explore and discover the triggers supported by the Composio platform and showcase them to end user. - * @param data The data for the request. - * @param data.appNames Name of the apps like "github", "linear" separated by a comma - * @param data.showEnabledOnly Show triggers enabled for the API Key - * @param data.connectedAccountIds Filter by Connected Account ids - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const listTriggers = (data: ListTriggersData = {}, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/triggers', - query: { - appNames: data.appNames, - showEnabledOnly: data.showEnabledOnly, - connectedAccountIds: data.connectedAccountIds - } -}); }; +export class TriggersService { + /** + * List triggers + * List triggers + */ + public static listTriggers(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/triggers' + }); + } + + /** + * Handle trigger + */ + public static handleTrigger(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/triggers/handle/{appName}/{clientId}' + }); + } + + /** + * Enable trigger + * Enables a trigger for a connected account and specific trigger name. + */ + public static enableTrigger(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/triggers/enable/{connectedAccountId}/{triggerName}' + }); + } + + /** + * Get trigger + * Retrieves a specific trigger by its ID. + */ + public static getTrigger(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/triggers/get/{triggerId}' + }); + } + + /** + * Get active triggers + * Lists active triggers based on query parameters. + */ + public static getActiveTriggers(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/triggers/active_triggers' + }); + } + + /** + * Switch trigger instance status + * Switches the status of a trigger instance. + */ + public static switchTriggerInstanceStatus(options: Options) { + return (options?.client ?? client).patch({ + ...options, + url: '/api/v1/triggers/instance/{triggerId}/status' + }); + } + + /** + * Switch post trigger instance status + * Switches the status of a trigger instance. + */ + public static switchPostTriggerInstanceStatus(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/triggers/instance/{triggerId}/status' + }); + } + + /** + * Disable trigger + * Disables a specified trigger instance. + */ + public static disableTrigger(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/triggers/disable/{triggerId}' + }); + } + + /** + * Delete trigger + * Deletes a specified trigger instance. + */ + public static deleteTrigger(options: Options) { + return (options?.client ?? client).delete({ + ...options, + url: '/api/v1/triggers/instance/{triggerInstanceId}' + }); + } + + /** + * Set callback url + * Sets a universal callback URL for the client. + */ + public static setCallbackUrl(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/triggers/setCallbackURL' + }); + } + + /** + * Set callback url + * Sets a universal callback URL for the client, ensuring it is updated in the system. + */ + public static setCallbackUrl1(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/triggers/set_callback_url' + }); + } + + /** + * Get webhook url + * Retrieves the universal callback URL set for the client. + */ + public static getWebhookUrl(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/triggers/callback_url' + }); + } + + /** + * Get logs + * Fetches logs based on connection and integration details. + */ + public static getLogs(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/triggers/logs' + }); + } + + /** + * Handle pusher events + */ + public static handlePusherEvents(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/triggers/pusher' + }); + } + +} -/** - * Setup trigger for a connected account - * This endpoint allows you to enable a trigger for a specific connected account by providing the connected account ID and the trigger name. - * - * @param data The data for the request. - * @param data.connectedAccountId The ID of the connected account. - * @param data.triggerName The name of the trigger to enable. - * @param data.requestBody The request body containing additional configuration for the trigger. - * @param config The OpenAPI configuration. - * @returns unknown OK - * @throws ApiError - */ -export const setupTrigger = (data: SetupTriggerData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'POST', - url: '/v1/triggers/enable/{connectedAccountId}/{triggerName}', - path: { - connectedAccountId: data.connectedAccountId, - triggerName: data.triggerName - }, - body: data.requestBody, - mediaType: 'application/json', - errors: { - 404: 'Not Found', - 500: 'Internal server error' - } -}); }; +export class AdminService { + /** + * Sentry dns + */ + public static sentryDns(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/cli/sentry-dns' + }); + } + +} -/** - * Get List of Active Triggers - * @param data The data for the request. - * @param data.connectedAccountIds Filter by Connected Account ids - * @param data.integrationIds Filter by Integration ids - * @param data.triggerIds Filter by Trigger ids - * @param data.triggerNames Filter by Trigger names - * @param config The OpenAPI configuration. - * @returns unknown A list of active triggers - * @throws ApiError - */ -export const listActiveTriggers = (data: ListActiveTriggersData = {}, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/triggers/active_triggers', - query: { - connectedAccountIds: data.connectedAccountIds, - integrationIds: data.integrationIds, - triggerIds: data.triggerIds, - triggerNames: data.triggerNames - } -}); }; +export class CliService { + /** + * Handle cli code exchange + */ + public static handleCliCodeExchange(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/cli/generate-cli-session' + }); + } + + /** + * Get cli code + */ + public static getCliCode(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/cli/get-cli-code' + }); + } + + /** + * Handle cli code verification + */ + public static handleCliCodeVerification(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/cli/verify-cli-code' + }); + } + +} -/** - * Get Active Trigger - * Retrieves details of a specific active trigger in the Composio platform by providing its trigger ID. - * @param data The data for the request. - * @param data.triggerId The ID of the trigger to retrieve. - * @param config The OpenAPI configuration. - * @returns unknown A successful response containing the details of the active trigger. - * @throws ApiError - */ -export const getActiveTrigger = (data: GetActiveTriggerData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'GET', - url: '/v1/triggers/get/{triggerId}', - path: { - triggerId: data.triggerId - }, - errors: { - 404: 'Trigger not found', - 500: 'Internal server error' - } -}); }; +export class MetadataService { + /** + * Get metadata + */ + public static getMetadata(options: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/metadata' + }); + } + + /** + * Update metadata + */ + public static updateMetadata(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/metadata' + }); + } + + /** + * Toggle trigger state + */ + public static toggleTriggerState(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v1/metadata/toggle/trigger' + }); + } + + /** + * Get toggle info + */ + public static getToggleInfo(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/metadata/toggle.info' + }); + } + +} +export class LogsService { + /** + * Get logs + * List logs + */ + public static getLogs(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v1/logs/' + }); + } + +} -/** - * Update active trigger status - * Retrieves details of a specific active trigger in the Composio platform by providing its trigger ID. - * @param data The data for the request. - * @param data.triggerId The ID of the trigger to retrieve. - * @param data.requestBody - * @param config The OpenAPI configuration. - * @returns unknown A successful response containing the details of the active trigger. - * @throws ApiError - */ -export const updateActiveTriggerStatus = (data: PatchUpdateActiveTriggerStatusData, config: typeof OpenAPI): CancelablePromise => { return __request(config, { - method: 'PATCH', - url: '/v1/triggers/instance/{triggerId}/status', - path: { - triggerId: data.triggerId - }, - body: data.requestBody, - mediaType: 'application/json', - errors: { - 404: 'Trigger not found', - 500: 'Internal server error' - } -}); }; \ No newline at end of file +export class ActionsControllerV2Service { + /** + * List actions + * Retrieve a list of all actions based on query parameters. + */ + public static v2ListActions(options?: Options) { + return (options?.client ?? client).get({ + ...options, + url: '/api/v2/actions' + }); + } + + /** + * Execute action + * Execute an action. Support both connected account and no auth auth. + */ + public static v2ExecuteAction(options: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v2/actions/{actionId}/execute' + }); + } + + /** + * Execute action proxy + * Execute an action with direct auth. + */ + public static v2ExecuteActionProxy(options?: Options) { + return (options?.client ?? client).post({ + ...options, + url: '/api/v2/actions/proxy' + }); + } + +} \ No newline at end of file diff --git a/js/src/sdk/client/types.gen.ts b/js/src/sdk/client/types.gen.ts index 65e4918a196..7377f32aa2b 100644 --- a/js/src/sdk/client/types.gen.ts +++ b/js/src/sdk/client/types.gen.ts @@ -1,2059 +1,2053 @@ // This file is auto-generated by @hey-api/openapi-ts -export type ListAllAppsResponse = { - /** - * An array of app objects. - */ - items?: Array<{ - /** - * A unique identifier for the app. - */ - key?: string; - /** - * The name of the app. - */ - name?: string; - /** - * A brief description of the app's functionality. - */ - description?: string; - /** - * The URL of the app's logo image. - */ - logo?: string; - /** - * An array of categories the app belongs to. - */ - categories?: Array<(string)>; - /** - * The unique ID of the app. - */ - appId?: string; - }>; -}; - -export type GetAppData = { - appKey: string; -}; - -export type GetAppResponse = { - name: string; - key: string; +export type MagicLinkResDTO = { status: string; - documentation_doc_text?: string; - configuration_docs_text?: string; - docs?: string; - description?: string; - logo?: string; - categories: string[]; - auth_schemes: Array<{ - auth_mode: string; - authorization_url?: string; - default_scopes?: string[]; - proxy?: { - base_url?: string; - }; - scheme_name?: string; - token_response_metadata?: string[]; - token_url?: string; - client_id?: string; - client_secret?: string; - fields?: Array<{ - name: string; - displayName: string; - description: string; - type: string; - required: boolean; - expected_from_customer: boolean; - default?: string; - }>; - }>; - yaml: any; - group: string; - appId: string; - testConnectors?: Array<{ - id: string; - name: string; - authScheme: string; - }>; - meta: { - triggersCount: number; - actionsCount: number; - is_custom_app: boolean; - }; }; -export type ListAllConnectionsData = { +export type MagicLinkReqDTO = { /** - * Filter by using specific Integration + * The email of the user */ - integrationId?: string; - + email: string; /** - * Filter by using specific entity id, separated by comma + * The frontend host of the user */ - user_uuid?: string; + verifyHost: string; +}; +export type LogoutResDTO = { /** - * Filter by using specific app names, separated by comma + * Message confirming the logout */ - appNames?: string[]; + message: string; +}; +export type VerifyMagicLinkReqDTO = { /** - * Filter by using specific status, separated by comma + * The magic link token */ - status?: string; + token: string; +}; + +export type VerifyMagicLinkDataDTO = { + clientId: string; + isValid: boolean; + jwtToken: string; + email: string; +}; +export type VerifyMagicLinkResDTO = { /** - * Page number to fetch + * Message indicating the result of the verification */ - page?: number; + message: string; /** - * Page size to assume + * Data containing client and token information if verification is successful */ - pageSize?: number; + data?: VerifyMagicLinkDataDTO; }; -export type ListAllConnectionsResponse = { - items?: Array<{ - /** - * The unique identifier of the connector associated with the connection. - */ - connectorId?: string; - /** - * An object containing the parameters specific to the connection. - */ - connectionParams?: { - /** - * The base URL for making API requests to the connected app. - */ - base_url?: string; - /** - * The client ID used for authentication with the connected app. - */ - client_id?: string; - /** - * The client secret used for authentication with the connected app. - */ - client_secret?: string; - /** - * The owner of the connection, which can be an object or a string. - */ - owner?: { - /** - * The type of the owner (e.g., "user"). +export type IdentifyClientReqDTO = { + /** + * The hash of the client */ - type?: string; + hash: string; /** - * An object representing the user owner of the connection. - */ - user?: { - id?: string; - name?: string; - type?: string; - /** - * The object type of the user (e.g., "user"). - */ - object?: string; - person?: { - email?: string; - }; - avatar_url?: string; - }; -} | string; - /** - * The ID of the bot associated with the connection. - */ - bot_id?: string; - /** - * The ID of the request associated with the connection. - */ - request_id?: string; - /** - * The type of token used for authentication (e.g., "bearer"). - */ - token_type?: string; - /** - * The access token used for authentication with the connected app. - */ - access_token?: string; - /** - * The ID of the workspace associated with the connection. - */ - workspace_id?: string; - /** - * The URL of the workspace icon. - */ - workspace_icon?: string; - /** - * The name of the workspace. - */ - workspace_name?: string; - /** - * The ID of the duplicated template associated with the connection. - */ - duplicated_template_id?: string; - /** - * The scope of permissions granted to the connection - */ - scope?: string; - /** - * The timestamp indicating when the connection was created. - */ - created_at?: number; - /** - * The expiration time (in seconds) of the access token. - * - */ - expires_in?: number; - /** - * The organization associated with the connection. - */ - organization?: string; - /** - * The refresh token used to obtain a new access token when it expires. - */ - refresh_token?: string; - }; - /** - * The unique identifier of the connection. - */ - id?: string; - /** - * The status of the connection (e.g., "INITIATED", "SUCCESS"). - */ - status?: 'FAILED' | 'INITIATED' | 'ACTIVE'; - /** - * The timestamp indicating when the connection was created. - */ - createdAt?: string; - /** - * The timestamp indicating when the connection was last updated. - */ - updatedAt?: string; - /** - * The name of the app associated with the connection. - */ - appName?: string; - /** - * The URL of the logo of the app associated with the connection. - */ - logo?: string; - }>; - totalPages?: number; - page?: number; -}; - -export type CreateConnectionData = { - requestBody?: { - integrationId: string; - userUuid?: string; - data?: { - [key: string]: unknown; - }; - redirectUri?: string; - }; -}; - -export type CreateConnectionResponse = { - connectionStatus?: 'SUCCESS' | 'INITIATED' | 'FAILED'; - connectedAccountId?: string; - redirectUrl?: string; + * The framework used by the client + */ + framework?: string; }; -export type GetConnectedAccountData = { +export type IdentifyClientResDTO = { /** - * The unique identifier of the connection. + * The client ID */ - connectedAccountId: string; + clientId: string; + /** + * The API key associated with the client + */ + apiKey: string; }; -export type GetConnectedAccountResponse = { +export type UserGitUserInfo = { + name?: string; + email: string; +}; + +export type TrackClientReqDTO = { /** - * The unique identifier of the connector associated with the connection. - * + * The framework used by the client */ - integrationId: string; + framework: string; /** - * An object containing the parameters specific to the connection. + * The MAC address of the client device */ - connectionParams?: { - /** - * The scope of permissions granted to the connection. - */ - scope?: string; - /** - * The base URL for making API requests to the connected app. - */ - base_url?: string; - /** - * The client ID used for authentication with the connected app. - */ - client_id?: string; - /** - * The type of token used for authentication (e.g., "bearer"). - */ - token_type?: string; - /** - * The access token used for authentication with the connected app. - */ - access_token?: string; - /** - * The client secret used for authentication with the connected app. - */ - client_secret?: string; - }; + mac_address?: string; /** - * The unique identifier of the connection. + * User Git information */ - id?: string; + user_git_user_info?: UserGitUserInfo; +}; + +export type TrackClientResDTO = { /** - * The status of the connection (e.g., "SUCCESS"). + * Message indicating the result of the tracking operation */ - status?: 'ACTIVE' | 'INITIATED' | 'FAILED'; + message: string; +}; + +export type DeleteRowAPIDTO = { /** - * The timestamp indicating when the connection was created. + * Status of the delete operation */ - createdAt?: string; + status: string; /** - * The timestamp indicating when the connection was last updated. + * Number of records deleted */ - updatedAt?: string; + count: number; }; -export type DeleteConnectionData = { +export type InviteMemberReqDTO = { /** - * The unique identifier of the connection. + * The email of the member */ - connectedAccountId: string; -}; - -export type DeleteConnectionResponse = { + email: string; /** - * Status of the api call. + * The name of the member */ - status?: string; -}; - -export type GetIntegrationData = { + name: string; /** - * The unique identifier of the integration. + * The host to verify the member */ - integrationId: string; + verifyHost: string; }; -export type GetIntegrationResponse = { - /** - * The unique identifier of the connector. - */ - id?: string; +export type MemberResDTO = { /** - * The name of the connector. + * The email of the member */ - name?: string; + email: string; /** - * The authentication scheme used by the connector (e.g., "OAUTH2", "API_KEY"). + * The uuid identifier for the member */ - authScheme?: string; + id: string; /** - * An object containing the authentication configuration for the connector. + * The name of the member */ - authConfig?: { - /** - * The base URL for making API requests to the app. - */ - base_url?: string; - /** - * The client ID used for authentication with the app. - */ - client_id?: string; - /** - * The client secret used for authentication with the app. - */ - client_secret?: string; - }; + name: string; /** - * The timestamp indicating when the connector was created. + * The creation date of the member record */ createdAt?: string; /** - * The timestamp indicating when the connector was last updated. + * The last update date of the member record */ updatedAt?: string; +}; + +export type GenerateAPIKeyReqDTO = { /** - * A boolean indicating whether the connector is enabled or not. + * The name of the API key to be generated */ - enabled?: boolean; + name: string; +}; + +export type APIKeyResDTO = { /** - * The unique identifier of the app associated with the connector. + * The ID of the API key */ - appId?: string; + id: string; /** - * An array of input fields expected by the connector. + * The name of the API key */ - expectedInputFields?: Array<{ - [key: string]: unknown; - }>; + name: string; /** - * The URL of the logo of the app associated with the connector. + * The creation date of the API key */ - logo?: string; + createdAt: string; /** - * The name of the app associated with the connector. + * The last update date of the API key */ - appName?: string; -}; - -export type UpdateIntegrationData = { + updatedAt: string; /** - * The unique identifier of the integration. + * The generated API key */ - integrationId: string; - requestBody?: { - /** - * All the parameters that you see in the GET connector - */ - enabled?: boolean; - }; + key: string; }; -export type UpdateIntegrationResponse = { - status?: string; +export type DeleteAPIKeyReqDTO = { + /** + * The ID of the API key to be deleted + */ + id: string; }; -export type ListAllIntegrationsData = { +export type SingleAppInfoResDTO = { /** - * Page number to fetch + * The unique identifier for the app */ - page?: number; + appId: string; /** - * Page Size to assume + * The key of the app */ - pageSize?: number; -}; - -export type ListAllIntegrationsResponse = { - items?: Array<{ - /** - * The unique identifier of the newly created connector. - */ - id?: string; - /** - * The name of the connector. - */ - name?: string; - /** - * The authentication scheme used by the connector. - */ - authScheme?: string; - /** - * The timestamp indicating when the connector was created. - */ - createdAt?: string; - /** - * The timestamp indicating when the connector was last updated. - */ - updatedAt?: string; - /** - * A boolean indicating whether the connector is enabled or not. - */ - enabled?: boolean; - /** - * The unique identifier of the app associated with the connector. - */ - appId?: string; - /** - * The name of the app associated with the connector. - */ - appName?: string; - /** - * The URL of the logo of the app associated with the connector. - */ - logo?: string; - }>; - totalPages?: number; - page?: number; -}; - -export enum AuthScheme { - OAUTH2 = "OAUTH2", - API_KEY = "API_KEY", - OAUTH1 = "OAUTH1" -} - -export type CreateIntegrationData = { - requestBody?: { - /** - * The name of the connector. - */ - name?: string; - /** - * The authentication scheme used by the connector (e.g., "OAUTH2", "API_KEY"). - */ - authScheme?: AuthScheme; - /** - * The unique identifier of the app associated with the connector. - */ - appId?: string; - /** - * An object containing the authentication configuration for the connector. - */ - authConfig?: { - /** - * The client ID used for authentication with the app - if authScheme is OAUTH2 - */ - client_id?: string; - /** - * The client secret used for authentication with the app - if authScheme is OAUTH2 - */ - client_secret?: string; - /** - * The API key used for authentication with the app - if authScheme is API_KEY - */ - api_key?: string; - /** - * The Consumer key used for authentication with the app - if authScheme is OAUTH1 - */ - consumer_key?: string; - /** - * The Consumer secret used for authentication with the app - if authScheme is OAUTH1 - */ - consumer_secret?: string; - /** - * The base URL for making API requests to the app. - */ - base_url?: string; - - [key: string]: unknown; - }; - /** - * Use default Composio credentials to proceed. The developer app credentials will be of Composio. - */ - useComposioAuth?: boolean; - }; -}; - -export type CreateIntegrationResponse = { + key: string; /** - * The unique identifier of the newly created connector. + * The name of the app */ - id?: string; + name: string; /** - * The name of the connector. + * The description of the app */ - name?: string; + description: string; /** - * The authentication scheme used by the connector. + * The logo of the app */ - authScheme?: string; + logo?: string; /** - * An object containing the authentication configuration for the connector. + * The categories of the app */ - authConfig?: { - /** - * The base URL for making API requests to the app. - */ - base_url?: string; - /** - * The client ID used for authentication with the app. - */ - client_id?: string; - /** - * The client secret used for authentication with the app. - */ - client_secret?: string; - }; + categories?: Array<(string)>; /** - * The timestamp indicating when the connector was created. + * The path of the app */ - createdAt?: string; + path?: string; /** - * The timestamp indicating when the connector was last updated. + * The documentation URL of the app */ - updatedAt?: string; + docs?: string; /** - * A boolean indicating whether the connector is enabled or not. + * The configuration documentation text of the app */ - enabled?: boolean; + configuration_docs_text?: string; /** - * The unique identifier of the app associated with the connector. + * The status of the app */ - appId?: string; + status?: string; /** - * An array of input fields expected by the connector. + * The documentation text of the app */ - expectedInputFields?: Array<{ - [key: string]: unknown; - }>; + documentation_doc_text?: string; /** - * The URL of the logo of the app associated with the connector. + * The test connectors of the app */ - logo?: string; + testConnectors?: Array; /** - * The name of the app associated with the connector. + * Indicates if the app has no authentication */ - appName?: string; + no_auth?: boolean; + /** + * The authentication schemes of the app + */ + auth_schemes?: Array; + /** + * The metadata of the app + */ + meta?: unknown; + /** + * The yaml of the app + */ + yaml?: unknown; }; -export type GetActionData = { +export type AddToolsReqDTO = { /** - * The unique identifier of the action. + * The name of the tool */ - actionName: string; + name: string; + /** + * The OpenAPI specification in YAML format + */ + openApiSpecYaml: string; + /** + * The integration details in YAML format + */ + integrationYaml: string; }; -export type GetActionResponse = Array<{ +export type OpenAPISpecListResDTO = { /** - * The name of the action. + * Unique identifier for the OpenAPI spec */ - name?: string; + id: string; /** - * The display name of the action. + * Name of the OpenAPI spec */ - display_name?: string; + name: string; /** - * A description of the action. - * + * Client identifier */ - description?: string; + clientId: string; /** - * An object describing the input parameters of the action. - */ - parameters?: { - /** - * An object containing the properties of the input parameters. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required parameter names. - */ - required?: Array<(string)>; - /** - * The title of the input parameters. - */ - title?: string; - /** - * The type of the input parameters (e.g., "object"). - */ - type?: string; - }; + * OpenAPI specification in YAML format + */ + openApiSpec: string; /** - * An object describing the response of the action. - */ - response?: { - /** - * An object containing the properties of the response. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required response field names. - */ - required?: Array<(string)>; - /** - * The title of the response. - */ - title?: string; - /** - * The type of the response (e.g., "object"). - */ - type?: string; - }; + * Integration details in YAML format + */ + integrationYaml: string; /** - * The unique identifier of the app associated with the action. + * Whether the OpenAPI spec is enabled */ - appId?: string; + enabled: boolean; /** - * The URL of the logo of the app associated with the action. + * URL to the OpenAPI specification */ - logo?: string; + openAPISpecURL?: string | null; /** - * The name of the app associated with the action. + * URL to the integration YAML */ - appName?: string; + integrationYAMLURL?: string | null; /** - * The key of the app associated with the action. + * Last synchronization date and time */ - appKey?: string; + lastSyncAt: string; /** - * A boolean indicating whether the action is enabled or not. + * Creation date and time */ - enabled?: boolean; -}>; + createdAt: string; + /** + * Last update date and time + */ + updatedAt: string; + /** + * The job status of the app + */ + jobStatus?: 'running' | 'success' | 'failed'; +}; -export type SetupTriggerData = { - connectedAccountId: string; - triggerName: string; - requestBody: { - triggerConfig: any; - verifyHost?: string; - } +/** + * The job status of the app + */ +export type jobStatus = 'running' | 'success' | 'failed'; + +export type AddRepoURLResDTO = { + /** + * Repository URL + */ + repoUrl: string; }; -export type SetupTriggerResponse = { - status: "success"; - trigger: GetActiveTriggerResponse -} +export type DeleteToolsReqDTO = { + /** + * Name of the tool + */ + name: string; +}; -export type ExecuteActionData = { +export type DeleteToolsResDTO = { /** - * The name of the action to execute. + * Message indicating successful deletion of tools */ - actionName: string; - requestBody?: { - /** - * The unique identifier of the connection to use for executing the action. - */ - connectedAccountId?: string; - /** - * An object containing the input parameters for the action. If you want to execute - * NLP based action (i.e text), you can use text parameter instead of input. - */ - input?: { - [key: string]: unknown; - }; - appName?: string; - /** - * The text to supply to the action which will be automatically converted to - * appropriate input parameters. - */ - text?: string; - }; + message: string; }; -export type ExecuteActionResponse = { +export type AddToolsRequestDTO = { /** - * An object containing the details of the action execution. + * The name of the tool */ - execution_details?: { - /** - * A boolean indicating whether the action was executed successfully. - * - */ - executed?: boolean; - }; + name: string; /** - * An object containing the response data from the action execution. + * The OpenAPI specification in YAML format */ - response_data?: { - [key: string]: unknown; - }; + open_api_spec_yaml: string; + /** + * The integration details in YAML format + */ + integration_yaml: string; }; -export type GetListActionsData = { +export type AddRepoURLReqDTO = { /** - * Name of the apps like "github", "linear" separated by a comma + * Repository URL */ - apps?: string; + repoUrl: string; +}; + +export type AppQueryDTO = { /** - * Filter by Action names + * Category of the app */ - actions?: string; + category?: string; +}; + +export type AppInfoResponseDto = { /** - * Filter by Action tags + * The ID of the app */ - tags?: string; + appId: string; /** - * Filter by use case + * The key of the app */ - useCase?: string | undefined; + key: string; /** - * Limit of use-cases based search + * The name of the app */ - usecaseLimit?: string; + name: string; /** - * Show all actions - i.e disable pagination + * The description of the app */ - showAll?: boolean; + description: string; /** - * Show actions enabled for the API Key + * The logo of the app */ - showEnabledOnly?: boolean; + logo: string; /** - * Use smart tag filtering + * The categories of the app */ - filterImportantActions?: boolean; -} - -export type GetListActionsResponse = { - /** - * An array of action objects. - */ - items?: Array<{ - /** - * The name of the action. - */ - name?: string; - /** - * The display name of the action. - */ - display_name?: string; - /** - * A description of the action. - */ - description?: string; - /** - * An object describing the input parameters of the action. - */ - parameters?: { - /** - * An object containing the properties of the input parameters. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required parameter names. - */ - required?: Array<(string)>; - /** - * The title of the input parameters. - */ - title?: string; - /** - * The type of the input parameters (e.g., "object"). - */ - type?: string; - }; - /** - * An object describing the response of the action. - */ - response?: { - /** - * An object containing the properties of the response. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required response field names. - */ - required?: Array<(string)>; - /** - * The title of the response. - */ - title?: string; - /** - * The type of the response (e.g., "object"). - */ - type?: string; - }; - /** - * The unique identifier of the app associated with the action. - */ - appId?: string; - /** - * The URL of the logo of the app associated with the action. - */ - logo?: string; - /** - * The name of the app associated with the action. - */ - appName?: string; - /** - * A boolean indicating whether the action is enabled or not. This is decided based on whether you have created a connector for the same app. - * Without creating a connector and then connection for the app, you won't be able to execute the action. - */ - enabled?: boolean; - }>; - page: number; - totalPages: number; -} - -export type ListTriggersData = { + categories: string; /** - * Name of the apps like "github", "linear" separated by a comma + * Indicates if the app is enabled */ - appNames?: string; + enabled: boolean; /** - * Filter by Connected Account ids + * Indicates if the app has no authentication */ - connectedAccountIds?: string; + noAuth?: boolean; +}; + +export type AppListResDTO = { /** - * Show triggers enabled for the API Key + * List of app details */ - showEnabledOnly?: boolean; + items: Array; + /** + * Total number of pages + */ + totalPages: number; }; -export type ListTriggersResponse = Array<{ +export type GetConnectorInfoResDTO = { /** - * The name of the event. + * Unique identifier of the connector */ - name?: string; + id?: string; /** - * The display name of the event. + * Authentication scheme used by the connector */ - display_name?: string; + authScheme?: string; /** - * A brief description of the event. + * Name of the connector */ - description?: string; - payload?: { - properties?: { - /** - * The SHA of the commit. - */ - id: string; - /** - * The commit message. - */ - message: string; - /** - * The timestamp of the commit. - */ - timestamp: string; - /** - * The GitHub username of the commit author. - */ - author: string; - /** - * The GitHub URL of the commit. - */ - url: string; - }; - }; - config?: { - type?: string; - title?: string; - required?: Array<(string)>; - properties?: { - /** - * string - */ - type?: string; - /** - * string - */ - title?: string; - /** - * string - */ - description?: string; - required?: Array<(string)>; - }; - }; + name?: string; /** - * Instructions for the event. + * Creation date of the connector */ - instructions?: string; + createdAt?: string; /** - * The unique ID of the app. + * Last update date of the connector */ - appId?: string; + updatedAt?: string; /** - * The key of the app. + * Flag to indicate if the connector is currently enabled */ - appKey?: string; + enabled: boolean; /** - * The URL of the app's logo image. + * Flag to indicate if the connector has been deleted */ - logo?: string; + deleted?: boolean; /** - * The name of the app. + * Application ID associated with the connector */ - appName?: string; + appId: string; /** - * The count of the event. + * Default connector ID if one exists */ - count?: number; + defaultConnectorId?: string; /** - * Whether the event is enabled. + * Authentication configuration with sensitive data obscured */ - enabled?: boolean; -}>; - -export type ListActiveTriggersData = { + authConfig: { + [key: string]: unknown; + }; /** - * Filter by Connected Account ids + * List of required fields expected from the customer */ - connectedAccountIds?: string; + expectedInputFields: Array<(string)>; /** - * Filter by Integration ids + * Logo URL of the application associated with the connector */ - integrationIds?: string; + logo: string; /** - * Filter by Trigger ids + * Name of the application associated with the connector */ - triggerIds?: string; + appName: string; /** - * Filter by Trigger names + * Flag to indicate if Composio authentication is used */ - triggerNames?: string; + useComposioAuth: boolean; }; -export type ListActiveTriggersResponse = { - triggers?: Array<{ - /** - * Unique identifier for the trigger. - */ - id?: string; - /** - * Identifier for the connection associated with the trigger. - */ - connectionId?: string; - /** - * Name of the trigger. - */ - triggerName?: string; - /** - * Data associated with the trigger. - */ - triggerData?: string; - /** - * Configuration settings for the trigger. - */ - triggerConfig?: { - [key: string]: unknown; - }; - /** - * State information for the trigger. - */ - state?: { - [key: string]: unknown; - }; - /** - * Timestamp when the trigger was created. - */ - createdAt?: string; - /** - * Timestamp when the trigger was last updated. - */ - updatedAt?: string; - /** - * Timestamp when the trigger was disabled, if applicable. - */ - disabledAt?: string; - }>; - pageInfo?: { - /** - * The current page number. - */ - currentPage?: number; - /** - * The total number of pages. - */ - totalPages?: number; - /** - * The number of items per page. - */ - perPage?: number; - }; +export type AuthConfigDTO = { + scopes?: Array<(string)>; + user_scopes?: Array<(string)>; }; -export type GetActiveTriggerData = { +export type CreateConnectorPayloadDTO = { + /** + * Name of the connector + */ + name: string; + /** + * Authentication scheme + */ + authScheme?: string; + /** + * Authentication configuration + */ + authConfig?: AuthConfigDTO; + /** + * Flag to indicate if Composio authentication should be used + */ + useComposioAuth?: boolean; + /** + * Application ID + */ + appId: string; /** - * The ID of the trigger to retrieve. + * Flag to force new integration */ - triggerId: string; + forceNewIntegration?: boolean; }; -export type PatchUpdateActiveTriggerStatusData = { +export type PatchConnectorReqDTO = { + /** + * Authentication configuration for the connector + */ + authConfig?: { + [key: string]: unknown; + }; /** - * The ID of the trigger to enable or disable. + * Flag to indicate if the connector is enabled */ - triggerId: string; - requestBody: { - enabled: boolean; - } -} + enabled?: boolean; +}; -export type PatchUpdateActiveTriggerStatusResponse = { - status: "success" +export type PatchConnectorResDTO = { + /** + * Status of the patch operation + */ + status: string; }; -export type GetActiveTriggerResponse = { +export type ConnectorListItemDTO = { /** - * Unique identifier for the trigger. + * Application name associated with the connector */ - id?: string; + appName: string; /** - * Identifier for the connection associated with the trigger. + * Count of connections for the connector */ - connectionId?: string; + _count: { + [key: string]: unknown; + }; /** - * Name of the trigger. + * List of connections with their details and request logs count */ - triggerName?: string; + connections: Array; /** - * Data associated with the trigger. + * Unique identifier of the connector */ - triggerData?: string; + id: string; /** - * Configuration settings for the trigger. + * Name of the connector */ - triggerConfig?: { - [key: string]: unknown; - }; + name: string; /** - * State information for the trigger. + * Authentication scheme used by the connector */ - state?: { - [key: string]: unknown; - }; + authScheme: string; /** - * Timestamp when the trigger was created. + * Creation date of the connector */ - createdAt?: string; + createdAt: string; /** - * Timestamp when the trigger was last updated. + * Last update date of the connector */ - updatedAt?: string; + updatedAt: string; /** - * Timestamp when the trigger was disabled, if applicable. - */ - disabledAt?: string; -}; - -export type $OpenApiTs = { - '/v1/apps': { - get: { - res: { - /** - * OK - */ - 200: { - /** - * An array of app objects. - */ - items?: Array<{ - /** - * A unique identifier for the app. - */ - key?: string; - /** - * The name of the app. - */ - name?: string; - /** - * A brief description of the app's functionality. - */ - description?: string; - /** - * The URL of the app's logo image. - */ - logo?: string; - /** - * An array of categories the app belongs to. - */ - categories?: Array<(string)>; - /** - * The unique ID of the app. - */ - appId?: string; - }>; - }; - }; - }; - }; - '/v1/connectedAccounts': { - get: { - req: ListAllConnectionsData; - res: { - /** - * OK - */ - 200: { - items?: Array<{ - /** - * The unique identifier of the connector associated with the connection. - */ - connectorId?: string; - /** - * An object containing the parameters specific to the connection. - */ - connectionParams?: { - /** - * The base URL for making API requests to the connected app. - */ - base_url?: string; - /** - * The client ID used for authentication with the connected app. - */ - client_id?: string; - /** - * The client secret used for authentication with the connected app. - */ - client_secret?: string; - /** - * The owner of the connection, which can be an object or a string. - */ - owner?: { - /** - * The type of the owner (e.g., "user"). + * Flag to indicate if the connector is enabled */ - type?: string; + enabled: boolean; /** - * An object representing the user owner of the connection. - */ - user?: { - id?: string; - name?: string; - type?: string; - /** - * The object type of the user (e.g., "user"). - */ - object?: string; - person?: { - email?: string; - }; - avatar_url?: string; - }; -} | string; - /** - * The ID of the bot associated with the connection. - */ - bot_id?: string; - /** - * The ID of the request associated with the connection. - */ - request_id?: string; - /** - * The type of token used for authentication (e.g., "bearer"). - */ - token_type?: string; - /** - * The access token used for authentication with the connected app. - */ - access_token?: string; - /** - * The ID of the workspace associated with the connection. - */ - workspace_id?: string; - /** - * The URL of the workspace icon. - */ - workspace_icon?: string; - /** - * The name of the workspace. - */ - workspace_name?: string; - /** - * The ID of the duplicated template associated with the connection. - */ - duplicated_template_id?: string; - /** - * The scope of permissions granted to the connection - */ - scope?: string; - /** - * The timestamp indicating when the connection was created. - */ - created_at?: number; - /** - * The expiration time (in seconds) of the access token. - * - */ - expires_in?: number; - /** - * The organization associated with the connection. - */ - organization?: string; - /** - * The refresh token used to obtain a new access token when it expires. - */ - refresh_token?: string; - }; - /** - * The unique identifier of the connection. - */ - id?: string; - /** - * The status of the connection (e.g., "INITIATED", "SUCCESS"). - */ - status?: 'FAILED' | 'INITIATED' | 'ACTIVE'; - /** - * The timestamp indicating when the connection was created. - */ - createdAt?: string; - /** - * The timestamp indicating when the connection was last updated. - */ - updatedAt?: string; - /** - * The name of the app associated with the connection. - */ - appName?: string; - /** - * The URL of the logo of the app associated with the connection. - */ - logo?: string; - }>; - totalPages?: number; - page?: number; - }; - }; - }; - post: { - req: CreateConnectionData; - res: { - /** - * OK - */ - 200: { - connectionStatus?: 'SUCCESS' | 'INITIATED' | 'FAILED'; - connectionId?: string; - redirectUrl?: string; - }; - /** - * { - * "message": "Connector not found" - * } - */ - 404: unknown; - }; - }; - }; - '/v1/connectedAccounts/{connectedAccountId}': { - get: { - req: GetConnectedAccountData; - res: { - /** - * OK - */ - 200: { - /** - * The unique identifier of the connector associated with the connection. - * - */ - integrationId?: string; - /** - * An object containing the parameters specific to the connection. - */ - connectionParams?: { - /** - * The scope of permissions granted to the connection. - */ - scope?: string; - /** - * The base URL for making API requests to the connected app. - */ - base_url?: string; - /** - * The client ID used for authentication with the connected app. - */ - client_id?: string; - /** - * The type of token used for authentication (e.g., "bearer"). - */ - token_type?: string; - /** - * The access token used for authentication with the connected app. - */ - access_token?: string; - /** - * The client secret used for authentication with the connected app. - */ - client_secret?: string; - }; - /** - * The unique identifier of the connection. - */ - id?: string; - /** - * The status of the connection (e.g., "SUCCESS"). - */ - status?: 'ACTIVE' | 'INITIATED' | 'FAILED'; - /** - * The timestamp indicating when the connection was created. - */ - createdAt?: string; - /** - * The timestamp indicating when the connection was last updated. - */ - updatedAt?: string; - }; - /** - * { - * "message": "Connection not found or already deleted" - * } - */ - 404: unknown; - }; - }; - delete: { - req: DeleteConnectionData; - res: { - /** - * { - * "message": "Connection not found or already deleted" - * } - */ - 200: { - /** - * Status of the api call. - */ - status?: string; - }; - /** - * Not Found - */ - 404: unknown; - }; - }; - }; - '/v1/integrations/{integrationId}': { - get: { - req: GetIntegrationData; - res: { - /** - * OK - */ - 200: { - /** - * The unique identifier of the connector. - */ - id?: string; - /** - * The name of the connector. - */ - name?: string; - /** - * The authentication scheme used by the connector (e.g., "OAUTH2", "API_KEY"). - */ - authScheme?: string; - /** - * An object containing the authentication configuration for the connector. - */ - authConfig?: { - /** - * The base URL for making API requests to the app. - */ - base_url?: string; - /** - * The client ID used for authentication with the app. - */ - client_id?: string; - /** - * The client secret used for authentication with the app. - */ - client_secret?: string; - }; - /** - * The timestamp indicating when the connector was created. - */ - createdAt?: string; - /** - * The timestamp indicating when the connector was last updated. - */ - updatedAt?: string; - /** - * A boolean indicating whether the connector is enabled or not. - */ - enabled?: boolean; - /** - * The unique identifier of the app associated with the connector. - */ - appId?: string; - /** - * An array of input fields expected by the connector. - */ - expectedInputFields?: Array<{ - [key: string]: unknown; - }>; - /** - * The URL of the logo of the app associated with the connector. - */ - logo?: string; - /** - * The name of the app associated with the connector. - */ - appName?: string; - }; - /** - * Not Found - */ - 404: unknown; - }; - }; - patch: { - req: UpdateIntegrationData; - res: { - /** - * OK - */ - 200: { - status?: string; - }; - /** - * Not Found - */ - 404: unknown; - }; - }; + * Flag to indicate if the connector is deleted + */ + deleted?: boolean; + /** + * App ID associated with the connector + */ + appId: string; + /** + * Default connector ID if available + */ + defaultConnectorId?: string; +}; + +export type GetConnectorListResDTO = { + /** + * List of connectors + */ + items: Array; + /** + * Total number of pages available + */ + totalPages: number; + /** + * Current page number + */ + page: number; +}; + +export type PageInfo = { + total: number; + page: number; + pageSize: number; + totalPages: number; +}; + +export type ConnectionWithAppData = { + id: string; + integrationId: string; + clientUniqueUserId?: string; + status: string; + data?: { + [key: string]: unknown; + }; + deleted?: boolean; + enabled?: boolean; + createdAt: string; + updatedAt: string; + appUniqueId: string; + appName: string; + logo?: string; + authConfig?: { + [key: string]: unknown; + }; +}; + +export type GetConnectionsResult = { + connections: Array; + pageInfo: PageInfo; +}; + +export type ActionExecutionServiceResDTO = { + response_data: boolean; + execution_details: { + [key: string]: unknown; + }; +}; + +export type ToolsExecuteReqDto = { + actionName: string; + runInSandbox: boolean; + input: { + [key: string]: unknown; + }; + nlaInput?: string; + authorizationData?: { + [key: string]: unknown; + }; + appSchema?: { + [key: string]: unknown; + }; +}; + +export type DirectExecuteReqDto = { + endpoint: string; + base_url: string; + headers: { + [key: string]: unknown; + }; + queryParams: { + [key: string]: unknown; + }; +}; + +export type ActionExecutionResDto = { + response_data: { + [key: string]: unknown; + }; + status: 'success' | 'error'; + upstreamStatusCode: number; +}; + +export type status = 'success' | 'error'; + +export type ActionExecutionReqDTO = { + connectedAccountId?: string; + appName?: string; + entityId?: string; + endpoint?: string; + input?: { + [key: string]: unknown; + }; + text?: string; +}; + +export type ActionExecutionResDTO = { + connectedAccountId?: string; + appName?: string; + entityId?: string; + endpoint?: string; + input?: { + [key: string]: unknown; + }; + text?: string; +}; + +export type ActionDetails = { + appId?: string; + appKey: string; + appName: string; + description: string; + displayName: string; + enabled: boolean; + logo: string; + name: string; + parameters: { + [key: string]: unknown; + }; + response: { + [key: string]: unknown; + }; + tags: Array<(string)>; +}; + +export type ActionsListResponseDTO = { + items: Array; + page: number; + totalPages: number; +}; + +export type ExecuteActionResDTO = { + response_data: { + [key: string]: unknown; + }; + status: 'success' | 'error'; + upstreamStatusCode: number; +}; + +export type ActionsQueryDTO = { + /** + * Names of the apps + */ + appNames?: string; + /** + * Use case + */ + useCase?: string; + /** + * Show enabled only + */ + showEnabledOnly?: boolean; + /** + * Limit + */ + limit?: number; + apps?: string; + actions?: string; + tags?: string; + usecaseLimit?: number; + filterImportantActions?: boolean; + showAll?: boolean; +}; + +export type ActionsControllerV1 = { + getAction: Array; +}; + +export type ConnectionParams = { + integrationId: string; + connectionParams?: { + [key: string]: unknown; + }; + isDisabled: boolean; + invocationCount: number; + id: string; + clientUniqueUserId?: string; + status: string; + data?: { + [key: string]: unknown; + }; + deleted?: boolean; + enabled?: boolean; + createdAt: string; + updatedAt: string; + appUniqueId: string; + appName: string; + logo?: string; + authConfig?: { + [key: string]: unknown; + }; +}; + +export type GetConnectionsResponseDto = { + items: Array; + totalPages: number; + page: number; +}; + +export type GetConnectionsQueryDto = { + page?: number; + pageSize?: number; + appNames?: unknown; + integrationId?: string; + connectionId?: string; + user_uuid?: string; + showActiveOnly?: boolean; + status?: string; + showDisabled?: boolean; +}; + +export type InitiateConnectionPayloadDto = { + data?: string; + integrationId: string; + redirectUri?: string; + userUuid?: string; +}; + +export type InitiateConnectionResponse = { + connectionStatus: string; + connectedAccountId: string; +}; + +export type OAuth2CallbackQueryDto = { + state: string; +}; + +export type RedirectUriDTO = { + redirectUri: string; +}; + +export type ListTriggersQueryDTO = { + /** + * Names of the apps + */ + appNames?: string; + /** + * IDs of the connected accounts + */ + connectedAccountIds?: string; + /** + * IDs of the triggers + */ + triggerIds?: string; + /** + * Show enabled only + */ + showEnabledOnly?: boolean; +}; + +export type GetActiveTriggersQueryDTO = { + /** + * IDs of the connected accounts + */ + connectedAccountIds?: string; + /** + * IDs of the integrations + */ + integrationIds?: string; + /** + * IDs of the triggers + */ + triggerIds?: string; + /** + * Names of the triggers + */ + triggerNames?: string; + /** + * Page number + */ + page?: number; + /** + * Limit per page + */ + limit?: number; + /** + * Show disabled triggers + */ + showDisabled?: boolean; +}; + +export type GetLogsQueryDTO = { + /** + * ID of the connection + */ + connectionId?: string; + /** + * ID of the integration + */ + integrationId?: string; + /** + * Page number + */ + page?: number; + /** + * Limit per page + */ + limit?: number; +}; + +export type TriggerResDTO = { + /** + * Trigger name + */ + name: string; + /** + * Trigger display name + */ + display_name: string; + /** + * Trigger description + */ + description?: string; + /** + * Is trigger enabled + */ + enabled?: boolean; + /** + * Trigger configuration + */ + config?: { + [key: string]: unknown; + }; + /** + * Trigger payload + */ + payload?: { + [key: string]: unknown; + }; + /** + * Trigger logo URL + */ + logo?: string; + /** + * Trigger count + */ + count?: number; + /** + * App key + */ + appKey: string; + /** + * App ID + */ + appId: string; + /** + * App name + */ + appName: string; + /** + * Trigger instructions + */ + instructions?: string; + /** + * Trigger type + */ + type?: string; +}; + +export type TriggerConfig = { + /** + * Repository name + */ + repo: string; + /** + * Repository owner + */ + owner: string; +}; + +export type ActiveTriggerInstance = { + /** + * Trigger instance ID + */ + id?: string; + /** + * Connected account ID + */ + connectionId: string; + /** + * Trigger name + */ + triggerName: string; + /** + * Trigger data + */ + triggerData?: string; + /** + * Trigger configuration + */ + triggerConfig: TriggerConfig; + /** + * Created at timestamp + */ + createdAt: string; + /** + * Updated at timestamp + */ + updatedAt: string; + /** + * Disabled at timestamp + */ + disabledAt?: string | null; +}; + +export type PageInfoDTO = { + currentPage: number; + perPage: number; + totalPages: number; +}; + +export type ActiveTriggersResDTO = { + triggers: Array; + pageInfo: Array; +}; + +export type TriggerLogsResDTO = { + data: Array; + pageInfo: PageInfoDTO; +}; + +export type TriggerLogItemDTO = { + /** + * Client ID + */ + clientId: string; + /** + * Connection ID + */ + connectionId: string; + /** + * Error trigger + */ + errorTrigger?: string | null; + /** + * Trigger client error + */ + triggerClientError?: string | null; + /** + * Trigger client payload + */ + triggerClientPayload?: string | null; + /** + * Trigger provider payload + */ + triggerProviderPayload?: string | null; + /** + * Trigger name + */ + triggerName?: string | null; + /** + * Log ID + */ + id: string; + /** + * App key + */ + appKey: string; + /** + * Created at timestamp + */ + createdAt: string; +}; + +export type GenerateCLISessionReqDTO = { + /** + * The channel name for the CLI session + */ + channel_name: string; +}; + +export type LoginAccountAsAdminReqDTO = { + /** + * Email of the client + */ + email?: string; + /** + * API Key of the client + */ + apiKey?: string; + /** + * Admin token + */ + adminToken: string; +}; + +export type GenerateCLISessionResDTO = { + /** + * The key for the CLI session + */ + key: string; +}; + +export type GetCLISessionResDTO = { + /** + * The client ID + */ + clientId: string; + /** + * The CLI code + */ + cliCode: string; +}; + +export type VerifyCLICodeResDTO = { + /** + * The client ID + */ + clientId: string; + /** + * The CLI code + */ + cliCode: string; + /** + * The API key associated with the client + */ + apiKey: string; +}; + +export type CLIQueryDTO = { + /** + * Unique key for CLI session + */ + key: string; + /** + * Code for CLI verification + */ + code?: string; +}; + +export type MetadataReqDTO = { + /** + * The email associated with the metadata request + */ + email: string; + /** + * Additional metadata as a key-value pair + */ + metadata?: unknown; +}; + +export type TriggersEnabledToggleReqDTO = { + /** + * Flag to enable or disable triggers + */ + enabled: boolean; +}; + +export type TriggersEnabledToggleResDTO = { + /** + * Message indicating the result of the toggle operation + */ + message: string; +}; + +export type MetadataQueryDTO = { + /** + * Email of the client + */ + email: string; +}; + +export type TriggerMetadata = { + /** + * The unique id of the log + */ + id: string; + /** + * The type of the log + */ + type: 'trigger'; + /** + * The date and time when the log was created + */ + createdAt: string; + /** + * The date and time when the log was updated + */ + updatedAt: string; + /** + * The provider of the log + */ + provider: string; + /** + * The client uuid of the log + */ + clientId: string; + /** + * The connection id of the log + */ + connectionId: string; + /** + * The trigger provider payload of the log + */ + triggerProviderPayload?: string; + triggerClientPayload?: string; + /** + * The trigger client error of the log + */ + triggerClientError?: string; + /** + * The trigger name of the log + */ + triggerName?: string; + /** + * The trigger client response of the log + */ + triggerClientResponse?: string; +}; + +export type ActionMetadata = { + /** + * The unique id of the log + */ + id: string; + /** + * The request sent to the provider + */ + request: string; + /** + * The response from the provider + */ + response?: string; + /** + * The error request sent to the provider + */ + errorRequest?: string; + /** + * The type of the log + */ + type: 'action'; + /** + * The date and time when the log was created + */ + createdAt: string; + /** + * The date and time when the log was updated + */ + updatedAt: string; + /** + * The provider of the log + */ + provider: string; + /** + * The client uuid of the log + */ + clientId: string; + /** + * The connection id of the log + */ + connectionId: string; + /** + * The action name of the log + */ + actionName: string; +}; + +export type TriggerLogData = { + /** + * The unique identifier of the trigger log + */ + id: string; + /** + * The connection identifier associated with the trigger log + */ + connectionId: string; + /** + * The client identifier associated with the trigger log + */ + clientId: string; + /** + * The status of the trigger log + */ + status: string; + /** + * The name of the application associated with the trigger log + */ + appName: string; + /** + * The creation date and time of the trigger log + */ + createdAt: string; + /** + * The type of the log + */ + type: 'trigger'; + /** + * Metadata associated with the trigger log + */ + meta: TriggerMetadata; +}; + +export type ActionLogData = { + /** + * The unique identifier of the action log + */ + id: string; + /** + * The connection identifier associated with the action log + */ + connectionId: string; + /** + * The client identifier associated with the action log + */ + clientId: string; + /** + * The status of the action log + */ + status: string; + /** + * The name of the application associated with the action log + */ + appName: string; + /** + * The creation date and time of the action log + */ + createdAt: string; + /** + * The type of the log + */ + type: 'action'; + /** + * Metadata associated with the action log + */ + meta: ActionMetadata; +}; + +export type LogsResDTO = { + /** + * The cursor to get the next page of logs + */ + nextCursor?: string; + /** + * Logs data + */ + data: Array; +}; + +export type GetLogsDTO = { + /** + * Type of the log + */ + type?: 'error' | 'info' | 'debug'; + /** + * Time interval for which data needs to be fetched + */ + time?: '30m' | '6h' | '1d' | '1w' | '1month' | '1y'; + /** + * Status of the log + */ + status?: 'pending' | 'processed' | 'failed'; + /** + * Search term in the log + */ + search?: string; + /** + * Integration UUID + */ + integrationId?: string; + /** + * Limit of the logs + */ + limit?: number; + /** + * Cursor for pagination + */ + cursor?: string; + /** + * Connection ID of the log + */ + connectionId?: string; +}; + +/** + * Type of the log + */ +export type type = 'error' | 'info' | 'debug'; + +/** + * Time interval for which data needs to be fetched + */ +export type time = '30m' | '6h' | '1d' | '1w' | '1month' | '1y'; + +/** + * Status of the log + */ +export type status2 = 'pending' | 'processed' | 'failed'; + +export type ClientAuthControllerIdentifyClientData = { + /** + * IdentifyClientReqDTO + */ + body?: IdentifyClientReqDTO; +}; + +export type ClientAuthControllerIdentifyClientResponse = IdentifyClientResDTO; + +export type ClientAuthControllerIdentifyClientError = unknown; + +export type ClientAuthControllerTrackClientData = { + /** + * TrackClientReqDTO + */ + body?: TrackClientReqDTO; +}; + +export type ClientAuthControllerTrackClientResponse = TrackClientResDTO; + +export type ClientAuthControllerTrackClientError = unknown; + +export type ClientAuthControllerSendMagicLinkData = { + /** + * MagicLinkReqDTO + */ + body?: MagicLinkReqDTO; +}; + +export type ClientAuthControllerSendMagicLinkResponse = MagicLinkResDTO; + +export type ClientAuthControllerSendMagicLinkError = unknown; + +export type ClientAuthControllerLogoutResponse = LogoutResDTO; + +export type ClientAuthControllerLogoutError = unknown; + +export type ClientAuthControllerVerifyMagicLinkData = { + /** + * VerifyMagicLinkReqDTO + */ + body?: VerifyMagicLinkReqDTO; +}; + +export type ClientAuthControllerVerifyMagicLinkResponse = VerifyMagicLinkResDTO; + +export type ClientAuthControllerVerifyMagicLinkError = unknown; + +export type ClientAuthControllerGetUserInfoResponse = unknown; + +export type ClientAuthControllerGetUserInfoError = unknown; + +export type ClientAuthControllerPusherUserAuthData = { + body?: unknown; +}; + +export type ClientAuthControllerPusherUserAuthResponse = unknown; + +export type ClientAuthControllerPusherUserAuthError = unknown; + +export type ClientAuthControllerDeleteClientData = { + path: { + clientId: string; + }; +}; + +export type ClientAuthControllerDeleteClientResponse = unknown; + +export type ClientAuthControllerDeleteClientError = unknown; + +export type TeamControllerInviteMemberData = { + /** + * InviteMemberReqDTO + */ + body?: InviteMemberReqDTO; +}; + +export type TeamControllerInviteMemberResponse = MemberResDTO; + +export type TeamControllerInviteMemberError = unknown; + +export type TeamControllerListMembersResponse = Array; + +export type TeamControllerListMembersError = unknown; + +export type TeamControllerRemoveMemberData = { + path: { + id: string; + }; +}; + +export type TeamControllerRemoveMemberResponse = unknown; + +export type TeamControllerRemoveMemberError = unknown; + +export type ApiKeysControllerGenerateApiKeyData = { + /** + * GenerateAPIKeyReqDTO + */ + body: GenerateAPIKeyReqDTO; +}; + +export type ApiKeysControllerGenerateApiKeyResponse = APIKeyResDTO; + +export type ApiKeysControllerGenerateApiKeyError = unknown; + +export type ApiKeysControllerListApiKeysResponse = Array; + +export type ApiKeysControllerListApiKeysError = unknown; + +export type ApiKeysControllerDeleteApiKeyData = { + path: { + id: string; + }; +}; + +export type ApiKeysControllerDeleteApiKeyResponse = void; + +export type ApiKeysControllerDeleteApiKeyError = unknown; + +export type AppControllerGetAppsData = { + query?: { + category?: string; + }; +}; + +export type AppControllerGetAppsResponse = AppListResDTO; + +export type AppControllerGetAppsError = unknown; + +export type AppControllerAddOpenApiSpecData = { + /** + * AddToolsRequestDTO + */ + body?: AddToolsRequestDTO; +}; + +export type AppControllerAddOpenApiSpecResponse = unknown; + +export type AppControllerAddOpenApiSpecError = unknown; + +export type AppControllerGetOpenaApiSpecsResponse = Array; + +export type AppControllerGetOpenaApiSpecsError = unknown; + +export type AppControllerDeleteOpenApiSpecToolData = { + body?: unknown; +}; + +export type AppControllerDeleteOpenApiSpecToolResponse = unknown; + +export type AppControllerDeleteOpenApiSpecToolError = unknown; + +export type AppControllerGetOpenApiSpecLogsData = { + path: { + name: string; + }; +}; + +export type AppControllerGetOpenApiSpecLogsResponse = unknown; + +export type AppControllerGetOpenApiSpecLogsError = unknown; + +export type AppControllerAddCustomRepoData = { + /** + * AddRepoURLReqDTO + */ + body?: AddRepoURLReqDTO; +}; + +export type AppControllerAddCustomRepoResponse = unknown; + +export type AppControllerAddCustomRepoError = unknown; + +export type AppControllerGetAppData = { + path: { + appName: string; + }; +}; + +export type AppControllerGetAppResponse = SingleAppInfoResDTO; + +export type AppControllerGetAppError = unknown; + +export type AppControllerSyncAppsResponse = unknown; + +export type AppControllerSyncAppsError = unknown; + +export type AppControllerGetCustomRepoResponse = unknown; + +export type AppControllerGetCustomRepoError = unknown; + +export type AppConnectorControllerCreateConnectorData = { + /** + * CreateConnectorPayloadDTO + */ + body?: CreateConnectorPayloadDTO; +}; + +export type AppConnectorControllerCreateConnectorResponse = GetConnectorInfoResDTO; + +export type AppConnectorControllerCreateConnectorError = unknown; + +export type AppConnectorControllerListGlobalConnectorsResponse = GetConnectorListResDTO; + +export type AppConnectorControllerListGlobalConnectorsError = unknown; + +export type AppConnectorControllerGetConnectorInfoData = { + path: { + integrationId: string; + }; +}; + +export type AppConnectorControllerGetConnectorInfoResponse = GetConnectorInfoResDTO; + +export type AppConnectorControllerGetConnectorInfoError = unknown; + +export type AppConnectorControllerPatchConnectorData = { + /** + * PatchConnectorReqDTO + */ + body?: PatchConnectorReqDTO; + path: { + integrationId: string; + }; +}; + +export type AppConnectorControllerPatchConnectorResponse = PatchConnectorResDTO; + +export type AppConnectorControllerPatchConnectorError = unknown; + +export type AppConnectorControllerDeleteConnectorData = { + path: { + integrationId: string; + }; +}; + +export type AppConnectorControllerDeleteConnectorResponse = DeleteRowAPIDTO; + +export type AppConnectorControllerDeleteConnectorError = unknown; + +export type AppConnectorControllerPatchPostConnectorData = { + /** + * PatchConnectorReqDTO + */ + body?: PatchConnectorReqDTO; + path: { + integrationId: string; + }; +}; + +export type AppConnectorControllerPatchPostConnectorResponse = PatchConnectorResDTO; + +export type AppConnectorControllerPatchPostConnectorError = unknown; + +export type ActionsControllerV1ListActionsData = { + query?: { + actions?: string; + appNames?: string; + apps?: string; + filterImportantActions?: boolean; + limit?: number; + showAll?: boolean; + showEnabledOnly?: boolean; + tags?: string; + useCase?: string; + usecaseLimit?: number; + }; +}; + +export type ActionsControllerV1ListActionsResponse = ActionsListResponseDTO; + +export type ActionsControllerV1ListActionsError = unknown; + +export type ActionsControllerV1ExecuteActionData = { + /** + * ActionExecutionReqDTO + */ + body?: ActionExecutionReqDTO; + path: { + actionId: string; + }; +}; + +export type ActionsControllerV1ExecuteActionResponse = ExecuteActionResDTO; + +export type ActionsControllerV1ExecuteActionError = unknown; + +export type ActionsControllerV1ExecuteActionProxyData = { + /** + * ActionExecutionReqDTO + */ + body?: ActionExecutionReqDTO; +}; + +export type ActionsControllerV1ExecuteActionProxyResponse = ExecuteActionResDTO; + +export type ActionsControllerV1ExecuteActionProxyError = unknown; + +export type ActionsControllerV1GetActionData = { + path: { + actionId: string; + }; +}; + +export type ActionsControllerV1GetActionResponse = ActionDetails; + +export type ActionsControllerV1GetActionError = unknown; + +export type ConnectionsControllerGetConnectionsData = { + query?: { + appNames?: unknown; + connectionId?: string; + integrationId?: string; + page?: number; + pageSize?: number; + showActiveOnly?: boolean; + showDisabled?: boolean; + status?: string; + user_uuid?: string; + }; +}; + +export type ConnectionsControllerGetConnectionsResponse = GetConnectionsResponseDto; + +export type ConnectionsControllerGetConnectionsError = unknown; + +export type ConnectionsControllerInitiateConnectionData = { + /** + * InitiateConnectionPayloadDto + */ + body?: InitiateConnectionPayloadDto; +}; + +export type ConnectionsControllerInitiateConnectionResponse = InitiateConnectionResponse; + +export type ConnectionsControllerInitiateConnectionError = unknown; + +export type ConnectionsControllerGetConnectionData = { + path: { + connectedAccountId: string; + }; +}; + +export type ConnectionsControllerGetConnectionResponse = unknown; + +export type ConnectionsControllerGetConnectionError = unknown; + +export type ConnectionsControllerDeleteConnectionData = { + path: { + connectedAccountId: string; + }; +}; + +export type ConnectionsControllerDeleteConnectionResponse = unknown; + +export type ConnectionsControllerDeleteConnectionError = unknown; + +export type ConnectionsControllerDisableConnectionData = { + path: { + connectedAccountId: string; + }; +}; + +export type ConnectionsControllerDisableConnectionResponse = unknown; + +export type ConnectionsControllerDisableConnectionError = unknown; + +export type ConnectionsControllerEnableConnectionData = { + path: { + connectedAccountId: string; + }; +}; + +export type ConnectionsControllerEnableConnectionResponse = unknown; + +export type ConnectionsControllerEnableConnectionError = unknown; + +export type AppLoginControllerHandleOauth2CallbackData = { + path: { + appName: string; + }; + query: { + redirectUri: string; + }; +}; + +export type AppLoginControllerHandleOauth2CallbackResponse = unknown; + +export type AppLoginControllerHandleOauth2CallbackError = unknown; + +export type AppLoginControllerVerifyOauth2LoginData = { + path: { + appName: string; + }; +}; + +export type AppLoginControllerVerifyOauth2LoginResponse = unknown; + +export type AppLoginControllerVerifyOauth2LoginError = unknown; + +export type TriggersControllerListTriggersData = { + query?: { + appNames?: string; + connectedAccountIds?: string; + showEnabledOnly?: boolean; + triggerIds?: string; + }; +}; + +export type TriggersControllerListTriggersResponse = Array; + +export type TriggersControllerListTriggersError = unknown; + +export type TriggersControllerHandleTriggerData = { + body?: unknown; + headers?: { + ''?: unknown; + }; + path: { + appName: string; + clientId: string; + }; +}; + +export type TriggersControllerHandleTriggerResponse = unknown; + +export type TriggersControllerHandleTriggerError = unknown; + +export type TriggersControllerEnableTriggerData = { + body?: unknown; + path: { + connectedAccountId: string; + triggerName: string; + }; +}; + +export type TriggersControllerEnableTriggerResponse = unknown; + +export type TriggersControllerEnableTriggerError = unknown; + +export type TriggersControllerGetTriggerData = { + path: { + triggerId: string; + }; +}; + +export type TriggersControllerGetTriggerResponse = unknown; + +export type TriggersControllerGetTriggerError = unknown; + +export type TriggersControllerGetActiveTriggersData = { + query?: { + connectedAccountIds?: string; + integrationIds?: string; + limit?: number; + page?: number; + showDisabled?: boolean; + triggerIds?: string; + triggerNames?: string; + }; +}; + +export type TriggersControllerGetActiveTriggersResponse = unknown; + +export type TriggersControllerGetActiveTriggersError = unknown; + +export type TriggersControllerSwitchTriggerInstanceStatusData = { + body?: unknown; + path: { + triggerId: string; + }; +}; + +export type TriggersControllerSwitchTriggerInstanceStatusResponse = unknown; + +export type TriggersControllerSwitchTriggerInstanceStatusError = unknown; + +export type TriggersControllerSwitchPostTriggerInstanceStatusData = { + body?: unknown; + path: { + triggerId: string; + }; +}; + +export type TriggersControllerSwitchPostTriggerInstanceStatusResponse = unknown; + +export type TriggersControllerSwitchPostTriggerInstanceStatusError = unknown; + +export type TriggersControllerDisableTriggerData = { + path: { + triggerId: string; + }; +}; + +export type TriggersControllerDisableTriggerResponse = unknown; + +export type TriggersControllerDisableTriggerError = unknown; + +export type TriggersControllerDeleteTriggerData = { + path: { + triggerInstanceId: string; }; - '/v1/integrations': { - get: { - req: ListAllIntegrationsData; - res: { - /** - * OK - */ - 200: { - items?: Array<{ - /** - * The unique identifier of the newly created connector. - */ - id?: string; - /** - * The name of the connector. - */ - name?: string; - /** - * The authentication scheme used by the connector. - */ - authScheme?: string; - /** - * The timestamp indicating when the connector was created. - */ - createdAt?: string; - /** - * The timestamp indicating when the connector was last updated. - */ - updatedAt?: string; - /** - * A boolean indicating whether the connector is enabled or not. - */ - enabled?: boolean; - /** - * The unique identifier of the app associated with the connector. - */ - appId?: string; - /** - * The name of the app associated with the connector. - */ - appName?: string; - /** - * The URL of the logo of the app associated with the connector. - */ - logo?: string; - }>; - totalPages?: number; - page?: number; - }; - }; - }; - post: { - req: CreateIntegrationData; - res: { - /** - * OK - */ - 200: { - /** - * The unique identifier of the newly created connector. - */ - id?: string; - /** - * The name of the connector. - */ - name?: string; - /** - * The authentication scheme used by the connector. - */ - authScheme?: string; - /** - * An object containing the authentication configuration for the connector. - */ - authConfig?: { - /** - * The base URL for making API requests to the app. - */ - base_url?: string; - /** - * The client ID used for authentication with the app. - */ - client_id?: string; - /** - * The client secret used for authentication with the app. - */ - client_secret?: string; - }; - /** - * The timestamp indicating when the connector was created. - */ - createdAt?: string; - /** - * The timestamp indicating when the connector was last updated. - */ - updatedAt?: string; - /** - * A boolean indicating whether the connector is enabled or not. - */ - enabled?: boolean; - /** - * The unique identifier of the app associated with the connector. - */ - appId?: string; - /** - * An array of input fields expected by the connector. - */ - expectedInputFields?: Array<{ - [key: string]: unknown; - }>; - /** - * The URL of the logo of the app associated with the connector. - */ - logo?: string; - /** - * The name of the app associated with the connector. - */ - appName?: string; - }; - /** - * Bad Request - */ - 400: unknown; - }; - }; +}; + +export type TriggersControllerDeleteTriggerResponse = unknown; + +export type TriggersControllerDeleteTriggerError = unknown; + +export type TriggersControllerSetCallbackUrlData = { + body?: unknown; +}; + +export type TriggersControllerSetCallbackUrlResponse = unknown; + +export type TriggersControllerSetCallbackUrlError = unknown; + +export type TriggersControllerSetCallbackUrl1Data = { + body?: unknown; +}; + +export type TriggersControllerSetCallbackUrl1Response = unknown; + +export type TriggersControllerSetCallbackUrl1Error = unknown; + +export type TriggersControllerGetWebhookUrlResponse = unknown; + +export type TriggersControllerGetWebhookUrlError = unknown; + +export type TriggersControllerGetLogsData = { + query?: { + connectionId?: string; + integrationId?: string; + limit?: number; + page?: number; }; - '/v1/actions/{actionName}': { - get: { - req: GetActionData; - res: { - /** - * OK - */ - 200: { - /** - * The name of the action. - */ - name?: string; - /** - * The display name of the action. - */ - display_name?: string; - /** - * A description of the action. - * - */ - description?: string; - /** - * An object describing the input parameters of the action. - */ - parameters?: { - /** - * An object containing the properties of the input parameters. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required parameter names. - */ - required?: Array<(string)>; - /** - * The title of the input parameters. - */ - title?: string; - /** - * The type of the input parameters (e.g., "object"). - */ - type?: string; - }; - /** - * An object describing the response of the action. - */ - response?: { - /** - * An object containing the properties of the response. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required response field names. - */ - required?: Array<(string)>; - /** - * The title of the response. - */ - title?: string; - /** - * The type of the response (e.g., "object"). - */ - type?: string; - }; - /** - * The unique identifier of the app associated with the action. - */ - appId?: string; - /** - * The URL of the logo of the app associated with the action. - */ - logo?: string; - /** - * The name of the app associated with the action. - */ - appName?: string; - /** - * A boolean indicating whether the action is enabled or not. - */ - enabled?: boolean; - }; - /** - * Not Found - */ - 404: unknown; - }; - }; +}; + +export type TriggersControllerGetLogsResponse = TriggerLogsResDTO; + +export type TriggersControllerGetLogsError = unknown; + +export type TriggersControllerHandlePusherEventsData = { + body?: unknown; +}; + +export type TriggersControllerHandlePusherEventsResponse = unknown; + +export type TriggersControllerHandlePusherEventsError = unknown; + +export type AdminControllerSentryDnsResponse = unknown; + +export type AdminControllerSentryDnsError = unknown; + +export type CliControllerHandleCliCodeExchangeResponse = GenerateCLISessionResDTO; + +export type CliControllerHandleCliCodeExchangeError = unknown; + +export type CliControllerGetCliCodeData = { + query: { + code?: string; + key: string; }; - '/v2/actions': { - get: { - req: GetListActionsData; - res: { - /** - * OK - */ - 200: { - /** - * An array of action objects. - */ - items?: Array<{ - /** - * The name of the action. - */ - name?: string; - /** - * The display name of the action. - */ - display_name?: string; - /** - * A description of the action. - */ - description?: string; - /** - * An object describing the input parameters of the action. - */ - parameters?: { - /** - * An object containing the properties of the input parameters. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required parameter names. - */ - required?: Array<(string)>; - /** - * The title of the input parameters. - */ - title?: string; - /** - * The type of the input parameters (e.g., "object"). - */ - type?: string; - }; - /** - * An object describing the response of the action. - */ - response?: { - /** - * An object containing the properties of the response. - */ - properties?: { - [key: string]: unknown; - }; - /** - * An array of required response field names. - */ - required?: Array<(string)>; - /** - * The title of the response. - */ - title?: string; - /** - * The type of the response (e.g., "object"). - */ - type?: string; - }; - /** - * The unique identifier of the app associated with the action. - */ - appId?: string; - /** - * The URL of the logo of the app associated with the action. - */ - logo?: string; - /** - * The name of the app associated with the action. - */ - appName?: string; - /** - * A boolean indicating whether the action is enabled or not. This is decided based on whether you have created a connector for the same app. - * Without creating a connector and then connection for the app, you won't be able to execute the action. - */ - enabled?: boolean; - }>; - /** - * The current page number of the action list. - */ - page?: number; - /** - * The total number of pages available for the action list. - */ - totalPages?: number; - }; - }; - }; +}; + +export type CliControllerGetCliCodeResponse = GetCLISessionResDTO; + +export type CliControllerGetCliCodeError = unknown; + +export type CliControllerHandleCliCodeVerificationData = { + query: { + code?: string; + key: string; }; - '/v1/actions/{actionName}/execute': { - post: { - req: ExecuteActionData; - res: { - /** - * OK - */ - 200: { - /** - * An object containing the details of the action execution. - */ - execution_details?: { - /** - * A boolean indicating whether the action was executed successfully. - * - */ - executed?: boolean; - }; - /** - * An object containing the response data from the action execution. - */ - response_data?: { - [key: string]: unknown; - }; - }; - /** - * Not Found - */ - 404: unknown; - }; - }; +}; + +export type CliControllerHandleCliCodeVerificationResponse = VerifyCLICodeResDTO; + +export type CliControllerHandleCliCodeVerificationError = unknown; + +export type MetadataControllerGetMetadataData = { + query: { + email: string; }; - '/v1/triggers': { - get: { - req: ListTriggersData; - res: { - /** - * OK - */ - 200: Array<{ - /** - * The name of the event. - */ - name?: string; - /** - * The display name of the event. - */ - display_name?: string; - /** - * A brief description of the event. - */ - description?: string; - payload?: { - properties?: { - /** - * The SHA of the commit. - */ - id: string; - /** - * The commit message. - */ - message: string; - /** - * The timestamp of the commit. - */ - timestamp: string; - /** - * The GitHub username of the commit author. - */ - author: string; - /** - * The GitHub URL of the commit. - */ - url: string; - }; - }; - config?: { - type?: string; - title?: string; - required?: Array<(string)>; - properties?: { - /** - * string - */ - type?: string; - /** - * string - */ - title?: string; - /** - * string - */ - description?: string; - required?: Array<(string)>; - }; - }; - /** - * Instructions for the event. - */ - instructions?: string; - /** - * The unique ID of the app. - */ - appId?: string; - /** - * The key of the app. - */ - appKey?: string; - /** - * The URL of the app's logo image. - */ - logo?: string; - /** - * The name of the app. - */ - appName?: string; - /** - * The count of the event. - */ - count?: number; - /** - * Whether the event is enabled. - */ - enabled?: boolean; - }>; - }; - }; +}; + +export type MetadataControllerGetMetadataResponse = unknown; + +export type MetadataControllerGetMetadataError = unknown; + +export type MetadataControllerUpdateMetadataData = { + /** + * MetadataReqDTO + */ + body: MetadataReqDTO; +}; + +export type MetadataControllerUpdateMetadataResponse = unknown; + +export type MetadataControllerUpdateMetadataError = unknown; + +export type MetadataControllerToggleTriggerStateData = { + /** + * TriggersEnabledToggleReqDTO + */ + body?: TriggersEnabledToggleReqDTO; +}; + +export type MetadataControllerToggleTriggerStateResponse = unknown; + +export type MetadataControllerToggleTriggerStateError = unknown; + +export type MetadataControllerGetToggleInfoResponse = unknown; + +export type MetadataControllerGetToggleInfoError = unknown; + +export type LogsControllerGetLogsData = { + query?: { + connectionId?: string; + cursor?: string; + integrationId?: string; + limit?: number; + search?: string; + status?: 'pending' | 'processed' | 'failed'; + time?: '30m' | '6h' | '1d' | '1w' | '1month' | '1y'; + type?: 'error' | 'info' | 'debug'; }; - '/v1/triggers/active_triggers': { - get: { - req: ListActiveTriggersData; - res: { - /** - * A list of active triggers - */ - 200: { - triggers?: Array<{ - /** - * Unique identifier for the trigger. - */ - id?: string; - /** - * Identifier for the connection associated with the trigger. - */ - connectionId?: string; - /** - * Name of the trigger. - */ - triggerName?: string; - /** - * Data associated with the trigger. - */ - triggerData?: string; - /** - * Configuration settings for the trigger. - */ - triggerConfig?: { - [key: string]: unknown; - }; - /** - * State information for the trigger. - */ - state?: { - [key: string]: unknown; - }; - /** - * Timestamp when the trigger was created. - */ - createdAt?: string; - /** - * Timestamp when the trigger was last updated. - */ - updatedAt?: string; - /** - * Timestamp when the trigger was disabled, if applicable. - */ - disabledAt?: string; - }>; - pageInfo?: { - /** - * The current page number. - */ - currentPage?: number; - /** - * The total number of pages. - */ - totalPages?: number; - /** - * The number of items per page. - */ - perPage?: number; - }; - }; - }; - }; +}; + +export type LogsControllerGetLogsResponse = LogsResDTO; + +export type LogsControllerGetLogsError = unknown; + +export type ActionsControllerV2ListActionsData = { + query?: { + actions?: string; + appNames?: string; + apps?: string; + filterImportantActions?: boolean; + limit?: number; + showAll?: boolean; + showEnabledOnly?: boolean; + tags?: string; + useCase?: string; + usecaseLimit?: number; }; - '/v1/triggers/get/{triggerId}': { - get: { - req: GetActiveTriggerData; - res: { - /** - * A successful response containing the details of the active trigger. - */ - 200: { - /** - * Unique identifier for the trigger. - */ - id?: string; - /** - * Identifier for the connection associated with the trigger. - */ - connectionId?: string; - /** - * Name of the trigger. - */ - triggerName?: string; - /** - * Data associated with the trigger. - */ - triggerData?: string; - /** - * Configuration settings for the trigger. - */ - triggerConfig?: { - [key: string]: unknown; - }; - /** - * State information for the trigger. - */ - state?: { - [key: string]: unknown; - }; - /** - * Timestamp when the trigger was created. - */ - createdAt?: string; - /** - * Timestamp when the trigger was last updated. - */ - updatedAt?: string; - /** - * Timestamp when the trigger was disabled, if applicable. - */ - disabledAt?: string; - }; - /** - * Trigger not found - */ - 404: unknown; - /** - * Internal server error - */ - 500: unknown; - }; - }; +}; + +export type ActionsControllerV2ListActionsResponse = ActionsListResponseDTO; + +export type ActionsControllerV2ListActionsError = unknown; + +export type ActionsControllerV2ExecuteActionData = { + /** + * ActionExecutionReqDTO + */ + body?: ActionExecutionReqDTO; + path: { + actionId: string; }; -}; \ No newline at end of file +}; + +export type ActionsControllerV2ExecuteActionResponse = ExecuteActionResDTO; + +export type ActionsControllerV2ExecuteActionError = unknown; + +export type ActionsControllerV2ExecuteActionProxyData = { + /** + * ActionExecutionReqDTO + */ + body?: ActionExecutionReqDTO; +}; + +export type ActionsControllerV2ExecuteActionProxyResponse = ExecuteActionResDTO; + +export type ActionsControllerV2ExecuteActionProxyError = unknown; \ No newline at end of file diff --git a/js/src/sdk/index.spec.ts b/js/src/sdk/index.spec.ts new file mode 100644 index 00000000000..d58575576da --- /dev/null +++ b/js/src/sdk/index.spec.ts @@ -0,0 +1,27 @@ +import { describe, it, expect } from "@jest/globals"; +import { Composio } from "./index"; +import { getTestConfig } from "../../config/getTestConfig"; + +const { COMPOSIO_API_KEY, BACKEND_HERMES_URL } = getTestConfig(); + +describe("Basic SDK spec suite", () => { + it("should create a basic client", () => { + const client = new Composio(COMPOSIO_API_KEY); + expect(client).toBeInstanceOf(Composio); + }); + + it("should throw an error if apiKey is not provided", () => { + expect(() => new Composio()).toThrow('API Key is required for initializing the client'); + }); + + it("should get an entity and then fetch a connection", async () => { + const app = "github"; + const composio = new Composio(COMPOSIO_API_KEY, BACKEND_HERMES_URL); + const entity = composio.getEntity("default"); + + expect(entity.id).toBe("default"); + + const connection = await entity.getConnection(app); + expect(connection.appUniqueId).toBe(app); + }); +}); diff --git a/js/src/sdk/index.ts b/js/src/sdk/index.ts index ebba5a2fbd7..4bf988aa639 100644 --- a/js/src/sdk/index.ts +++ b/js/src/sdk/index.ts @@ -1,295 +1,61 @@ -import axios, { AxiosInstance } from 'axios'; -import { ConnectedAccounts, ConnectionRequest } from './models/connectedAccounts'; +import { ConnectedAccounts } from './models/connectedAccounts'; import { Apps } from './models/apps'; import { Actions } from './models/actions'; import { Triggers } from './models/triggers'; import { Integrations } from './models/integrations'; import { ActiveTriggers } from './models/activeTriggers'; -import { AuthScheme, GetConnectedAccountResponse, ListActiveTriggersResponse, ListAllConnectionsResponse, OpenAPI, PatchUpdateActiveTriggerStatusResponse, SetupTriggerResponse } from './client'; import { getEnvVariable } from '../utils/shared'; import { COMPOSIO_BASE_URL } from './client/core/OpenAPI'; +import { BackendClient } from './models/backendClient'; +import { Entity } from './models/Entity'; export class Composio { - public apiKey: string; - public baseUrl: string; - private http: AxiosInstance; - - + /** + * The Composio class serves as the main entry point for interacting with the Composio SDK. + * It provides access to various models that allow for operations on connected accounts, apps, + * actions, triggers, integrations, and active triggers. + */ + backendClient: BackendClient; connectedAccounts: ConnectedAccounts; apps: Apps; actions: Actions; triggers: Triggers; integrations: Integrations; activeTriggers: ActiveTriggers; - config: typeof OpenAPI; + /** + * Initializes a new instance of the Composio class. + * + * @param {string} [apiKey] - The API key for authenticating with the Composio backend. Can also be set locally in an environment variable. + * @param {string} [baseUrl] - The base URL for the Composio backend. By default, it is set to the production URL. + * @param {string} [runtime] - The runtime environment for the SDK. + */ constructor(apiKey?: string, baseUrl?: string, runtime?: string) { - this.apiKey = apiKey || getEnvVariable("COMPOSIO_API_KEY") || ''; - if (!this.apiKey) { - throw new Error('API key is missing'); - } - - this.baseUrl = baseUrl || Composio.getApiUrlBase(); - this.http = axios.create({ - baseURL: this.baseUrl, - headers: { - 'X-API-KEY': `${this.apiKey}`, - 'X-SOURCE': 'js_sdk', - 'X-RUNTIME': runtime - } - }); - - this.config = { - ...OpenAPI, - BASE: this.baseUrl, - HEADERS: { - 'X-API-Key': `${this.apiKey}`, - 'X-SOURCE': 'js_sdk', - // @ts-ignore - 'X-RUNTIME': runtime - } - } - - this.connectedAccounts = new ConnectedAccounts(this); - this.apps = new Apps(this); - this.actions = new Actions(this); - this.triggers = new Triggers(this); - this.integrations = new Integrations(this); - this.activeTriggers = new ActiveTriggers(this); - - } - - public async getClientId(): Promise { - const response = await this.http.get('/v1/client/auth/client_info',{ - headers: { - 'X-API-KEY': `${this.apiKey}` - } - }); - if (response.status !== 200) { - throw new Error(`HTTP Error: ${response.status}`); - } - return response.data.client.id; - } - - static getApiUrlBase(): string { - return getEnvVariable("COMPOSIO_BASE_URL", COMPOSIO_BASE_URL) as string; - } - - static async generateAuthKey(baseUrl?: string): Promise { - const http = axios.create({ - baseURL: baseUrl || this.getApiUrlBase(), - headers: { - 'Authorization': '' - } - }); - const response = await http.get('/v1/cli/generate_cli_session'); - if (response.status !== 200) { - throw new Error(`HTTP Error: ${response.status}`); - } - return response.data.key; - } - - static async validateAuthSession(key: string, code: string, baseUrl?: string): Promise { - const http = axios.create({ - baseURL: baseUrl || this.getApiUrlBase(), - headers: { - 'Authorization': '' - } - }); - const response = await http.get(`/v1/cli/verify_cli_code`, { - params: { key, code } - }); - if (response.status !== 200) { - throw new Error(`HTTP Error: ${response.status}`); - } - return response.data.apiKey; - } - + // Parse the base URL and API key, falling back to environment variables or defaults if not provided. + const baseURLParsed = baseUrl || getEnvVariable("COMPOSIO_BASE_URL", COMPOSIO_BASE_URL) || "https://backend.composio.dev"; + const apiKeyParsed = apiKey || getEnvVariable("COMPOSIO_API_KEY") || ''; + + // Initialize the BackendClient with the parsed API key and base URL. + this.backendClient = new BackendClient(apiKeyParsed, baseURLParsed, runtime); + + // Instantiate models with dependencies as needed. + this.connectedAccounts = new ConnectedAccounts(this.backendClient); + this.triggers = new Triggers(this.backendClient); + this.apps = new Apps(this.backendClient); + this.actions = new Actions(this.backendClient); + this.integrations = new Integrations(this.backendClient); + this.activeTriggers = new ActiveTriggers(this.backendClient); + } + + + /** + * Retrieves an Entity instance associated with a given ID. + * + * @param {string} [id='default'] - The ID of the entity to retrieve. + * @returns {Entity} An instance of the Entity class. + */ getEntity(id: string = 'default'): Entity { - return new Entity(this, id); + return new Entity(this.backendClient, id); } } -export class Entity { - private client: Composio; - id: string; - - constructor(client: Composio, id: string = 'DEFAULT_ENTITY_ID') { - this.client = client; - this.id = id; - } - - async execute(actionName: string, params?: Record | undefined, text?: string | undefined, connectedAccountId?: string): Promise> { - const action = await this.client.actions.get({ - actionName: actionName - }); - if (!action) { - throw new Error("Could not find action: " + actionName); - } - const app = await this.client.apps.get({ - appKey: action.appKey! - }); - if ((app.yaml as any).no_auth) { - return this.client.actions.execute({ - actionName: actionName, - requestBody: { - input: params, - appName: action.appKey - } - }); - } - let connectedAccount = null; - if(connectedAccountId) { - connectedAccount = await this.client.connectedAccounts.get({ - connectedAccountId: connectedAccountId - }); - } else { - const connectedAccounts = await this.client.connectedAccounts.list({ - user_uuid: this.id, - appNames: [action.appKey!], - status: 'ACTIVE' - }); - if (connectedAccounts.items!.length === 0) { - throw new Error('No connected account found'); - } - - connectedAccount = connectedAccounts.items![0]; - } - return this.client.actions.execute({ - actionName: actionName, - requestBody: { - connectedAccountId: connectedAccount.id, - input: params, - appName: action.appKey, - text: text - } - }); - } - - async getConnection(app?: string, connectedAccountId?: string): Promise { - if (connectedAccountId) { - return await this.client.connectedAccounts.get({ - connectedAccountId - }); - } - - let latestAccount = null; - let latestCreationDate: Date | null = null; - const connectedAccounts = await this.client.connectedAccounts.list({ - user_uuid: this.id, - }); - - if(!connectedAccounts.items || connectedAccounts.items.length === 0) { - return null; - } - - for (const connectedAccount of connectedAccounts.items!) { - if (app === connectedAccount.appName) { - const creationDate = new Date(connectedAccount.createdAt!); - if ((!latestAccount || (latestCreationDate && creationDate > latestCreationDate)) && connectedAccount.status === "ACTIVE") { - latestCreationDate = creationDate; - latestAccount = connectedAccount; - } - } - } - - if (!latestAccount) { - return null; - } - - return this.client.connectedAccounts.get({ - connectedAccountId: latestAccount.id! - }); - } - - async setupTrigger(app: string, triggerName: string, config: { [key: string]: any }): Promise { - /** - * Enable a trigger for an entity. - * - * @param app App name - * @param triggerName Trigger name - * @param config Trigger config - */ - const connectedAccount = await this.getConnection(app); - if (!connectedAccount) { - throw new Error(`Could not find a connection with app='${app}' and entity='${this.id}'`); - } - return this.client.triggers.setup({ - triggerName: triggerName, - connectedAccountId: connectedAccount.id!, - requestBody: { - triggerConfig: config, - } - }); - } - - async disableTrigger(triggerId: string): Promise { - /** - * Disable a trigger for an entity. - * - * @param triggerId Trigger ID - */ - return this.client.activeTriggers.disable({ triggerId: triggerId }); - } - - async getConnections(): Promise { - /** - * Get all connections for an entity. - */ - const connectedAccounts = await this.client.connectedAccounts.list({ - user_uuid: this.id - }); - return connectedAccounts.items!; - } - - async getActiveTriggers(): Promise { - /** - * Get all active triggers for an entity. - */ - const connectedAccounts = await this.getConnections(); - const activeTriggers = await this.client.activeTriggers.list({ - connectedAccountIds: connectedAccounts!.map(account => account.id!).join(",") - }); - return activeTriggers.triggers!; - } - - async initiateConnection( - appName: string, - authMode?: AuthScheme, - authConfig?: { [key: string]: any }, - redirectUrl?: string, - integrationId?: string - ): Promise { - - // Get the app details from the client - const app = await this.client.apps.get({ appKey: appName }); - const timestamp = new Date().toISOString().replace(/[-:.]/g, ""); - - let integration = integrationId ? await this.client.integrations.get({ integrationId: integrationId }) : null; - // Create a new integration if not provided - if (!integration && authMode) { - integration = await this.client.integrations.create({ - appId: app.appId!, - name: `integration_${timestamp}`, - authScheme: authMode, - authConfig: authConfig, - useComposioAuth: false, - }); - } - - if (!integration && !authMode) { - integration = await this.client.integrations.create({ - appId: app.appId!, - name: `integration_${timestamp}`, - useComposioAuth: true, - }); - } - - // Initiate the connection process - return this.client.connectedAccounts.initiate({ - integrationId: integration!.id!, - userUuid: this.id, - redirectUri: redirectUrl, - }); - } -} diff --git a/js/src/sdk/models/Entity.spec.ts b/js/src/sdk/models/Entity.spec.ts new file mode 100644 index 00000000000..123c20b382d --- /dev/null +++ b/js/src/sdk/models/Entity.spec.ts @@ -0,0 +1,70 @@ +import { describe, it, expect } from "@jest/globals"; +import { getBackendClient } from "../testUtils/getBackendClient"; +import { Entity } from "./Entity"; + +describe("Entity class tests", () => { + let backendClient = getBackendClient(); + let entity: Entity; + let triggerId: string; + + beforeAll(() => { + entity = new Entity(backendClient, "default"); + }); + + it("should create an Entity instance with 'default' id", () => { + expect(entity).toBeInstanceOf(Entity); + expect(entity.id).toBe("default"); + }); + + it("get connection for github", async () => { + const app = "github"; + const connection = await entity.getConnection(app); + expect(connection.appUniqueId).toBe(app); + }); + + it("execute action", async () => { + const connectedAccount = await entity.getConnection("github"); + + expect(connectedAccount).toHaveProperty('id'); + expect(connectedAccount).toHaveProperty('appUniqueId', 'github'); + const actionName = "GITHUB_GITHUB_API_ROOT".toLowerCase(); + const requestBody = {}; + + const executionResult = await entity.execute(actionName, requestBody, undefined, connectedAccount.id); + expect(executionResult).toBeDefined(); + // @ts-ignore + expect(executionResult.execution_details).toHaveProperty('executed', true); + expect(executionResult.response_data["authorizations_url"]).toBeDefined(); + }); + + + + it("get connections", async () => { + const connections = await entity.getConnections(); + expect(connections.length).toBeGreaterThan(0); + }); + + it("get active triggers", async () => { + // const triggers = await entity.getActiveTriggers(); + // expect(triggers.length).toBeGreaterThan(0); + }); + + it("setup trigger", async () => { + const trigger = await entity.setupTrigger("gmail", "gmail_new_gmail_message", { "userId": "me", "interval": 60, "labelIds": "INBOX" }); + + triggerId = trigger.triggerId; + expect(trigger.status).toBe("success"); + expect(trigger.triggerId).toBeDefined(); + }); + + it("disable trigger", async () => { + const trigger = await entity.disableTrigger(triggerId); + expect(trigger.status).toBe("success"); + }); + + it("initiate connection", async () => { + const connection = await entity.initiateConnection("github"); + expect(connection.connectionStatus).toBe("INITIATED"); + }); + +}); diff --git a/js/src/sdk/models/Entity.ts b/js/src/sdk/models/Entity.ts new file mode 100644 index 00000000000..845f78328ad --- /dev/null +++ b/js/src/sdk/models/Entity.ts @@ -0,0 +1,192 @@ +import { ConnectionRequest } from "./connectedAccounts"; +import {Actions} from "./actions" +import { Apps } from "./apps"; +import { Integrations } from "./integrations"; +import { ActiveTriggers } from "./activeTriggers"; +import { ConnectedAccounts } from "./connectedAccounts"; +import { ExecuteActionResDTO } from "../client"; +import { BackendClient } from "./backendClient"; +import { Triggers } from "./triggers"; + + +export class Entity { + id: string; + backendClient: BackendClient; + triggerModel: Triggers; + actionsModel: Actions; + apps: Apps; + connectedAccounts: ConnectedAccounts; + integrations: Integrations; + activeTriggers: ActiveTriggers; + + constructor(backendClient: BackendClient, id: string = 'default') { + this.backendClient = backendClient; + this.id = id; + this.triggerModel = new Triggers(this.backendClient); + this.actionsModel = new Actions(this.backendClient); + this.apps = new Apps(this.backendClient); + this.connectedAccounts = new ConnectedAccounts(this.backendClient); + this.integrations = new Integrations(this.backendClient); + this.activeTriggers = new ActiveTriggers(this.backendClient); + } + + async execute(actionName: string, params?: Record | undefined, text?: string | undefined, connectedAccountId?: string): Promise { + const action = await this.actionsModel.get({ + actionName: actionName + }); + if (!action) { + throw new Error("Could not find action: " + actionName); + } + const app = await this.apps.get({ + appKey: action.appKey! + }); + if ((app.yaml as any).no_auth) { + return this.actionsModel.execute({ + actionName: actionName, + requestBody: { + input: params, + appName: action.appKey + } + }); + } + let connectedAccount = null; + if (connectedAccountId) { + connectedAccount = await this.connectedAccounts.get({ + connectedAccountId: connectedAccountId + }); + } else { + const connectedAccounts = await this.connectedAccounts.list({ + user_uuid: this.id, + appNames: action.appKey, + status: 'ACTIVE' + }); + // @ts-ignore + if (connectedAccounts?.items!.length === 0) { + throw new Error('No connected account found'); + } + + // @ts-ignore + connectedAccount = connectedAccounts.items![0]; + } + return this.actionsModel.execute({ + actionName: actionName, + requestBody: { + // @ts-ignore + connectedAccountId: connectedAccount?.id as unknown as string, + input: params, + appName: action.appKey, + text: text + } + }); + } + + async getConnection(app?: string, connectedAccountId?: string): Promise { + if (connectedAccountId) { + return await this.connectedAccounts.get({ + connectedAccountId + }); + } + + let latestAccount = null; + let latestCreationDate: Date | null = null; + const connectedAccounts = await this.connectedAccounts.list({ + user_uuid: this.id, + }); + + if (!connectedAccounts.items || connectedAccounts.items.length === 0) { + return null; + } + + for (const connectedAccount of connectedAccounts.items!) { + if (app === connectedAccount.appName) { + const creationDate = new Date(connectedAccount.createdAt!); + if ((!latestAccount || (latestCreationDate && creationDate > latestCreationDate)) && connectedAccount.status === "ACTIVE") { + latestCreationDate = creationDate; + latestAccount = connectedAccount; + } + } + } + + if (!latestAccount) { + return null; + } + + return this.connectedAccounts.get({ + connectedAccountId: latestAccount.id! + }); + } + + async setupTrigger(app: string, triggerName: string, config: { [key: string]: any; }): Promise { + const connectedAccount = await this.getConnection(app); + if (!connectedAccount) { + throw new Error(`Could not find a connection with app='${app}' and entity='${this.id}'`); + } + const trigger = await this.triggerModel.setup(connectedAccount.id!, triggerName, config); + return trigger; + } + + async disableTrigger(triggerId: string): Promise { + return ActiveTriggers.disable({ triggerId: triggerId }); + } + + async getConnections(){ + /** + * Get all connections for an entity. + */ + const connectedAccounts = await this.connectedAccounts.list({ + user_uuid: this.id + }); + return connectedAccounts.items!; + } + + async getActiveTriggers() { + /** + * Get all active triggers for an entity. + */ + const connectedAccounts = await this.getConnections(); + const activeTriggers = await this.activeTriggers.list({ + connectedAccountIds: connectedAccounts!.map((account:any) => account.id!).join(",") + }); + return activeTriggers; + } + + async initiateConnection( + appName: string, + authMode?: any, + authConfig?: { [key: string]: any; }, + redirectUrl?: string, + integrationId?: string + ): Promise { + + // Get the app details from the client + const app = await this.apps.get({ appKey: appName }); + const timestamp = new Date().toISOString().replace(/[-:.]/g, ""); + + let integration = integrationId ? await this.integrations.get({ integrationId: integrationId }) : null; + // Create a new integration if not provided + if (!integration && authMode) { + integration = await this.integrations.create({ + appId: app.appId!, + name: `integration_${timestamp}`, + authScheme: authMode, + authConfig: authConfig, + useComposioAuth: false, + }); + } + + if (!integration && !authMode) { + integration = await this.integrations.create({ + appId: app.appId!, + name: `integration_${timestamp}`, + useComposioAuth: true, + }); + } + + // Initiate the connection process + return this.connectedAccounts.initiate({ + integrationId: integration!.id!, + userUuid: this.id, + redirectUri: redirectUrl, + }); + } +} diff --git a/js/src/sdk/models/actions.spec.ts b/js/src/sdk/models/actions.spec.ts new file mode 100644 index 00000000000..4007bc69197 --- /dev/null +++ b/js/src/sdk/models/actions.spec.ts @@ -0,0 +1,69 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { getBackendClient } from "../testUtils/getBackendClient"; +import { Actions } from "./actions"; +import { Entity } from "./Entity"; +import { ConnectedAccounts } from "./connectedAccounts"; + +describe("Apps class tests", () => { + let backendClient; + let actions: Actions; + let connectedAccouns: ConnectedAccounts + + beforeAll(() => { + backendClient = getBackendClient(); + actions = new Actions(backendClient); + connectedAccouns = new ConnectedAccounts(backendClient); + }); + + it("should get a specific action", async () => { + const actionName = "GITHUB_GITHUB_API_ROOT".toLowerCase(); + const action = await actions.get({ actionName }); + expect(action).toHaveProperty('name', actionName); + }); + + it("should get a list of actions", async () => { + const actionsList = await actions.list(); + expect(actionsList.items).toBeInstanceOf(Array); + expect(actionsList.items).not.toHaveLength(0); + }); + + it("should execute an action with a connected account for GitHub", async () => { + + const actionName = "GITHUB_GITHUB_API_ROOT".toLowerCase(); + const connectedAccountsResult = await connectedAccouns.list({query:{ appNames: ['github'] }}); + expect(connectedAccountsResult.items).not.toHaveLength(0); + const connectionId = connectedAccountsResult.items[0].id; + + const executionResult = await actions.execute({ + actionName: actionName, + requestBody: { + connectedAccountId: connectionId, + input: {}, + appName: 'github' + } + }); + + expect(executionResult).toHaveProperty('execution_details.executed', true); + expect(executionResult).toHaveProperty('response_data.authorizations_url'); + }); + + it("should execute an action of noauth app", async () => { + return; + const actionName = "codeinterpreter_execute_code"; + const input = { code_to_execute: 'print("Hello World");' }; + + const executionResult = await actions.execute({ + actionName, + requestBody: { + input: input, + appName: "codeinterpreter", + } + }); + + expect(executionResult).toHaveProperty('execution_details.executed', true); + //@ts-ignore + const parsedResponseData = JSON.parse(executionResult.response_data); + expect(parsedResponseData).toHaveProperty('stdout', 'Hello World\n'); + expect(parsedResponseData).toHaveProperty('stderr', ''); + }); +}); diff --git a/js/src/sdk/models/actions.ts b/js/src/sdk/models/actions.ts index d4fceb7407e..b707de66ddb 100644 --- a/js/src/sdk/models/actions.ts +++ b/js/src/sdk/models/actions.ts @@ -1,5 +1,6 @@ -import { CancelablePromise, GetActionData, GetActionResponse, GetListActionsData, GetListActionsResponse, ExecuteActionData, ExecuteActionResponse, getAction, getListActions, executeAction } from "../client"; -import { Composio } from "../"; +import { ActionsListResponseDTO, ExecuteActionResDTO } from "../client"; +import apiClient from "../client/client"; +import { BackendClient } from "./backendClient"; /** * The `Actions` class provides methods to interact with the Composio platform's actions. @@ -18,9 +19,93 @@ import { Composio } from "../"; * to interact with actions in the Composio platform. This includes fetching, listing, and * executing actions. */ + +export type GetListActionsData = { + /** + * Name of the apps like "github", "linear" separated by a comma + */ + apps?: string; + /** + * Filter by Action names + */ + actions?: string; + /** + * Filter by Action tags + */ + tags?: string; + /** + * Filter by use case + */ + useCase?: string | undefined; + /** + * Limit of use-cases based search + */ + usecaseLimit?: string; + /** + * Show all actions - i.e disable pagination + */ + showAll?: boolean; + /** + * Show actions enabled for the API Key + */ + showEnabledOnly?: boolean; + /** + * Use smart tag filtering + */ + filterImportantActions?: boolean; +} + +export type ExecuteActionData = { + /** + * The name of the action to execute. + */ + actionName: string; + requestBody?: { + /** + * The unique identifier of the connection to use for executing the action. + */ + connectedAccountId?: string; + /** + * An object containing the input parameters for the action. If you want to execute + * NLP based action (i.e text), you can use text parameter instead of input. + */ + input?: { + [key: string]: unknown; + }; + appName?: string; + /** + * The text to supply to the action which will be automatically converted to + * appropriate input parameters. + */ + text?: string; + }; +}; + +export type ExecuteActionResponse = { + /** + * An object containing the details of the action execution. + */ + execution_details?: { + /** + * A boolean indicating whether the action was executed successfully. + * + */ + executed?: boolean; + }; + /** + * An object containing the response data from the action execution. + */ + response_data?: { + [key: string]: unknown; + }; +}; export class Actions { - constructor(private readonly client: Composio) { + backendClient: BackendClient; + + constructor(backendClient: BackendClient) { + this.backendClient = backendClient; } + /** * Retrieves details of a specific action in the Composio platform by providing its action name. * @@ -30,9 +115,14 @@ export class Actions { * @returns {CancelablePromise} A promise that resolves to the details of the action. * @throws {ApiError} If the request fails. */ - async get(data: GetActionData): Promise { - const actions = await getAction(data, this.client.config); - return actions[0]!; + async get(data: { actionName: string; }) { + const actions = await apiClient.actionsV1.v1GetAction({ + path: { + actionId: data.actionName + } + }); + + return (actions.data! as unknown as any[])[0]; } /** @@ -44,8 +134,22 @@ export class Actions { * @returns {CancelablePromise} A promise that resolves to the list of all actions. * @throws {ApiError} If the request fails. */ - list(data: GetListActionsData = {}): CancelablePromise { - return getListActions(data, this.client.config); + list(data: GetListActionsData = {}): Promise { + return apiClient.actionsV2.v2ListActions({ + query: { + actions: data.actions, + apps: data.apps, + showAll: data.showAll, + tags: data.tags, + useCase: data.useCase as string, + filterImportantActions: data.filterImportantActions, + showEnabledOnly: data.showEnabledOnly + + } + }).then(res => { + const resp = res; + return res.data! + }) } /** @@ -57,7 +161,14 @@ export class Actions { * @returns {CancelablePromise} A promise that resolves to the execution status and response data. * @throws {ApiError} If the request fails. */ - execute(data: ExecuteActionData): CancelablePromise { - return executeAction(data, this.client.config); + async execute(data: ExecuteActionData): Promise { + const {data:res,error} = await apiClient.actionsV2.v2ExecuteAction({ + body: data.requestBody, + path: { + actionId: data.actionName + } + }) + + return res! } } diff --git a/js/src/sdk/models/activeTriggers.spec.ts b/js/src/sdk/models/activeTriggers.spec.ts new file mode 100644 index 00000000000..240ce3ad80e --- /dev/null +++ b/js/src/sdk/models/activeTriggers.spec.ts @@ -0,0 +1,31 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { getBackendClient } from "../testUtils/getBackendClient"; +import { ActiveTriggers } from "./activeTriggers"; + +describe("Apps class tests", () => { + let backendClient; + let activeTriggers: ActiveTriggers; + + beforeAll(() => { + backendClient = getBackendClient(); + activeTriggers = new ActiveTriggers(backendClient); + + }); + + it("should get a specific action", async () => { + const activeTriggersList = await activeTriggers.list(); + expect(activeTriggersList).toBeInstanceOf(Array); + expect(activeTriggersList).not.toHaveLength(0); + }); + + it("should get a list of actions", async () => { + const activeTriggersList = await activeTriggers.list(); + const firstTrigger= activeTriggersList[0]; + const activeTrigger = await activeTriggers.get({ path:{ + triggerId: firstTrigger.id + } + }); + expect(activeTrigger).toBeDefined(); + }); + +}); diff --git a/js/src/sdk/models/activeTriggers.ts b/js/src/sdk/models/activeTriggers.ts index 87174b224ad..b042c896077 100644 --- a/js/src/sdk/models/activeTriggers.ts +++ b/js/src/sdk/models/activeTriggers.ts @@ -1,11 +1,13 @@ -import { CancelablePromise, GetActiveTriggerData, GetActiveTriggerResponse, ListActiveTriggersData, ListActiveTriggersResponse, PatchUpdateActiveTriggerStatusData, PatchUpdateActiveTriggerStatusResponse, getActiveTrigger, listActiveTriggers, updateActiveTriggerStatus } from "../client"; -import { Composio } from "../"; +import apiClient from "../client/client" +import { BackendClient } from "./backendClient"; export class ActiveTriggers { - constructor(private readonly client: Composio) { - this.client = client; - } + backendClient: BackendClient; + + constructor(backendClient: BackendClient) { + this.backendClient = backendClient; + } /** * Retrieves details of a specific active trigger in the Composio platform by providing its trigger name. * @@ -15,8 +17,9 @@ export class ActiveTriggers { * @returns {CancelablePromise} A promise that resolves to the details of the active trigger. * @throws {ApiError} If the request fails. */ - get(data: GetActiveTriggerData): CancelablePromise { - return getActiveTrigger(data, this.client.config); + get(data: any): any { + //@ts-ignore + return apiClient.triggers.getTrigger(data).then(res => res.data) } /** @@ -28,8 +31,10 @@ export class ActiveTriggers { * @returns {CancelablePromise} A promise that resolves to the list of all active triggers. * @throws {ApiError} If the request fails. */ - list(data: ListActiveTriggersData = {}): CancelablePromise { - return listActiveTriggers(data, this.client.config); + list(data: any = {}): any { + return apiClient.triggers.getActiveTriggers({ + query: data + }).then(res => (res.data as Record).triggers) } /** @@ -40,29 +45,21 @@ export class ActiveTriggers { * @returns {CancelablePromise>} A promise that resolves to the response of the enable request. * @throws {ApiError} If the request fails. */ - enable(data: {triggerId: PatchUpdateActiveTriggerStatusData["triggerId"]}): CancelablePromise { - return updateActiveTriggerStatus({ - triggerId: data.triggerId, - requestBody: { + enable(data: {triggerId: any}): any { + return apiClient.triggers.switchTriggerInstanceStatus({ + path: data, + body:{ enabled: true } - }, this.client.config); + }).then(res => res.data) } - /** - * Disables the previously disabled trigger. - * - * @param {Object} data The data for the request. - * @param {string} data.triggerId Id of the trigger - * @returns {CancelablePromise>} A promise that resolves to the response of the enable request. - * @throws {ApiError} If the request fails. - */ - disable(data: {triggerId: PatchUpdateActiveTriggerStatusData["triggerId"]}): CancelablePromise { - return updateActiveTriggerStatus({ - triggerId: data.triggerId, - requestBody: { + static disable(data: {triggerId: any}): any { + return apiClient.triggers.switchTriggerInstanceStatus({ + path: data, + body: { enabled: false } - }, this.client.config); + }).then(res => res.data) } } diff --git a/js/src/sdk/models/apps.spec.ts b/js/src/sdk/models/apps.spec.ts new file mode 100644 index 00000000000..b2909e5598c --- /dev/null +++ b/js/src/sdk/models/apps.spec.ts @@ -0,0 +1,45 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { getBackendClient } from "../testUtils/getBackendClient"; +import { Apps } from "./apps"; + +describe("Apps class tests", () => { + let backendClient; + let apps: Apps; + + beforeAll(() => { + backendClient = getBackendClient(); + apps = new Apps(backendClient); + }); + + it("should create an Apps instance and retrieve apps list", async () => { + const appsList = await apps.list(); + expect(appsList).toBeInstanceOf(Array); + expect(appsList).not.toHaveLength(0); + + const firstItem = appsList[0]; + expect(firstItem).toHaveProperty('appId'); + expect(firstItem).toHaveProperty('key'); + expect(firstItem).toHaveProperty('name'); + }); + + it("should get details of a specific app by key", async () => { + const appKey = "github"; + const app = await apps.get({ appKey }); + expect(app).toBeDefined(); + expect(app).toHaveProperty('auth_schemes'); + // @ts-ignore + expect(app.auth_schemes[0]).toHaveProperty('auth_mode', 'OAUTH2'); + expect(app).toHaveProperty('key', appKey); + expect(app).toHaveProperty('name', 'Github'); + expect(app).toHaveProperty('description'); + }); + + it("should return undefined for an invalid app key", async () => { + try { + const app = await apps.get({ appKey: "nonexistent_key" }); + expect(app).toBeUndefined(); + } catch (error) { + expect(error).toBeDefined(); + } + }); +}); diff --git a/js/src/sdk/models/apps.ts b/js/src/sdk/models/apps.ts index 12925cebdf7..b6af114bea7 100644 --- a/js/src/sdk/models/apps.ts +++ b/js/src/sdk/models/apps.ts @@ -1,21 +1,30 @@ -import { CancelablePromise, GetAppData, GetAppResponse, ListAllAppsResponse, getApp, listAllApps } from "../client"; -import { Composio } from "../" +import { AppInfoResponseDto, AppListResDTO, SingleAppInfoResDTO } from "../client"; +import apiClient from "../client/client" +import { BackendClient } from "./backendClient"; + +export type GetAppData = { + appKey: string; +}; + +export type GetAppResponse = SingleAppInfoResDTO; + +export type ListAllAppsResponse = AppListResDTO export class Apps { - constructor(private readonly client: Composio) { - this.client = client; + backendClient: BackendClient; + constructor(backendClient: BackendClient) { + this.backendClient = backendClient; } - /** * Retrieves a list of all available apps in the Composio platform. * * This method allows clients to explore and discover the supported apps. It returns an array of app objects, each containing essential details such as the app's key, name, description, logo, categories, and unique identifier. * - * @returns {Promise} A promise that resolves to the list of all apps. + * @returns {Promise} A promise that resolves to the list of all apps. * @throws {ApiError} If the request fails. */ - list(): CancelablePromise { - return listAllApps(this.client.config); + list(): Promise { + return apiClient.apps.getApps().then(res => res.data!.items) } /** @@ -27,8 +36,12 @@ export class Apps { * @returns {CancelablePromise} A promise that resolves to the details of the app. * @throws {ApiError} If the request fails. */ - get(data: GetAppData): CancelablePromise { - return getApp(data, this.client.config); + get(data: GetAppData) { + return apiClient.apps.getApp({ + path:{ + appName: data.appKey + } + }).then(res=>res.data!) } } diff --git a/js/src/sdk/models/backendClient.spec.ts b/js/src/sdk/models/backendClient.spec.ts new file mode 100644 index 00000000000..20cba2f3f67 --- /dev/null +++ b/js/src/sdk/models/backendClient.spec.ts @@ -0,0 +1,26 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { Apps } from "./apps"; +import { BACKEND_CONFIG, getTestConfig } from "../../../config/getTestConfig"; +import { BackendClient } from "./backendClient"; + +describe("Apps class tests", () => { + let backendClient; + let testConfig:BACKEND_CONFIG; + + beforeAll(() => { + testConfig = getTestConfig(); + }); + + it("should create an Apps instance and retrieve apps list", async () => { + backendClient = new BackendClient(testConfig.COMPOSIO_API_KEY, testConfig.BACKEND_HERMES_URL); + }); + + it("should throw an error if api key is not provided", async () => { + expect(() => new BackendClient("", testConfig.BACKEND_HERMES_URL)).toThrow('API Key is required for initializing the client'); + }); + + it("should throw and error if wrong base url is provided", async () => { + expect(() => new BackendClient(testConfig.COMPOSIO_API_KEY, "htt://wrong.url")).toThrow('Base URL is not valid'); + }); + +}); diff --git a/js/src/sdk/models/backendClient.ts b/js/src/sdk/models/backendClient.ts new file mode 100644 index 00000000000..bd8dce0c50d --- /dev/null +++ b/js/src/sdk/models/backendClient.ts @@ -0,0 +1,74 @@ +import apiClient from "../client/client" +import { client as axiosClient } from "../client/services.gen" + +/** + * Class representing the details required to initialize and configure the API client. + */ +export class BackendClient { + /** + * The API key used for authenticating requests. + */ + public apiKey: string; + + /** + * The base URL of the API against which requests will be made. + */ + public baseUrl: string; + + /** + * The runtime environment where the client is being used. + */ + public runtime: string; + + /** + * Creates an instance of apiClientDetails. + * @param {string} apiKey - The API key for client initialization. + * @param {string} baseUrl - The base URL for the API client. + * @param {string} runtime - The runtime environment identifier. + * @throws Will throw an error if the API key is not provided. + */ + constructor(apiKey: string, baseUrl: string, runtime?: string) { + this.runtime = runtime || ''; + this.apiKey = apiKey; + this.baseUrl = baseUrl; + + if (!apiKey) { + throw new Error(`API Key is required for initializing the client`); + } + + // Validate baseUrl + if (!baseUrl.startsWith("http://") && !baseUrl.startsWith("https://")) { + throw new Error(`Base URL is not valid, got ${baseUrl}`); + } + + this.initializeApiClient(); + } + + /** + * Retrieves the client ID from the user's information. + * @returns {Promise} A promise that resolves to the client ID. + * @throws Will throw an error if the HTTP request fails. + */ + public async getClientId(): Promise { + const response = await apiClient.clientAuthService.getUserInfo(); + if (response.status !== 200) { + throw new Error(`HTTP Error: ${response.status}`); + } + return (response.data as unknown as Record>).client.id; + } + + /** + * Initializes the API client with the provided configuration. + * @private + */ + private initializeApiClient() { + axiosClient.setConfig({ + baseURL: this.baseUrl, + headers: { + 'X-API-KEY': `${this.apiKey}`, + 'X-SOURCE': 'js_sdk', + 'X-RUNTIME': this.runtime + } + }); + } +} diff --git a/js/src/sdk/models/connectedAccounts.spec.ts b/js/src/sdk/models/connectedAccounts.spec.ts new file mode 100644 index 00000000000..7cfdde51414 --- /dev/null +++ b/js/src/sdk/models/connectedAccounts.spec.ts @@ -0,0 +1,61 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { getBackendClient } from "../testUtils/getBackendClient"; +import { ConnectedAccounts } from "./connectedAccounts"; + +describe("ConnectedAccounts class tests", () => { + let backendClient; + let connectedAccounts: ConnectedAccounts; + + beforeAll(() => { + backendClient = getBackendClient(); + connectedAccounts = new ConnectedAccounts(backendClient); + }); + + it("should create a ConnectedAccounts instance and retrieve connections list", async () => { + // @ts-ignore + const connectionsData: TConnectionData = { + appNames: 'github' + }; + const connectionsList = await connectedAccounts.list(connectionsData); + expect(connectionsList.items).toBeInstanceOf(Array); + expect(connectionsList.items).not.toHaveLength(0); + + // @ts-ignore + const firstConnection = connectionsList.items[0]; + expect(firstConnection.appName).toBe('github'); + expect(firstConnection).toHaveProperty('clientUniqueUserId'); + expect(firstConnection).toHaveProperty('status'); + expect(firstConnection).toHaveProperty('connectionParams'); + }); + + + it("should retrieve a specific connection", async () => { + + // @ts-ignore + const connectionsData: TConnectionData = { + appNames: 'github' + }; + const connectionsList = await connectedAccounts.list(connectionsData); + + const connectionId = connectionsList.items[0].id; + + const connection = await connectedAccounts.get({ connectedAccountId: connectionId }); + // @ts-ignore + expect(connection.id).toBe(connectionId); + }); + + it("should retrieve a specific connection for entity", async () => { + // @ts-ignore + const connectionsData: TConnectionData = { + user_uuid: 'default' + }; + const connectionsList = await connectedAccounts.list(connectionsData); + + const connectionId = connectionsList.items[0].id; + + const connection = await connectedAccounts.get({ connectedAccountId: connectionId }); + // @ts-ignore + expect(connection.id).toBe(connectionId); + }); + +}); diff --git a/js/src/sdk/models/connectedAccounts.ts b/js/src/sdk/models/connectedAccounts.ts index e3189f782e7..9719400cd3b 100644 --- a/js/src/sdk/models/connectedAccounts.ts +++ b/js/src/sdk/models/connectedAccounts.ts @@ -1,63 +1,44 @@ -import { CancelablePromise, listAllConnections, createConnection, GetConnectedAccountResponse, GetConnectedAccountData, CreateConnectionData, CreateConnectionResponse, ListAllConnectionsData, ListAllConnectionsResponse, getConnectedAccount } from "../client"; -import { Composio } from "../"; + +import { ConnectionsControllerGetConnectionsData, ConnectionsControllerGetConnectionData, ConnectionsControllerGetConnectionsResponse, GetConnectionsResponseDto } from "../client"; +import client from "../client/client"; +import apiClient from "../client/client" +import { BackendClient } from "./backendClient"; export class ConnectedAccounts { - constructor(private readonly client: Composio) { + backendClient: BackendClient; + + constructor(backendClient: BackendClient) { + this.backendClient = backendClient; } + + list(data: Record = {}): Promise{ + return apiClient.connections.getConnections({ + query: data + }).then(res=>{ + return res.data! + }) - /** - * Retrieves a list of all connected accounts in the Composio platform. - * - * It supports pagination and filtering based on various parameters such as app ID, integration ID, and connected account ID. The response includes an array of connection objects, each containing details like the connector ID, connection parameters, status, creation/update timestamps, and associated app information. - * - * @param {ListAllConnectionsData} data The data for the request. - * @returns {CancelablePromise} A promise that resolves to the list of all connected accounts. - * @throws {ApiError} If the request fails. - */ - list(data: ListAllConnectionsData = {}): CancelablePromise { - return listAllConnections(data, this.client.config); } - /** - * Connects an account to the Composio platform. - * - * This method allows you to connect an external app account with Composio. It requires the integration ID in the request body and returns the connection status, connection ID, and a redirect URL (if applicable) for completing the connection flow. - * - * @param {CreateConnectionData} data The data for the request. - * @returns {CancelablePromise} A promise that resolves to the connection status and details. - * @throws {ApiError} If the request fails. - */ - create(data: CreateConnectionData = {}): CancelablePromise { - return createConnection(data, this.client.config); + create(data: any = {}): any { + return apiClient.connections.initiateConnection({ + body: data + }).then(res=>res.data) } - /** - * Retrieves details of a specific account connected to the Composio platform by providing its connected account ID. - * - * The response includes the integration ID, connection parameters (such as scope, base URL, client ID, token type, access token, etc.), connection ID, status, and creation/update timestamps. - * - * @param {GetConnectedAccountData} data The data for the request. - * @returns {CancelablePromise} A promise that resolves to the details of the connected account. - * @throws {ApiError} If the request fails. - */ - get(data: GetConnectedAccountData): CancelablePromise { - return getConnectedAccount(data, this.client.config); + get(data: { connectedAccountId :string}) { + return apiClient.connections.getConnection({ + path: data + }).then(res => res.data) } - /** - * Initiates a new connected account on the Composio platform. - * - * This method allows you to start the process of connecting an external app account with Composio. It requires the integration ID and optionally the entity ID, additional parameters, and a redirect URL. - * - * @param {CreateConnectionData["requestBody"]} data The data for the request. - * @returns {CancelablePromise} A promise that resolves to the connection request model. - * @throws {ApiError} If the request fails. - */ async initiate( - data: CreateConnectionData["requestBody"] + data: any ): Promise { - const response = await createConnection({requestBody: data}, this.client.config); - return new ConnectionRequest(response.connectionStatus!, response.connectedAccountId!, response.redirectUrl, this.client); + const res = await client.connections.initiateConnection({ body: data }).then(res => res.data) + + //@ts-ignore + return new ConnectionRequest(res?.connectionStatus!, res?.connectedAccountId!, res?.redirectUrl!) } } @@ -72,7 +53,7 @@ export class ConnectionRequest { * @param {string} connectedAccountId The unique identifier of the connected account. * @param {string} [redirectUrl] The redirect URL for completing the connection flow. */ - constructor(connectionStatus: string, connectedAccountId: string, redirectUrl: string | null = null, private readonly client: Composio) { + constructor(connectionStatus: string, connectedAccountId: string, redirectUrl: string | null = null) { this.connectionStatus = connectionStatus; this.connectedAccountId = connectedAccountId; this.redirectUrl = redirectUrl; @@ -92,17 +73,21 @@ export class ConnectionRequest { redirectUrl?: string; entityId?: string; }) { - const connectedAccount = await this.client.connectedAccounts.get({ - connectedAccountId: this.connectedAccountId, + const connectedAccount = await apiClient.connections.getConnection({ + path:{ + connectedAccountId: this.connectedAccountId + } }); - return createConnection({ - requestBody: { + return apiClient.connections.initiateConnection({ + body: { + // @ts-ignore integrationId: connectedAccount.integrationId, + //@ts-ignore data: data.fieldInputs, redirectUri: data.redirectUrl, userUuid: data.entityId, - } - }, this.client.config); + } + }); } /** @@ -115,9 +100,13 @@ export class ConnectionRequest { async waitUntilActive(timeout = 60) { const startTime = Date.now(); while (Date.now() - startTime < timeout * 1000) { - const connection = await this.client.connectedAccounts.get({ - connectedAccountId: this.connectedAccountId, - }); + // @ts-ignore + const connection = await apiClient.connections.getConnection({ + path: { + connectedAccountId: this.connectedAccountId + } + }).then(res=>res.data); + //@ts-ignore if (connection.status === 'ACTIVE') { return connection; } diff --git a/js/src/sdk/models/integrations.spec.ts b/js/src/sdk/models/integrations.spec.ts new file mode 100644 index 00000000000..8e62fe93403 --- /dev/null +++ b/js/src/sdk/models/integrations.spec.ts @@ -0,0 +1,52 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { getBackendClient } from "../testUtils/getBackendClient"; +import { Integrations } from "./integrations"; + +describe("Integrations class tests", () => { + let backendClient; + let integrations: Integrations; + let createdIntegrationId: string; + + beforeAll(() => { + backendClient = getBackendClient(); + integrations = new Integrations(backendClient); + }); + + it("Retrieve integrations list", async () => { + const integrationsList = await integrations.list(); + expect(integrationsList?.items).toBeInstanceOf(Array); + expect(integrationsList?.items).not.toHaveLength(0); + }); + + it("should create an integration and verify its properties", async () => { + const integrationCreation = await integrations.create({ + appId: "01e22f33-dc3f-46ae-b58d-050e4d2d1909", + name: "test_integration_220", + useComposioAuth: true, + // @ts-ignore + forceNewIntegration:true + }); + expect(integrationCreation.id).toBeTruthy(); + expect(integrationCreation.appName).toBe("github"); + + createdIntegrationId = integrationCreation.id; + }); + + it("should retrieve the created integration by ID and verify its properties", async () => { + const integration = await integrations.get({ + integrationId: createdIntegrationId + }); + expect(integration.id).toBe(createdIntegrationId); + expect(integration.appId).toBe("01e22f33-dc3f-46ae-b58d-050e4d2d1909"); + expect(integration.authScheme).toBe("OAUTH2"); + }); + + it("should delete the created integration", async () => { + if (!createdIntegrationId) return; + await integrations.delete({ + path:{ + integrationId: createdIntegrationId + } + }); + }); +}); diff --git a/js/src/sdk/models/integrations.ts b/js/src/sdk/models/integrations.ts index a9b46512db0..6456b08bd0d 100644 --- a/js/src/sdk/models/integrations.ts +++ b/js/src/sdk/models/integrations.ts @@ -1,9 +1,85 @@ -import { CancelablePromise, ListAllIntegrationsResponse, GetIntegrationData, GetIntegrationResponse, listAllIntegrations, getIntegration, ListAllIntegrationsData, createIntegration, CreateIntegrationData, CreateIntegrationResponse } from "../client"; -import { Composio } from "../"; +import { AppConnectorControllerDeleteConnectorData } from "../client"; +import apiClient from "../client/client" +import { BackendClient } from "./backendClient"; + +export type ListAllIntegrationsData = { + /** + * Page number to fetch + */ + page?: number; + /** + * Page Size to assume + */ + pageSize?: number; +}; + +export type GetIntegrationData = { + /** + * The unique identifier of the integration. + */ + integrationId: string; +}; + +export type CreateIntegrationData = { + requestBody?: { + /** + * The name of the connector. + */ + name?: string; + /** + * The authentication scheme used by the connector (e.g., "OAUTH2", "API_KEY"). + */ + authScheme?: string; + /** + * The unique identifier of the app associated with the connector. + */ + appId?: string; + forceNewIntegration?: boolean; + /** + * An object containing the authentication configuration for the connector. + */ + authConfig?: { + /** + * The client ID used for authentication with the app - if authScheme is OAUTH2 + */ + client_id?: string; + /** + * The client secret used for authentication with the app - if authScheme is OAUTH2 + */ + client_secret?: string; + /** + * The API key used for authentication with the app - if authScheme is API_KEY + */ + api_key?: string; + /** + * The Consumer key used for authentication with the app - if authScheme is OAUTH1 + */ + consumer_key?: string; + /** + * The Consumer secret used for authentication with the app - if authScheme is OAUTH1 + */ + consumer_secret?: string; + /** + * The base URL for making API requests to the app. + */ + base_url?: string; + + [key: string]: unknown; + }; + /** + * Use default Composio credentials to proceed. The developer app credentials will be of Composio. + */ + useComposioAuth?: boolean; + }; +}; + export class Integrations { - constructor(private readonly client: Composio) { - this.client = client; + + backendClient: BackendClient; + + constructor(backendClient: BackendClient) { + this.backendClient = backendClient; } /** @@ -14,8 +90,10 @@ export class Integrations { * @returns {Promise} A promise that resolves to the list of all integrations. * @throws {ApiError} If the request fails. */ - list(data: ListAllIntegrationsData = {}): CancelablePromise { - return listAllIntegrations(data, this.client.config); + list(data: ListAllIntegrationsData = {}) { + return apiClient.appConnector.listGlobalConnectors({ + query: data + }).then(res=>res.data) } /** @@ -27,8 +105,10 @@ export class Integrations { * @returns {CancelablePromise} A promise that resolves to the details of the integration. * @throws {ApiError} If the request fails. */ - get(data: GetIntegrationData): CancelablePromise { - return getIntegration(data, this.client.config); + get(data: GetIntegrationData): any { + return apiClient.appConnector.getConnectorInfo({ + path: data + }).then(res => res.data) } /** @@ -42,14 +122,27 @@ export class Integrations { */ create( data: CreateIntegrationData["requestBody"] - ): CancelablePromise { + ): any { if (!data?.authConfig) { data!.authConfig = {}; } - return createIntegration({ - requestBody: data - }, this.client.config); + return apiClient.appConnector.createConnector({ + body: { + name: data?.name!, + appId: data?.appId!, + authConfig: data?.authConfig! as any, + authScheme: data?.authScheme, + useComposioAuth: data?.useComposioAuth!, + forceNewIntegration: true + } + }).then(res=>{ + return res.data + }); } + + delete(data: AppConnectorControllerDeleteConnectorData): any { + return apiClient.appConnector.deleteConnector(data).then(res=>res.data) + } } diff --git a/js/src/sdk/models/triggers.spec.ts b/js/src/sdk/models/triggers.spec.ts new file mode 100644 index 00000000000..895d2e3bca6 --- /dev/null +++ b/js/src/sdk/models/triggers.spec.ts @@ -0,0 +1,97 @@ +import { describe, it, expect, beforeAll } from "@jest/globals"; +import { getBackendClient } from "../testUtils/getBackendClient"; + +import { Triggers } from "./triggers"; +import { ConnectedAccounts } from "./connectedAccounts"; +import { Entity } from "./Entity"; + +describe("Apps class tests", () => { + let backendClient; + let triggers: Triggers; + let connectedAccounts: ConnectedAccounts; + let entity: Entity; + + let triggerId: string; + + beforeAll(() => { + backendClient = getBackendClient(); + triggers = new Triggers(backendClient); + connectedAccounts = new ConnectedAccounts(backendClient); + entity = new Entity(backendClient, "default"); + }); + + it("should create an Apps instance and retrieve apps list", async () => { + const triggerList = await triggers.list(); + expect(triggerList.length).toBeGreaterThan(0); + }); + + it("should retrieve a list of triggers for a specific app", async () => { + const triggerList = await triggers.list({ + appNames: "github" + }); + // this is breaking for now + expect(triggerList.length).toBeGreaterThan(0); + expect(triggerList[0].appName).toBe("github"); + }); + + +}); + + +describe("Apps class tests subscribe", () => { + let backendClient; + let triggers: Triggers; + let connectedAccounts: ConnectedAccounts; + let entity: Entity; + + let triggerId: string; + + beforeAll(() => { + backendClient = getBackendClient(); + triggers = new Triggers(backendClient); + connectedAccounts = new ConnectedAccounts(backendClient); + entity = new Entity(backendClient, "default"); + }); + + + + it("should create a new trigger for gmail", async () => { + const connectedAccount = await connectedAccounts.list({ query: { user_uuid: 'default' } }); + + const connectedAccountId = connectedAccount.items.find(item => item.appName === 'gmail')?.id; + const trigger = await triggers.setup(connectedAccountId, 'gmail_new_gmail_message', { + "userId": connectedAccount.items[0].id, + "interval": 60, + "labelIds": "INBOX", + },); + + expect(trigger.status).toBe("success"); + expect(trigger.triggerId).toBeTruthy(); + + triggerId = trigger.triggerId; + }) + + it("should disable, enable, and then disable the created trigger", async () => { + let trigger = await triggers.disable({ triggerId }); + expect(trigger.status).toBe("success"); + + trigger = await triggers.enable({ triggerId }); + expect(trigger.status).toBe("success"); + + trigger = await triggers.disable({ triggerId }); + expect(trigger.status).toBe("success"); + }); + + it("should subscribe to a trigger", async () => { + await triggers.subscribe((data) => { + // Explicitly passing the data to an empty function body + }, { + appName: "gmail", + triggerId: triggerId + }); + + await triggers.unsubscribe(); + + }); + +}); diff --git a/js/src/sdk/models/triggers.ts b/js/src/sdk/models/triggers.ts index fdd68d4e24a..45a3f03ca8a 100644 --- a/js/src/sdk/models/triggers.ts +++ b/js/src/sdk/models/triggers.ts @@ -1,13 +1,19 @@ -import { CancelablePromise, ListTriggersData, ListTriggersResponse, SetupTriggerData, SetupTriggerResponse, listTriggers, setupTrigger } from "../client"; -import { Composio } from "../"; + import { TriggerData, PusherUtils } from "../utils/pusher"; import logger from "../../utils/logger"; +import {BackendClient} from "./backendClient" + +import apiClient from "../client/client" +import { TriggersControllerListTriggersData, TriggersControllerListTriggersResponse } from "../client"; + +type RequiredQuery = TriggersControllerListTriggersData["query"]; export class Triggers { trigger_to_client_event = "trigger_to_client"; - constructor(private client: Composio) { - this.client = client; + backendClient: BackendClient; + constructor(backendClient: BackendClient) { + this.backendClient = backendClient; } /** @@ -19,8 +25,14 @@ export class Triggers { * @returns {CancelablePromise} A promise that resolves to the list of all triggers. * @throws {ApiError} If the request fails. */ - list(data: ListTriggersData = {}): CancelablePromise { - return listTriggers(data, this.client.config); + //@ts-ignore + list(data?: RequiredQuery={} ): Promise { + //@ts-ignore + return apiClient.triggers.listTriggers({ + query: { + appNames: data?.appNames, + } + }).then(res => res.data) } /** @@ -30,8 +42,38 @@ export class Triggers { * @returns {CancelablePromise} A promise that resolves to the setup trigger response. * @throws {ApiError} If the request fails. */ - setup(data: SetupTriggerData): CancelablePromise { - return setupTrigger(data, this.client.config); + //@ts-ignore + async setup(connectedAccountId, triggerName, config: Record):{status:"string",triggerId:string}{ + //@ts-ignore + const {data,error} = await apiClient.triggers.enableTrigger({ + path:{ + connectedAccountId, + triggerName + }, + body: { + triggerConfig: config + } + }) + + return data as unknown as {status:"string",triggerId:string}; + } + + enable(data: { triggerId: any }): any { + return apiClient.triggers.switchTriggerInstanceStatus({ + path: data, + body: { + enabled: true + } + }).then(res => res.data) + } + + disable(data: { triggerId: any }): any { + return apiClient.triggers.switchTriggerInstanceStatus({ + path: data, + body: { + enabled: false + } + }).then(res => res.data) } async subscribe(fn: (data: TriggerData) => void, filters:{ @@ -45,9 +87,10 @@ export class Triggers { }={}) { if(!fn) throw new Error("Function is required for trigger subscription"); - - const clientId = await this.client.getClientId(); - await PusherUtils.getPusherClient(this.client.baseUrl, this.client.apiKey); + //@ts-ignore + const clientId = await this.backendClient.getClientId(); + //@ts-ignore + await PusherUtils.getPusherClient(this.backendClient.baseUrl, this.backendClient.apiKey); const shouldSendTrigger = (data: TriggerData) => { if(Object.keys(filters).length === 0) return true; @@ -72,7 +115,8 @@ export class Triggers { } async unsubscribe() { - const clientId = await this.client.getClientId(); + //@ts-ignore + const clientId = await this.backendClient.getClientId(); PusherUtils.triggerUnsubscribe(clientId); } } diff --git a/js/src/sdk/testUtils/getBackendClient.ts b/js/src/sdk/testUtils/getBackendClient.ts new file mode 100644 index 00000000000..959ecdcc96b --- /dev/null +++ b/js/src/sdk/testUtils/getBackendClient.ts @@ -0,0 +1,16 @@ +import { BackendClient } from "../models/backendClient"; +import { getTestConfig } from "../../../config/getTestConfig"; + + +export const getBackendClient = (): BackendClient => { + const testConfig = getTestConfig(); + if (testConfig["COMPOSIO_API_KEY"] === undefined) { + throw new Error("COMPOSIO_API_KEY is not set in the test config"); + } + if (testConfig["BACKEND_HERMES_URL"] === undefined) { + throw new Error("BACKEND_HERMES_URL is not set in the test config."); + } + const COMPOSIO_API_KEY = testConfig["COMPOSIO_API_KEY"]; + const BACKEND_HERMES_URL = testConfig["BACKEND_HERMES_URL"]; + return new BackendClient(COMPOSIO_API_KEY, BACKEND_HERMES_URL); +} \ No newline at end of file diff --git a/js/tests/app.spec.ts b/js/tests/app.spec.ts new file mode 100644 index 00000000000..30b94ceb089 --- /dev/null +++ b/js/tests/app.spec.ts @@ -0,0 +1,11 @@ +import { describe, it, expect } from "@jest/globals"; + +describe("Basic Jest Test Suite", () => { + it("should pass a basic truthy test", () => { + expect(true).toBeTruthy(); + }); + + it("should pass a basic equality test", () => { + expect(2 + 2).toBe(4); + }); +}); diff --git a/js/tsconfig.json b/js/tsconfig.json index 9e403dc3b46..32f5337b1d7 100644 --- a/js/tsconfig.json +++ b/js/tsconfig.json @@ -8,9 +8,12 @@ "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "outDir": "./dist", - "rootDir": "./src", - "sourceMap": true + "rootDir": "./", + "sourceMap": true, }, "include": ["src/**/*"], - "exclude": ["node_modules"] + "exclude": ["node_modules"], + "ts-node": { + "swc": true + }, } diff --git a/js/wrangler.toml b/js/wrangler.toml deleted file mode 100644 index 1ffde20c223..00000000000 --- a/js/wrangler.toml +++ /dev/null @@ -1,7 +0,0 @@ -name = "composio-cloudflare" -main = "js/src/cloudflare-example.mjs" -compatibility_date = "2024-06-06" -node_compat = true - -[ai] -binding = "AI" \ No newline at end of file diff --git a/python/Makefile b/python/Makefile index 8780eac8b83..a7f8755343d 100644 --- a/python/Makefile +++ b/python/Makefile @@ -92,7 +92,7 @@ format-and-check: .PHONY: env env: clean - if [[ "$$VIRTUAL_ENV" == "" ]];\ + if [ -z "$$VIRTUAL_ENV"];\ then\ pipenv --rm;\ pipenv --clear;\ diff --git a/python/composio/__init__.py b/python/composio/__init__.py index 64a76c2ff37..63bbc281f1f 100644 --- a/python/composio/__init__.py +++ b/python/composio/__init__.py @@ -37,4 +37,4 @@ "action", ) -__version__ = "0.4.2" +__version__ = "0.4.5" diff --git a/python/composio/client/__init__.py b/python/composio/client/__init__.py index cac24e25d78..85e154b6402 100644 --- a/python/composio/client/__init__.py +++ b/python/composio/client/__init__.py @@ -345,7 +345,7 @@ def initiate_connection( auth_config: t.Optional[t.Dict[str, t.Any]] = None, redirect_url: t.Optional[str] = None, integration: t.Optional[IntegrationModel] = None, - use_composio_auth: bool = False, + use_composio_auth: bool = True, force_new_integration: bool = False, ) -> ConnectionRequestModel: """ diff --git a/python/composio/client/collections.py b/python/composio/client/collections.py index 8e40cf6a8fc..1844ac29269 100644 --- a/python/composio/client/collections.py +++ b/python/composio/client/collections.py @@ -408,14 +408,14 @@ class SuccessExecuteActionResponseModel(BaseModel): """Success execute action response data model.""" execution_details: ExecutionDetailsModel - response_data: str + response_data: t.Dict -class FileModel(BaseModel): +class FileType(BaseModel): name: str = Field( ..., description="File name, contains extension to indetify the file type" ) - content: bytes = Field(..., description="File content in base64") + content: str = Field(..., description="File content in base64") class Connection(BaseModel): @@ -779,6 +779,21 @@ def get( # type: ignore return self._raise_if_empty(super().get(queries=queries)) +def _check_file_uploadable(param_field: dict) -> bool: + return ( + isinstance(param_field, dict) + and (param_field.get("title") in ["File", "FileType"]) + and all( + field_name in param_field.get("properties", {}) + for field_name in ["name", "content"] + ) + ) + + +def _check_file_downloadable(param_field: dict) -> bool: + return set(param_field.keys()) == {"name", "content"} + + class ActionParametersModel(BaseModel): """Action parameter data models.""" @@ -988,14 +1003,9 @@ def execute( action_req_schema = action_model.parameters.properties modified_params: t.Dict[str, t.Union[str, t.Dict[str, str]]] = {} for param, value in params.items(): - file_readable = False - if isinstance(action_req_schema[param], dict): - file_readable = action_req_schema[param].get("file_readable", False) - file_uploadable = ( - action_req_schema[param].get("allOf", [{}])[0].get("properties") - or action_req_schema[param].get("properties") - or {} - ) == FileModel.schema().get("properties") + request_param_schema = action_req_schema[param] + file_readable = request_param_schema.get("file_readable", False) + file_uploadable = _check_file_uploadable(request_param_schema) if file_readable and isinstance(value, str) and os.path.isfile(value): with open(value, "rb") as file: @@ -1008,19 +1018,16 @@ def execute( "utf-8" ) elif file_uploadable and isinstance(value, str): - if os.path.isfile(value): - with open(value, "rb") as file: - file_content = file.read() - encoded_data = base64.b64encode(file_content).decode("utf-8") - encoded_data_with_filename = { - "name": os.path.basename(value), - "content": encoded_data, - } - modified_params[param] = encoded_data_with_filename - elif value == "": - pass - else: - return {"error": f"File with path {value} not found"} + if not os.path.isfile(value): + raise ValueError(f"Attachment File with path `{value}` not found.") + + with open(value, "rb") as file: + file_content = file.read() + + modified_params[param] = { + "name": os.path.basename(value), + "content": base64.b64encode(file_content).decode("utf-8"), + } else: modified_params[param] = value diff --git a/python/composio/client/enums/base.py b/python/composio/client/enums/base.py index fad0e76b8d0..c912e9f831a 100644 --- a/python/composio/client/enums/base.py +++ b/python/composio/client/enums/base.py @@ -11,6 +11,7 @@ from composio.constants import LOCAL_CACHE_DIRECTORY from composio.exceptions import ComposioSDKError from composio.storage.base import LocalStorage +from composio.utils.logging import get_logger _model_cache: t.Dict[str, LocalStorage] = {} diff --git a/python/composio/tools/base/runtime.py b/python/composio/tools/base/runtime.py index 073135c9556..02efad23fe5 100644 --- a/python/composio/tools/base/runtime.py +++ b/python/composio/tools/base/runtime.py @@ -222,6 +222,10 @@ def _parse_docstring( docstr: str, ) -> t.Tuple[str, t.Dict[str, str], t.Optional[t.Tuple[str, str]],]: """Parse docstring for descriptions.""" + if docstr is None: + raise ValueError( + "Docstring is None, Please provide a docstring for runtime tools" + ) header, *descriptions = docstr.lstrip().rstrip().split("\n") params = {} returns = None diff --git a/python/composio/tools/local/base/action.py b/python/composio/tools/local/base/action.py index d2dccc775fc..1a33ce5160f 100644 --- a/python/composio/tools/local/base/action.py +++ b/python/composio/tools/local/base/action.py @@ -9,12 +9,24 @@ import inflection import jsonref -from pydantic import BaseModel, Field +from pydantic import BaseModel +# from composio.client.collections import _check_file_uploadable from composio.client.enums.base import SentinalObject from composio.utils.logging import WithLogger +def _check_file_uploadable(param_field: dict) -> bool: + return ( + isinstance(param_field, dict) + and (param_field.get("title") in ["File", "FileType"]) + and all( + field_name in param_field.get("properties", {}) + for field_name in ["name", "content"] + ) + ) + + def generate_hashed_appId(input_string): # Generate a 32-character hash using MD5 hash_object = hashlib.md5(input_string.encode()) @@ -29,13 +41,6 @@ def generate_hashed_appId(input_string): ResponseType = TypeVar("ResponseType", bound=BaseModel) -class FileModel(BaseModel): - name: str = Field( - ..., description="File name, contains extension to indetify the file type" - ) - content: bytes = Field(..., description="File content in base64") - - class Action(ABC, SentinalObject, WithLogger, Generic[RequestType, ResponseType]): """Action abstraction.""" @@ -157,19 +162,6 @@ def get_action_schema(self): } return action_schema - def _check_file_uploadable(self, param: str) -> bool: - return ( - self.request_schema.model_json_schema() - .get("properties", {}) - .get(param, {}) - .get("allOf", [{}])[0] - .get("properties", {}) - or self.request_schema.model_json_schema() - .get("properties", {}) - .get(param, {}) - .get("properties", {}) - ) == FileModel.model_json_schema().get("properties") - def execute_action( self, request_data: RequestType, @@ -186,7 +178,7 @@ def execute_action( file_readable = annotations is not None and annotations.get( # type: ignore "file_readable", False ) - + file_uploadable = _check_file_uploadable(param) if file_readable and isinstance(value, str) and os.path.isfile(value): with open(value, "rb") as file: file_content = file.read() @@ -200,12 +192,13 @@ def execute_action( modified_request_data[param] = base64.b64encode( file_content ).decode("utf-8") - elif ( - self._check_file_uploadable(param=param) - and isinstance(value, str) - and os.path.isfile(value) - ): - # For uploadable files, we also need to send the filename + + elif file_uploadable and isinstance(value, str): + if not os.path.isfile(value): + raise ValueError( + f"Attachment File with path `{value}` not found." + ) + with open(value, "rb") as file: file_content = file.read() diff --git a/python/composio/tools/toolset.py b/python/composio/tools/toolset.py index 68a82b1d766..54554218ca3 100644 --- a/python/composio/tools/toolset.py +++ b/python/composio/tools/toolset.py @@ -3,6 +3,7 @@ """ import base64 +import binascii import hashlib import itertools import json @@ -20,7 +21,8 @@ ActionModel, AppAuthScheme, ConnectedAccountModel, - FileModel, + ExecutionDetailsModel, + FileType, SuccessExecuteActionResponseModel, TriggerSubscription, ) @@ -310,33 +312,57 @@ def _execute_remote( output=output, entity_id=entity_id, ) + try: - # Save the variables of type file to the composio/output directory. - output_modified = self._save_var_files( - f"{action.name}_{entity_id}_{time.time()}", output + success_response_model = SuccessExecuteActionResponseModel.model_validate( + output ) - return output_modified except Exception: - pass - return output + return output - def _save_var_files(self, file_name_prefix: str, output: dict) -> dict: - success_response_model = SuccessExecuteActionResponseModel.model_validate( - output + return self._save_var_files( + file_name_prefix=f"{action.name}_{entity_id}_{time.time()}", + success_response_model=success_response_model, ) - resp_data = json.loads(success_response_model.response_data) + + def _save_var_files( + self, + file_name_prefix: str, + success_response_model: SuccessExecuteActionResponseModel, + ) -> dict: + execution_status = True + resp_data = success_response_model.response_data + for key, val in resp_data.items(): try: - file_model = FileModel.model_validate(val) + file_model = FileType.model_validate(val) _ensure_output_dir_exists() - output_file_path = ( - output_dir - / f"{file_name_prefix}_{file_model.name.replace('/', '_')}" + + cache_filename = ( + f"{file_name_prefix}_{file_model.name.replace('/', '_')}" + ) + cache_filepath = output_dir / cache_filename + + local_filepath = f"./{file_model.name.replace('/', '_')}" + + _write_file( + cache_filepath, base64.urlsafe_b64decode(file_model.content) ) - _write_file(output_file_path, base64.b64decode(file_model.content)) - resp_data[key] = str(output_file_path) + _write_file( + local_filepath, base64.urlsafe_b64decode(file_model.content) + ) + + resp_data[key] = str(local_filepath) + except binascii.Error: + execution_status = False + resp_data[key] = "Invalid File! Unable to decode." except Exception: pass + + if execution_status is False: + success_response_model.execution_details = ExecutionDetailsModel( + executed=False + ) success_response_model.response_data = resp_data return success_response_model.model_dump() @@ -470,13 +496,12 @@ def execute_action( """ self.logger.info(f"Executing action: {action}") action = Action(action) - params = self._process_request( - action=action, - request=self._serialize_execute_params( - param=params, - ), - ) - metadata = self._add_metadata(action=action, metadata=metadata) + is_runtime = action.is_runtime + self.logger.debug(f"Action: {action}, runtime: {is_runtime}") + params = self._serialize_execute_params(param=params) + if not is_runtime: + params = self._process_request(action=action, request=params) + metadata = self._add_metadata(action=action, metadata=metadata) response = ( self._execute_local( action=action, @@ -492,6 +517,8 @@ def execute_action( text=text, ) ) + if is_runtime: + return response return self._process_respone(action=action, response=response) def get_action_schemas( @@ -554,19 +581,21 @@ def get_action_schemas( def action_preprocessing(self, action_item: ActionModel) -> ActionModel: required_params = action_item.parameters.required or [] for param_name, param_details in action_item.parameters.properties.items(): - if param_details.get("properties") == FileModel.schema().get("properties"): + if param_details.get("properties") == FileType.schema().get("properties"): action_item.parameters.properties[param_name].pop("properties") action_item.parameters.properties[param_name] = { + "default": param_details.get("default"), "type": "string", "format": "file-path", "description": f"File path to {param_details.get('description', '')}", } elif param_details.get("allOf", [{}])[0].get( "properties" - ) == FileModel.schema().get("properties"): + ) == FileType.schema().get("properties"): action_item.parameters.properties[param_name].pop("allOf") action_item.parameters.properties[param_name].update( { + "default": param_details.get("default"), "type": "string", "format": "file-path", "description": f"File path to {param_details.get('description', '')}", diff --git a/python/composio/utils/logging.py b/python/composio/utils/logging.py index 342a5a99c08..887dc0050a0 100644 --- a/python/composio/utils/logging.py +++ b/python/composio/utils/logging.py @@ -106,3 +106,6 @@ def __init__( def logger(self) -> logging.Logger: """Get the component logger.""" return t.cast(logging.Logger, self._logger) + + +get_logger = get diff --git a/python/dockerfiles/Dockerfile b/python/dockerfiles/Dockerfile index 02c64bc5ead..4aae440c7c2 100644 --- a/python/dockerfiles/Dockerfile +++ b/python/dockerfiles/Dockerfile @@ -19,7 +19,7 @@ RUN /bin/python3 -m venv .composio/venv RUN export PATH=$PATH:$(pwd)/.composio/venv/bin # Install composio -RUN python -m pip install composio-core[all]==0.4.2 fastapi playwright uvicorn +RUN python -m pip install composio-core[all]==0.4.5 fastapi playwright uvicorn # Install playwright deps RUN playwright install-deps diff --git a/python/dockerfiles/Dockerfile.dev b/python/dockerfiles/Dockerfile.dev index d3c13fbd724..af06b3d81c6 100644 --- a/python/dockerfiles/Dockerfile.dev +++ b/python/dockerfiles/Dockerfile.dev @@ -20,7 +20,7 @@ RUN export PATH=$PATH:$(pwd)/.composio/venv/bin # Install composio for dependency caching # Install composio -RUN python -m pip install composio-core[all]==0.4.2 fastapi playwright uvicorn +RUN python -m pip install composio-core[all]==0.4.5 fastapi playwright uvicorn # Install playwright deps RUN playwright install-deps @@ -46,7 +46,5 @@ RUN useradd -rm -d /home/user -s /bin/bash -g root -G sudo -u 1000 user # Define entry point COPY entrypoint.sh /root/entrypoint.sh -COPY ./IMG_20171230_084709_Bokeh.jpeg /root/karan_image.jpeg - # Run entrypoint.sh ENTRYPOINT [ "/root/entrypoint.sh" ] diff --git a/python/examples/runtime_tools/langchain_math.py b/python/examples/runtime_tools/langchain_math.py new file mode 100644 index 00000000000..1bb4b2a0500 --- /dev/null +++ b/python/examples/runtime_tools/langchain_math.py @@ -0,0 +1,36 @@ +# Initialise imports +# Import from composio_langchain +from composio_langchain import Action, App, ComposioToolSet +from composio import action +from langchain import hub +from langchain.agents import AgentExecutor, create_openai_functions_agent +from langchain_openai import ChatOpenAI + +@action(toolname="math", requires=["smtplib"]) +def multiply(a: int, b: int, c: int): + """ + Multiply three numbers + a: int + b: int + c: int + """ + print("Multiplying the numbers: ", a, b, c) + return {"execution_details": {"executed": True, "result": a * b * c}} + + +llm = ChatOpenAI(model="gpt-4-turbo") + +prompt = hub.pull("hwchase17/openai-functions-agent") + +# Get All the tools +tools = ComposioToolSet().get_actions(actions=[multiply]) +print(tools) + + +task = "Calculate the forumula 445*669*8886" + +agent = create_openai_functions_agent(llm, tools, prompt) +agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) + +# Execute using agent_executor +agent_executor.invoke({"input": task}) diff --git a/python/plugins/autogen/composio_autogen/toolset.py b/python/plugins/autogen/composio_autogen/toolset.py index 90b9dfb7e6a..ca422362edc 100644 --- a/python/plugins/autogen/composio_autogen/toolset.py +++ b/python/plugins/autogen/composio_autogen/toolset.py @@ -9,6 +9,7 @@ from composio import Action, ActionType, AppType, TagType, WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID from composio.tools import ComposioToolSet as BaseComposioToolSet +from composio.tools.toolset import MetadataType, ProcessorsType from composio.utils.shared import get_signature_format_from_schema_params @@ -27,6 +28,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -46,6 +49,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self.caller = caller self.executor = executor diff --git a/python/plugins/autogen/setup.py b/python/plugins/autogen/setup.py index 5f617163222..0faa2fdcf8c 100644 --- a/python/plugins/autogen/setup.py +++ b/python/plugins/autogen/setup.py @@ -9,7 +9,7 @@ setup( name="composio_autogen", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your Autogen agent.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9,<4", - install_requires=["composio_core==0.4.2", "pyautogen>=0.2.19"], + install_requires=["composio_core==0.4.5", "pyautogen>=0.2.19"], include_package_data=True, ) diff --git a/python/plugins/camel/composio_camel/toolset.py b/python/plugins/camel/composio_camel/toolset.py index 50b161a2c64..74f1ac401f7 100644 --- a/python/plugins/camel/composio_camel/toolset.py +++ b/python/plugins/camel/composio_camel/toolset.py @@ -12,6 +12,7 @@ from composio.tools import ComposioToolSet as BaseComposioToolSet from composio.tools.env.base import WorkspaceConfigType from composio.tools.schema import OpenAISchema, SchemaType +from composio.tools.toolset import MetadataType, ProcessorsType # pylint: enable=E0611 @@ -90,8 +91,10 @@ def __init__( base_url: t.Optional[str] = None, entity_id: str = DEFAULT_ENTITY_ID, output_in_file: bool = False, - workspace_id: t.Optional[str] = None, workspace_config: t.Optional[WorkspaceConfigType] = None, + workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -107,8 +110,10 @@ def __init__( runtime="camel", entity_id=entity_id, output_in_file=output_in_file, - workspace_id=workspace_id, workspace_config=workspace_config, + workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self.schema = SchemaType.OPENAI diff --git a/python/plugins/camel/setup.py b/python/plugins/camel/setup.py index bfb2ec0517a..481226b2fbf 100644 --- a/python/plugins/camel/setup.py +++ b/python/plugins/camel/setup.py @@ -9,7 +9,7 @@ setup( name="composio_camel", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your Claude LLMs.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9,<4", - install_requires=["composio_core==0.4.2", "camel-ai>=0.1.5.7"], + install_requires=["composio_core==0.4.5", "camel-ai>=0.1.5.7"], include_package_data=True, ) diff --git a/python/plugins/claude/composio_claude/toolset.py b/python/plugins/claude/composio_claude/toolset.py index f8836c88bb4..4b902720931 100644 --- a/python/plugins/claude/composio_claude/toolset.py +++ b/python/plugins/claude/composio_claude/toolset.py @@ -7,6 +7,7 @@ from composio.constants import DEFAULT_ENTITY_ID from composio.tools import ComposioToolSet as BaseComposioToolSet from composio.tools.schema import ClaudeSchema, SchemaType +from composio.tools.toolset import MetadataType, ProcessorsType class ComposioToolset(BaseComposioToolSet): @@ -58,6 +59,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -75,6 +78,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self.schema = SchemaType.CLAUDE diff --git a/python/plugins/claude/setup.py b/python/plugins/claude/setup.py index 6f34b27dc83..3af179525c8 100644 --- a/python/plugins/claude/setup.py +++ b/python/plugins/claude/setup.py @@ -9,7 +9,7 @@ setup( name="composio_claude", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your Claude LLMs.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9,<4", - install_requires=["composio_openai==0.4.2", "anthropic>=0.25.7"], + install_requires=["composio_openai==0.4.5", "anthropic>=0.25.7"], include_package_data=True, ) diff --git a/python/plugins/crew_ai/crewai_demo.py b/python/plugins/crew_ai/crewai_demo.py index eed1e62b4a0..d2c306e2ede 100644 --- a/python/plugins/crew_ai/crewai_demo.py +++ b/python/plugins/crew_ai/crewai_demo.py @@ -5,7 +5,7 @@ import os import dotenv -from crewai import Agent, Task +from crewai import Agent, Crew, Task from langchain_openai import ChatOpenAI from composio_crewai import App, ComposioToolSet @@ -41,8 +41,7 @@ expected_output="if the star happened", ) -# Execute task -try: - task.execute_sync() # type: ignore -except AttributeError: - task.execute() # type: ignore +my_crew = Crew(agents=[crewai_agent], tasks=[task]) + +result = my_crew.kickoff() +print(result) diff --git a/python/plugins/crew_ai/setup.py b/python/plugins/crew_ai/setup.py index 489b84d48eb..7366460669d 100644 --- a/python/plugins/crew_ai/setup.py +++ b/python/plugins/crew_ai/setup.py @@ -9,7 +9,7 @@ setup( name="composio_crewai", - version="0.4.2", + version="0.4.5", author="Himanshu", author_email="himanshu@composio.dev", description="Use Composio to get an array of tools with your CrewAI agent.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9,<4", - install_requires=["composio_langchain==0.4.2", "crewai"], + install_requires=["composio_langchain==0.4.5", "crewai"], include_package_data=True, ) diff --git a/python/plugins/griptape/composio_griptape/toolset.py b/python/plugins/griptape/composio_griptape/toolset.py index a00126bdb9b..5fb7d60dca5 100644 --- a/python/plugins/griptape/composio_griptape/toolset.py +++ b/python/plugins/griptape/composio_griptape/toolset.py @@ -8,6 +8,7 @@ from composio import Action, ActionType, AppType, TagType, WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID from composio.tools import ComposioToolSet as BaseComposioToolSet +from composio.tools.toolset import MetadataType, ProcessorsType from composio.utils.shared import PYDANTIC_TYPE_TO_PYTHON_TYPE @@ -51,6 +52,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -68,6 +71,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) def _wrap_tool( diff --git a/python/plugins/griptape/setup.py b/python/plugins/griptape/setup.py index f74d004e1b4..647ec6aea32 100644 --- a/python/plugins/griptape/setup.py +++ b/python/plugins/griptape/setup.py @@ -9,7 +9,7 @@ setup( name="composio_griptape", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your Griptape wokflow.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9,<4", - install_requires=["composio_core==0.4.2", "griptape>=0.24.2"], + install_requires=["composio_core==0.4.5", "griptape>=0.24.2"], include_package_data=True, ) diff --git a/python/plugins/julep/composio_julep/toolset.py b/python/plugins/julep/composio_julep/toolset.py index 2e3bc8c004b..2467ad2530c 100644 --- a/python/plugins/julep/composio_julep/toolset.py +++ b/python/plugins/julep/composio_julep/toolset.py @@ -6,6 +6,7 @@ from composio import Action, WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID +from composio.tools.toolset import MetadataType, ProcessorsType from composio_openai import ComposioToolSet as BaseComposioToolSet @@ -23,6 +24,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -39,6 +42,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self._runtime = "julep" diff --git a/python/plugins/julep/setup.py b/python/plugins/julep/setup.py index 16a99a3e6df..9cda9c410db 100644 --- a/python/plugins/julep/setup.py +++ b/python/plugins/julep/setup.py @@ -9,7 +9,7 @@ setup( name="composio_julep", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your Julep wokflow.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9,<4", - install_requires=["composio_openai==0.4.2", "julep>=0.3.2"], + install_requires=["composio_openai==0.4.5", "julep>=0.3.2"], include_package_data=True, ) diff --git a/python/plugins/langchain/composio_langchain/toolset.py b/python/plugins/langchain/composio_langchain/toolset.py index c3c5821761e..aafeecd2023 100644 --- a/python/plugins/langchain/composio_langchain/toolset.py +++ b/python/plugins/langchain/composio_langchain/toolset.py @@ -7,6 +7,7 @@ from composio import Action, ActionType, AppType, TagType, WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID from composio.tools import ComposioToolSet as BaseComposioToolSet +from composio.tools.toolset import MetadataType, ProcessorsType from composio.utils.shared import ( get_signature_format_from_schema_params, json_schema_to_model, @@ -63,6 +64,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -80,6 +83,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) def _wrap_action( diff --git a/python/plugins/langchain/setup.py b/python/plugins/langchain/setup.py index 90a581204ec..11e52713b29 100644 --- a/python/plugins/langchain/setup.py +++ b/python/plugins/langchain/setup.py @@ -9,7 +9,7 @@ setup( name="composio_langchain", - version="0.4.2", + version="0.4.5", author="Karan", author_email="karan@composio.dev", description="Use Composio to get an array of tools with your LangChain agent.", @@ -27,7 +27,7 @@ "langchain-openai>=0.0.2.post1", "pydantic>=2.6.4", "langchainhub>=0.1.15", - "composio_core==0.4.2", + "composio_core==0.4.5", ], include_package_data=True, ) diff --git a/python/plugins/langgraph/composio_langgraph/toolset.py b/python/plugins/langgraph/composio_langgraph/toolset.py index 9989f31efa3..d67b0ad377a 100644 --- a/python/plugins/langgraph/composio_langgraph/toolset.py +++ b/python/plugins/langgraph/composio_langgraph/toolset.py @@ -2,6 +2,7 @@ from composio import WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID +from composio.tools.toolset import MetadataType, ProcessorsType from composio_langchain import ComposioToolSet as BaseComposioToolSet @@ -103,6 +104,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -119,6 +122,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self._runtime = "langgraph" diff --git a/python/plugins/langgraph/setup.py b/python/plugins/langgraph/setup.py index 040ed1b255f..690b68fca95 100644 --- a/python/plugins/langgraph/setup.py +++ b/python/plugins/langgraph/setup.py @@ -9,7 +9,7 @@ setup( name="composio_langgraph", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get array of tools with LnagGraph Agent Workflows", @@ -23,7 +23,7 @@ ], python_requires=">=3.9,<4", install_requires=[ - "composio_langchain==0.4.2", + "composio_langchain==0.4.5", "langgraph", ], include_package_data=True, diff --git a/python/plugins/llamaindex/composio_llamaindex/toolset.py b/python/plugins/llamaindex/composio_llamaindex/toolset.py index 4af1ee4aae0..21885be9686 100644 --- a/python/plugins/llamaindex/composio_llamaindex/toolset.py +++ b/python/plugins/llamaindex/composio_llamaindex/toolset.py @@ -6,6 +6,7 @@ from composio import Action, ActionType, AppType, TagType, WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID +from composio.tools.toolset import MetadataType, ProcessorsType from composio.utils.shared import get_pydantic_signature_format_from_schema_params from composio_langchain import ComposioToolSet as BaseComposioToolSet @@ -60,6 +61,8 @@ def __init__( entity_id: str = DEFAULT_ENTITY_ID, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -74,6 +77,8 @@ def __init__( entity_id=entity_id, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self._runtime = "llamaindex" diff --git a/python/plugins/llamaindex/setup.py b/python/plugins/llamaindex/setup.py index ea4c654c123..e34e04da59d 100644 --- a/python/plugins/llamaindex/setup.py +++ b/python/plugins/llamaindex/setup.py @@ -9,7 +9,7 @@ setup( name="composio_llamaindex", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your LlamaIndex agent.", @@ -24,7 +24,7 @@ python_requires=">=3.9,<4", install_requires=[ "llama_index>=0.10.43", - "composio_langchain==0.4.2", + "composio_langchain==0.4.5", ], include_package_data=True, ) diff --git a/python/plugins/lyzr/composio_lyzr/toolset.py b/python/plugins/lyzr/composio_lyzr/toolset.py index 17390076acf..a402864e663 100644 --- a/python/plugins/lyzr/composio_lyzr/toolset.py +++ b/python/plugins/lyzr/composio_lyzr/toolset.py @@ -11,6 +11,7 @@ from composio import Action, ActionType, AppType, TagType, WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID from composio.tools import ComposioToolSet as BaseComposioToolSet +from composio.tools.toolset import MetadataType, ProcessorsType from composio.utils.shared import ( get_signature_format_from_schema_params, json_schema_to_model, @@ -30,6 +31,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -47,6 +50,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) def _wrap_tool( diff --git a/python/plugins/lyzr/setup.py b/python/plugins/lyzr/setup.py index 0500c79a400..60d7610d2b8 100644 --- a/python/plugins/lyzr/setup.py +++ b/python/plugins/lyzr/setup.py @@ -9,7 +9,7 @@ setup( name="composio_lyzr", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your Lyzr workflow.", @@ -25,7 +25,7 @@ install_requires=[ "lyzr-automata>=0.1.3", "pydantic>=2.6.4", - "composio_core==0.4.2", + "composio_core==0.4.5", "langchain>=0.1.0", ], include_package_data=True, diff --git a/python/plugins/openai/composio_openai/toolset.py b/python/plugins/openai/composio_openai/toolset.py index af5838d502e..de830c090a7 100644 --- a/python/plugins/openai/composio_openai/toolset.py +++ b/python/plugins/openai/composio_openai/toolset.py @@ -19,6 +19,7 @@ from composio.constants import DEFAULT_ENTITY_ID from composio.tools import ComposioToolSet as BaseComposioToolSet from composio.tools.schema import OpenAISchema, SchemaType +from composio.tools.toolset import MetadataType, ProcessorsType class ComposioToolSet(BaseComposioToolSet): @@ -70,6 +71,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -87,6 +90,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self.schema = SchemaType.OPENAI diff --git a/python/plugins/openai/setup.py b/python/plugins/openai/setup.py index 1d0702507e2..20f0f397c16 100644 --- a/python/plugins/openai/setup.py +++ b/python/plugins/openai/setup.py @@ -9,7 +9,7 @@ setup( name="composio_openai", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your OpenAI Function Call.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9,<4", - install_requires=["composio_core==0.4.2"], + install_requires=["composio_core==0.4.5"], include_package_data=True, ) diff --git a/python/plugins/phidata/composio_phidata/toolset.py b/python/plugins/phidata/composio_phidata/toolset.py index a33e29a52f6..1876d7306a6 100644 --- a/python/plugins/phidata/composio_phidata/toolset.py +++ b/python/plugins/phidata/composio_phidata/toolset.py @@ -9,6 +9,7 @@ from composio import Action, ActionType, AppType, TagType, WorkspaceConfigType from composio.constants import DEFAULT_ENTITY_ID +from composio.tools.toolset import MetadataType, ProcessorsType from composio_openai import ComposioToolSet as BaseComposioToolSet @@ -26,6 +27,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -42,6 +45,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) self._runtime = "phidata" diff --git a/python/plugins/phidata/setup.py b/python/plugins/phidata/setup.py index bedab6f3238..5f5a58d1c7b 100644 --- a/python/plugins/phidata/setup.py +++ b/python/plugins/phidata/setup.py @@ -9,7 +9,7 @@ setup( name="composio_phidata", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio to get an array of tools with your Phidata Plugin.", @@ -23,8 +23,8 @@ ], python_requires=">=3.9,<4", install_requires=[ - "composio_core==0.4.2", - "composio_openai==0.4.2", + "composio_core==0.4.5", + "composio_openai==0.4.5", "phidata", ], include_package_data=True, diff --git a/python/plugins/praisonai/composio_praisonai/toolset.py b/python/plugins/praisonai/composio_praisonai/toolset.py index bc0e246ad38..52df1e7ac65 100644 --- a/python/plugins/praisonai/composio_praisonai/toolset.py +++ b/python/plugins/praisonai/composio_praisonai/toolset.py @@ -6,6 +6,7 @@ from composio import TagType from composio.constants import DEFAULT_ENTITY_ID from composio.tools.env.base import WorkspaceConfigType +from composio.tools.toolset import MetadataType, ProcessorsType _openapi_to_python = { @@ -29,6 +30,8 @@ def __init__( output_in_file: bool = False, workspace_config: t.Optional[WorkspaceConfigType] = None, workspace_id: t.Optional[str] = None, + metadata: t.Optional[MetadataType] = None, + processors: t.Optional[ProcessorsType] = None, ) -> None: """ Initialize composio toolset. @@ -46,6 +49,8 @@ def __init__( output_in_file=output_in_file, workspace_config=workspace_config, workspace_id=workspace_id, + metadata=metadata, + processors=processors, ) prefix_imports = [ diff --git a/python/plugins/praisonai/setup.py b/python/plugins/praisonai/setup.py index 687d5dce670..73401926f6f 100644 --- a/python/plugins/praisonai/setup.py +++ b/python/plugins/praisonai/setup.py @@ -9,7 +9,7 @@ setup( name="composio_praisonai", - version="0.4.2", + version="0.4.5", author="Sawradip", author_email="sawradip@composio.dev", description="Use Composio Tools to enhance your PraisonAI agents capabilities.", @@ -22,6 +22,6 @@ "Operating System :: OS Independent", ], python_requires=">=3.9", - install_requires=["composio_core==0.4.2", "PraisonAI>=0.0.2"], + install_requires=["composio_core==0.4.5", "PraisonAI>=0.0.2"], include_package_data=True, ) diff --git a/python/setup.py b/python/setup.py index 1f410e6d12d..d2aa1f52e9f 100644 --- a/python/setup.py +++ b/python/setup.py @@ -73,7 +73,7 @@ def scan_for_package_data( setup( name="composio_core", - version="0.4.2", + version="0.4.5", author="Utkarsh", author_email="utkarsh@composio.dev", description="Core package to act as a bridge between composio platform and other services.", diff --git a/python/swe/examples/langgraph_agent/benchmark.py b/python/swe/examples/langgraph_agent/benchmark.py index a1fcd9c8875..2f2edda4459 100644 --- a/python/swe/examples/langgraph_agent/benchmark.py +++ b/python/swe/examples/langgraph_agent/benchmark.py @@ -1,6 +1,5 @@ import argparse -from agent import composio_toolset, graph from langchain_core.messages import HumanMessage from composio_langgraph import Action @@ -8,6 +7,8 @@ from swekit.benchmark.run_evaluation import evaluate from swekit.config.store import IssueConfig +from agent import composio_toolset, graph + def bench(workspace_id: str, issue_config: IssueConfig) -> str: """Run benchmark on the agent.""" diff --git a/python/swe/examples/langgraph_agent/inputs.py b/python/swe/examples/langgraph_agent/inputs.py index e8d357bf49b..7c26c8dd2a4 100644 --- a/python/swe/examples/langgraph_agent/inputs.py +++ b/python/swe/examples/langgraph_agent/inputs.py @@ -2,10 +2,10 @@ import typing as t from pathlib import Path -from agent import composio_toolset - from composio import Action +from agent import composio_toolset + InputType = t.TypeVar("InputType") diff --git a/python/swe/examples/langgraph_agent/main.py b/python/swe/examples/langgraph_agent/main.py index 454488be53b..f4e2eca13f1 100644 --- a/python/swe/examples/langgraph_agent/main.py +++ b/python/swe/examples/langgraph_agent/main.py @@ -1,9 +1,10 @@ -from agent import composio_toolset, graph from inputs import from_github from langchain_core.messages import HumanMessage from composio_langgraph import Action +from agent import composio_toolset, graph + def main() -> None: """Run the agent.""" diff --git a/python/swe/setup.py b/python/swe/setup.py index c918e3fd020..21ed43b1e63 100644 --- a/python/swe/setup.py +++ b/python/swe/setup.py @@ -35,7 +35,7 @@ def scan_for_package_data( setup( name="swekit", - version="0.1.7", + version="0.1.10", author="Shubhra", author_email="shubhra@composio.dev", description="Tools for running a SWE agent using Composio platform", @@ -66,7 +66,7 @@ def scan_for_package_data( "swebench==1.1.0", "datasets>=2.20.0", "gitpython>=3.1.43", - "composio_core>=0.3.9", + "composio_core>=0.4.3", "unidiff==0.7.5", "tqdm==4.66.4", "rich", diff --git a/python/tests/test_example.py b/python/tests/test_example.py index e3670e24c19..789fc24e41c 100644 --- a/python/tests/test_example.py +++ b/python/tests/test_example.py @@ -58,6 +58,14 @@ }, "env": {"OPENAI_API_KEY": OPENAI_API_KEY}, }, + "runtime_tools": { + "file": EXAMPLES_PATH / "runtime_tools" / "langchain_math.py", + "match": { + "type": "stdout", + "values": ["Multiplying the numbers: 445 669 8886"], + }, + "env": {"OPENAI_API_KEY": OPENAI_API_KEY}, + }, "crewai": { "file": PLUGINS / "crew_ai" / "crewai_demo.py", "match": { diff --git a/python/tox.ini b/python/tox.ini index 46e46184420..9a2c716111a 100644 --- a/python/tox.ini +++ b/python/tox.ini @@ -124,7 +124,7 @@ skip=plugins/langchain/langchain_demo.py known_first_party=composio known_plugins=composio_langchain,composio_crewai,composio_autogen,composio_lyzr,composio_openai,composio_claude,composio_griptape,composio_langgraph,composio_praisonai,composio_camel known_packages=swekit -known_local_folder=tests +known_localfolder=tests,examples,agent sections=FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,PLUGINS,PACKAGES,LOCALFOLDER [flake8]