@nocobase/plugin-ai 2.1.6 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/dev/external-knowledge-base.md +318 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/documents.md +76 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/hit-tests.md +66 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/index.md +73 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/segments.md +93 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/settings.md +77 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/rag.md +1 -1
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/create-document.md +79 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/delete-document.md +71 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/index.md +84 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/retrieve-document.md +87 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/update-document.md +70 -0
- package/dist/ai/docs/nocobase/development/index.md +3 -0
- package/dist/ai/docs/nocobase/get-started/deployment/how-to-deploy-nocobase-faster.mdx +2 -2
- package/dist/ai/docs/nocobase/ops-management/backup-manager/index.mdx +9 -7
- package/dist/ai/docs/nocobase/ops-management/migration-manager/built-in-tables.md +423 -0
- package/dist/ai/docs/nocobase/ops-management/migration-manager/index.md +12 -9
- package/dist/ai/docs/nocobase/ops-management/release-management/index.md +111 -24
- package/dist/client/ai-employees/ProfileCard.d.ts +1 -0
- package/dist/client/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +2 -3
- package/dist/client/ai-employees/form-filler/tools/index.d.ts +8 -0
- package/dist/client/index.js +3 -3
- package/dist/externalVersion.js +21 -21
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.cjs +25 -34
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.cts +10 -22
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.ts +10 -22
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.js +17 -25
- package/dist/node_modules/@langchain/xai/dist/chat_models/index.cjs +2 -2
- package/dist/node_modules/@langchain/xai/dist/chat_models/index.d.cts +3 -0
- package/dist/node_modules/@langchain/xai/dist/chat_models/index.js +3 -2
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.cts +5 -12
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.ts +5 -12
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.cjs +18 -19
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.cts +1 -1
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.ts +1 -1
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.js +13 -13
- package/dist/node_modules/@langchain/xai/dist/converters/responses.cjs +16 -22
- package/dist/node_modules/@langchain/xai/dist/converters/responses.js +7 -12
- package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
- package/dist/node_modules/@langchain/xai/dist/index.d.ts +0 -1
- package/dist/node_modules/@langchain/xai/dist/index.js +1 -2
- package/dist/node_modules/@langchain/xai/dist/live_search.cjs +4 -5
- package/dist/node_modules/@langchain/xai/dist/live_search.js +4 -4
- package/dist/node_modules/@langchain/xai/dist/profiles.cjs +81 -97
- package/dist/node_modules/@langchain/xai/dist/profiles.js +81 -96
- package/dist/node_modules/@langchain/xai/dist/tools/code_execution.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/code_execution.js +1 -1
- package/dist/node_modules/@langchain/xai/dist/tools/collections_search.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/collections_search.js +1 -1
- package/dist/node_modules/@langchain/xai/dist/tools/index.cjs +6 -7
- package/dist/node_modules/@langchain/xai/dist/tools/index.d.cts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/index.d.ts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/index.js +6 -7
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.cjs +3 -7
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.cts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.ts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.js +3 -6
- package/dist/node_modules/@langchain/xai/dist/tools/web_search.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/web_search.js +1 -1
- package/dist/node_modules/@langchain/xai/dist/tools/x_search.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/x_search.js +1 -1
- package/dist/node_modules/@langchain/xai/package.json +1 -1
- package/dist/node_modules/fs-extra/package.json +1 -1
- package/dist/node_modules/jsonrepair/package.json +1 -1
- package/dist/node_modules/just-bash/package.json +1 -1
- package/dist/node_modules/nodejs-snowflake/package.json +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/branded.d.mts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/branded.d.ts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.mts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.ts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.mts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.ts +1 -1
- package/dist/node_modules/openai/api-promise.d.mts +1 -0
- package/dist/node_modules/openai/api-promise.d.ts +1 -0
- package/dist/node_modules/openai/auth/index.d.mts +4 -0
- package/dist/node_modules/openai/auth/index.d.ts +4 -0
- package/dist/node_modules/openai/auth/index.js +11 -0
- package/dist/node_modules/openai/auth/subject-token-providers.d.mts +20 -0
- package/dist/node_modules/openai/auth/subject-token-providers.d.ts +20 -0
- package/dist/node_modules/openai/auth/subject-token-providers.js +127 -0
- package/dist/node_modules/openai/auth/types.d.mts +23 -0
- package/dist/node_modules/openai/auth/types.d.ts +23 -0
- package/dist/node_modules/openai/auth/types.js +3 -0
- package/dist/node_modules/openai/auth/workload-identity-auth.d.mts +16 -0
- package/dist/node_modules/openai/auth/workload-identity-auth.d.ts +16 -0
- package/dist/node_modules/openai/auth/workload-identity-auth.js +95 -0
- package/dist/node_modules/openai/azure.d.mts +6 -2
- package/dist/node_modules/openai/azure.d.ts +6 -2
- package/dist/node_modules/openai/azure.js +4 -3
- package/dist/node_modules/openai/beta/realtime/websocket.js +7 -2
- package/dist/node_modules/openai/beta/realtime/ws.js +5 -1
- package/dist/node_modules/openai/bin/migration-config.json +1120 -0
- package/dist/node_modules/openai/client.d.mts +72 -10
- package/dist/node_modules/openai/client.d.ts +72 -10
- package/dist/node_modules/openai/client.js +207 -28
- package/dist/node_modules/openai/core/EventEmitter.d.mts +56 -0
- package/dist/node_modules/openai/core/EventEmitter.d.ts +56 -0
- package/dist/node_modules/openai/core/EventEmitter.js +93 -0
- package/dist/node_modules/openai/core/error.d.mts +15 -0
- package/dist/node_modules/openai/core/error.d.ts +15 -0
- package/dist/node_modules/openai/core/error.js +34 -1
- package/dist/node_modules/openai/core/pagination.d.mts +18 -0
- package/dist/node_modules/openai/core/pagination.d.ts +18 -0
- package/dist/node_modules/openai/core/pagination.js +32 -1
- package/dist/node_modules/openai/core/streaming.d.mts +1 -1
- package/dist/node_modules/openai/core/streaming.d.ts +1 -1
- package/dist/node_modules/openai/core/streaming.js +2 -2
- package/dist/node_modules/openai/error.d.mts +1 -0
- package/dist/node_modules/openai/error.d.ts +1 -0
- package/dist/node_modules/openai/index.d.mts +1 -1
- package/dist/node_modules/openai/index.d.ts +1 -1
- package/dist/node_modules/openai/index.js +1 -1
- package/dist/node_modules/openai/internal/parse.js +2 -2
- package/dist/node_modules/openai/internal/qs/index.d.mts +2 -2
- package/dist/node_modules/openai/internal/qs/index.d.ts +2 -2
- package/dist/node_modules/openai/internal/request-options.d.mts +5 -0
- package/dist/node_modules/openai/internal/request-options.d.ts +5 -0
- package/dist/node_modules/openai/internal/shims.d.mts +6 -0
- package/dist/node_modules/openai/internal/shims.d.ts +6 -0
- package/dist/node_modules/openai/internal/types.d.mts +17 -11
- package/dist/node_modules/openai/internal/types.d.ts +17 -11
- package/dist/node_modules/openai/internal/utils/env.js +2 -2
- package/dist/node_modules/openai/internal/utils/log.js +2 -0
- package/dist/node_modules/openai/internal/utils/query.d.mts +2 -0
- package/dist/node_modules/openai/internal/utils/query.d.ts +2 -0
- package/dist/node_modules/openai/internal/utils/query.js +10 -0
- package/dist/node_modules/openai/internal/utils.d.mts +1 -0
- package/dist/node_modules/openai/internal/utils.d.ts +1 -0
- package/dist/node_modules/openai/internal/utils.js +1 -0
- package/dist/node_modules/openai/internal/ws-adapter-browser.d.mts +34 -0
- package/dist/node_modules/openai/internal/ws-adapter-browser.d.ts +34 -0
- package/dist/node_modules/openai/internal/ws-adapter-browser.js +88 -0
- package/dist/node_modules/openai/internal/ws-adapter-node.d.mts +27 -0
- package/dist/node_modules/openai/internal/ws-adapter-node.d.ts +27 -0
- package/dist/node_modules/openai/internal/ws-adapter-node.js +90 -0
- package/dist/node_modules/openai/internal/ws-adapter.d.mts +24 -0
- package/dist/node_modules/openai/internal/ws-adapter.d.ts +24 -0
- package/dist/node_modules/openai/internal/ws-adapter.js +11 -0
- package/dist/node_modules/openai/internal/ws.d.mts +80 -0
- package/dist/node_modules/openai/internal/ws.d.ts +80 -0
- package/dist/node_modules/openai/internal/ws.js +153 -0
- package/dist/node_modules/openai/package.json +1 -1
- package/dist/node_modules/openai/pagination.d.mts +1 -0
- package/dist/node_modules/openai/pagination.d.ts +1 -0
- package/dist/node_modules/openai/realtime/websocket.js +7 -2
- package/dist/node_modules/openai/realtime/ws.js +5 -1
- package/dist/node_modules/openai/resource.d.mts +1 -0
- package/dist/node_modules/openai/resource.d.ts +1 -0
- package/dist/node_modules/openai/resources/admin/admin.d.mts +10 -0
- package/dist/node_modules/openai/resources/admin/admin.d.ts +10 -0
- package/dist/node_modules/openai/resources/admin/admin.js +17 -0
- package/dist/node_modules/openai/resources/admin/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.mts +140 -0
- package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.ts +140 -0
- package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.js +81 -0
- package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.mts +1267 -0
- package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.ts +1267 -0
- package/dist/node_modules/openai/resources/admin/organization/audit-logs.js +31 -0
- package/dist/node_modules/openai/resources/admin/organization/certificates.d.mts +322 -0
- package/dist/node_modules/openai/resources/admin/organization/certificates.d.ts +322 -0
- package/dist/node_modules/openai/resources/admin/organization/certificates.js +144 -0
- package/dist/node_modules/openai/resources/admin/organization/data-retention.d.mts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/data-retention.d.ts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/data-retention.js +42 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.mts +160 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.ts +160 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/groups.js +109 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/index.d.mts +4 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/index.d.ts +4 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/index.js +11 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.mts +275 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.ts +275 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/roles.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/users.d.mts +164 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/users.d.ts +164 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/users.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/groups.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/groups.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/groups.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/index.d.mts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/index.d.ts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/index.js +29 -0
- package/dist/node_modules/openai/resources/admin/organization/invites.d.mts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/invites.d.ts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/invites.js +83 -0
- package/dist/node_modules/openai/resources/admin/organization/organization.d.mts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/organization.d.ts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/organization.js +57 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.mts +167 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.ts +167 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.js +68 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.mts +186 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.ts +186 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/certificates.js +64 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.mts +53 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.ts +53 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.js +46 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.mts +142 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.ts +142 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.js +93 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.mts +292 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.ts +292 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.js +87 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.mts +174 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.ts +174 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +45 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/index.d.mts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/index.d.ts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/index.js +29 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.mts +86 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.ts +86 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.js +63 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.mts +188 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.ts +188 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/projects.js +149 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.mts +120 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.ts +120 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.js +47 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.mts +146 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.ts +146 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/roles.js +108 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.mts +168 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.ts +168 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.js +101 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.mts +241 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.ts +241 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +102 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.mts +266 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.ts +266 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.js +87 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.mts +157 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.ts +157 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/users.js +116 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/projects.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/roles.d.mts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/roles.d.ts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/roles.js +96 -0
- package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.mts +224 -0
- package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.ts +224 -0
- package/dist/node_modules/openai/resources/admin/organization/spend-alerts.js +93 -0
- package/dist/node_modules/openai/resources/admin/organization/usage.d.mts +5123 -0
- package/dist/node_modules/openai/resources/admin/organization/usage.d.ts +5123 -0
- package/dist/node_modules/openai/resources/admin/organization/usage.js +207 -0
- package/dist/node_modules/openai/resources/admin/organization/users/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/users/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/users/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/users/roles.d.mts +249 -0
- package/dist/node_modules/openai/resources/admin/organization/users/roles.d.ts +249 -0
- package/dist/node_modules/openai/resources/admin/organization/users/roles.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/users/users.d.mts +185 -0
- package/dist/node_modules/openai/resources/admin/organization/users/users.d.ts +185 -0
- package/dist/node_modules/openai/resources/admin/organization/users/users.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/users.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/users.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/users.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization.js +6 -0
- package/dist/node_modules/openai/resources/admin.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin.js +6 -0
- package/dist/node_modules/openai/resources/audio/speech.d.mts +22 -5
- package/dist/node_modules/openai/resources/audio/speech.d.ts +22 -5
- package/dist/node_modules/openai/resources/audio/speech.js +8 -2
- package/dist/node_modules/openai/resources/audio/transcriptions.d.mts +6 -0
- package/dist/node_modules/openai/resources/audio/transcriptions.d.ts +6 -0
- package/dist/node_modules/openai/resources/audio/transcriptions.js +4 -0
- package/dist/node_modules/openai/resources/audio/translations.d.mts +3 -0
- package/dist/node_modules/openai/resources/audio/translations.d.ts +3 -0
- package/dist/node_modules/openai/resources/audio/translations.js +4 -1
- package/dist/node_modules/openai/resources/batches.d.mts +8 -4
- package/dist/node_modules/openai/resources/batches.d.ts +8 -4
- package/dist/node_modules/openai/resources/batches.js +14 -4
- package/dist/node_modules/openai/resources/beta/assistants.d.mts +6 -2
- package/dist/node_modules/openai/resources/beta/assistants.d.ts +6 -2
- package/dist/node_modules/openai/resources/beta/assistants.js +8 -0
- package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.mts +4 -2
- package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.ts +4 -2
- package/dist/node_modules/openai/resources/beta/chatkit/sessions.js +6 -2
- package/dist/node_modules/openai/resources/beta/chatkit/threads.d.mts +4 -4
- package/dist/node_modules/openai/resources/beta/chatkit/threads.d.ts +4 -4
- package/dist/node_modules/openai/resources/beta/chatkit/threads.js +13 -5
- package/dist/node_modules/openai/resources/beta/realtime/sessions.js +1 -0
- package/dist/node_modules/openai/resources/beta/realtime/transcription-sessions.js +1 -0
- package/dist/node_modules/openai/resources/beta/threads/messages.d.mts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/messages.d.ts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/messages.js +7 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.mts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.ts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/runs.js +10 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.mts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.ts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/steps.js +4 -0
- package/dist/node_modules/openai/resources/beta/threads/threads.d.mts +8 -4
- package/dist/node_modules/openai/resources/beta/threads/threads.d.ts +8 -4
- package/dist/node_modules/openai/resources/beta/threads/threads.js +8 -0
- package/dist/node_modules/openai/resources/chat/completions/completions.d.mts +37 -18
- package/dist/node_modules/openai/resources/chat/completions/completions.d.ts +37 -18
- package/dist/node_modules/openai/resources/chat/completions/completions.js +27 -5
- package/dist/node_modules/openai/resources/chat/completions/messages.d.mts +3 -0
- package/dist/node_modules/openai/resources/chat/completions/messages.d.ts +3 -0
- package/dist/node_modules/openai/resources/chat/completions/messages.js +4 -1
- package/dist/node_modules/openai/resources/completions.d.mts +9 -3
- package/dist/node_modules/openai/resources/completions.d.ts +9 -3
- package/dist/node_modules/openai/resources/completions.js +9 -1
- package/dist/node_modules/openai/resources/containers/containers.js +11 -3
- package/dist/node_modules/openai/resources/containers/files/content.js +1 -0
- package/dist/node_modules/openai/resources/containers/files/files.js +7 -2
- package/dist/node_modules/openai/resources/conversations/conversations.d.mts +15 -0
- package/dist/node_modules/openai/resources/conversations/conversations.d.ts +15 -0
- package/dist/node_modules/openai/resources/conversations/conversations.js +17 -4
- package/dist/node_modules/openai/resources/conversations/items.d.mts +4 -1
- package/dist/node_modules/openai/resources/conversations/items.d.ts +4 -1
- package/dist/node_modules/openai/resources/conversations/items.js +14 -3
- package/dist/node_modules/openai/resources/embeddings.d.mts +3 -0
- package/dist/node_modules/openai/resources/embeddings.d.ts +3 -0
- package/dist/node_modules/openai/resources/embeddings.js +4 -0
- package/dist/node_modules/openai/resources/evals/evals.d.mts +3 -0
- package/dist/node_modules/openai/resources/evals/evals.d.ts +3 -0
- package/dist/node_modules/openai/resources/evals/evals.js +12 -5
- package/dist/node_modules/openai/resources/evals/runs/output-items.d.mts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/output-items.d.ts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/output-items.js +8 -2
- package/dist/node_modules/openai/resources/evals/runs/runs.d.mts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/runs.d.ts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/runs.js +21 -4
- package/dist/node_modules/openai/resources/files.d.mts +11 -1
- package/dist/node_modules/openai/resources/files.d.ts +11 -1
- package/dist/node_modules/openai/resources/files.js +20 -5
- package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.mts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.ts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.js +13 -2
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.mts +2 -2
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.ts +2 -2
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.mts +1 -1
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.ts +1 -1
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.mts +54 -7
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.ts +54 -7
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +26 -9
- package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.mts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.ts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +4 -1
- package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.mts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.ts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.js +26 -7
- package/dist/node_modules/openai/resources/images.d.mts +56 -24
- package/dist/node_modules/openai/resources/images.d.ts +56 -24
- package/dist/node_modules/openai/resources/images.js +11 -3
- package/dist/node_modules/openai/resources/index.d.mts +2 -1
- package/dist/node_modules/openai/resources/index.d.ts +2 -1
- package/dist/node_modules/openai/resources/index.js +3 -1
- package/dist/node_modules/openai/resources/models.d.mts +3 -0
- package/dist/node_modules/openai/resources/models.d.ts +3 -0
- package/dist/node_modules/openai/resources/models.js +6 -3
- package/dist/node_modules/openai/resources/moderations.d.mts +3 -0
- package/dist/node_modules/openai/resources/moderations.d.ts +3 -0
- package/dist/node_modules/openai/resources/moderations.js +4 -1
- package/dist/node_modules/openai/resources/realtime/calls.d.mts +13 -3
- package/dist/node_modules/openai/resources/realtime/calls.d.ts +13 -3
- package/dist/node_modules/openai/resources/realtime/calls.js +4 -0
- package/dist/node_modules/openai/resources/realtime/client-secrets.d.mts +45 -39
- package/dist/node_modules/openai/resources/realtime/client-secrets.d.ts +45 -39
- package/dist/node_modules/openai/resources/realtime/client-secrets.js +19 -1
- package/dist/node_modules/openai/resources/realtime/index.d.mts +1 -1
- package/dist/node_modules/openai/resources/realtime/index.d.ts +1 -1
- package/dist/node_modules/openai/resources/realtime/realtime.d.mts +592 -21
- package/dist/node_modules/openai/resources/realtime/realtime.d.ts +592 -21
- package/dist/node_modules/openai/resources/responses/index.d.mts +2 -0
- package/dist/node_modules/openai/resources/responses/index.d.ts +2 -0
- package/dist/node_modules/openai/resources/responses/input-items.js +1 -1
- package/dist/node_modules/openai/resources/responses/input-tokens.d.mts +4 -1
- package/dist/node_modules/openai/resources/responses/input-tokens.d.ts +4 -1
- package/dist/node_modules/openai/resources/responses/input-tokens.js +9 -2
- package/dist/node_modules/openai/resources/responses/internal-base.d.mts +71 -0
- package/dist/node_modules/openai/resources/responses/internal-base.d.ts +71 -0
- package/dist/node_modules/openai/resources/responses/internal-base.js +48 -0
- package/dist/node_modules/openai/resources/responses/responses.d.mts +956 -64
- package/dist/node_modules/openai/resources/responses/responses.d.ts +956 -64
- package/dist/node_modules/openai/resources/responses/responses.js +20 -5
- package/dist/node_modules/openai/resources/responses/ws-base.d.mts +106 -0
- package/dist/node_modules/openai/resources/responses/ws-base.d.ts +106 -0
- package/dist/node_modules/openai/resources/responses/ws-base.js +476 -0
- package/dist/node_modules/openai/resources/responses/ws.d.mts +13 -0
- package/dist/node_modules/openai/resources/responses/ws.d.ts +13 -0
- package/dist/node_modules/openai/resources/responses/ws.js +31 -0
- package/dist/node_modules/openai/resources/shared.d.mts +3 -2
- package/dist/node_modules/openai/resources/shared.d.ts +3 -2
- package/dist/node_modules/openai/resources/skills/content.d.mts +1 -1
- package/dist/node_modules/openai/resources/skills/content.d.ts +1 -1
- package/dist/node_modules/openai/resources/skills/content.js +2 -1
- package/dist/node_modules/openai/resources/skills/skills.d.mts +5 -5
- package/dist/node_modules/openai/resources/skills/skills.d.ts +5 -5
- package/dist/node_modules/openai/resources/skills/skills.js +18 -10
- package/dist/node_modules/openai/resources/skills/versions/content.d.mts +1 -1
- package/dist/node_modules/openai/resources/skills/versions/content.d.ts +1 -1
- package/dist/node_modules/openai/resources/skills/versions/content.js +2 -1
- package/dist/node_modules/openai/resources/skills/versions/versions.d.mts +4 -4
- package/dist/node_modules/openai/resources/skills/versions/versions.d.ts +4 -4
- package/dist/node_modules/openai/resources/skills/versions/versions.js +14 -7
- package/dist/node_modules/openai/resources/uploads/parts.d.mts +3 -0
- package/dist/node_modules/openai/resources/uploads/parts.d.ts +3 -0
- package/dist/node_modules/openai/resources/uploads/parts.js +4 -1
- package/dist/node_modules/openai/resources/uploads/uploads.d.mts +10 -1
- package/dist/node_modules/openai/resources/uploads/uploads.d.ts +10 -1
- package/dist/node_modules/openai/resources/uploads/uploads.js +20 -4
- package/dist/node_modules/openai/resources/vector-stores/file-batches.d.mts +9 -3
- package/dist/node_modules/openai/resources/vector-stores/file-batches.d.ts +9 -3
- package/dist/node_modules/openai/resources/vector-stores/file-batches.js +9 -1
- package/dist/node_modules/openai/resources/vector-stores/files.d.mts +3 -1
- package/dist/node_modules/openai/resources/vector-stores/files.d.ts +3 -1
- package/dist/node_modules/openai/resources/vector-stores/files.js +10 -1
- package/dist/node_modules/openai/resources/vector-stores/vector-stores.js +6 -0
- package/dist/node_modules/openai/resources/videos.d.mts +123 -11
- package/dist/node_modules/openai/resources/videos.d.ts +123 -11
- package/dist/node_modules/openai/resources/videos.js +46 -11
- package/dist/node_modules/openai/src/auth/index.ts +9 -0
- package/dist/node_modules/openai/src/auth/subject-token-providers.ts +185 -0
- package/dist/node_modules/openai/src/auth/types.ts +28 -0
- package/dist/node_modules/openai/src/auth/workload-identity-auth.ts +122 -0
- package/dist/node_modules/openai/src/azure.ts +9 -4
- package/dist/node_modules/openai/src/beta/realtime/websocket.ts +7 -2
- package/dist/node_modules/openai/src/beta/realtime/ws.ts +5 -1
- package/dist/node_modules/openai/src/client.ts +312 -35
- package/dist/node_modules/openai/src/core/EventEmitter.ts +114 -0
- package/dist/node_modules/openai/src/core/error.ts +40 -0
- package/dist/node_modules/openai/src/core/pagination.ts +62 -0
- package/dist/node_modules/openai/src/core/streaming.ts +2 -1
- package/dist/node_modules/openai/src/index.ts +2 -0
- package/dist/node_modules/openai/src/internal/parse.ts +12 -2
- package/dist/node_modules/openai/src/internal/request-options.ts +2 -0
- package/dist/node_modules/openai/src/internal/types.ts +14 -8
- package/dist/node_modules/openai/src/internal/utils/env.ts +2 -2
- package/dist/node_modules/openai/src/internal/utils/log.ts +2 -0
- package/dist/node_modules/openai/src/internal/utils/query.ts +7 -0
- package/dist/node_modules/openai/src/internal/utils.ts +1 -0
- package/dist/node_modules/openai/src/internal/ws-adapter-browser.ts +123 -0
- package/dist/node_modules/openai/src/internal/ws-adapter-node.ts +105 -0
- package/dist/node_modules/openai/src/internal/ws-adapter.ts +30 -0
- package/dist/node_modules/openai/src/internal/ws.ts +193 -0
- package/dist/node_modules/openai/src/realtime/websocket.ts +7 -2
- package/dist/node_modules/openai/src/realtime/ws.ts +5 -1
- package/dist/node_modules/openai/src/resources/admin/admin.ts +15 -0
- package/dist/node_modules/openai/src/resources/admin/index.ts +4 -0
- package/dist/node_modules/openai/src/resources/admin/organization/admin-api-keys.ts +199 -0
- package/dist/node_modules/openai/src/resources/admin/organization/audit-logs.ts +1597 -0
- package/dist/node_modules/openai/src/resources/admin/organization/certificates.ts +458 -0
- package/dist/node_modules/openai/src/resources/admin/organization/data-retention.ts +79 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/groups.ts +277 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/index.ts +36 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/roles.ts +359 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/users.ts +232 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/index.ts +117 -0
- package/dist/node_modules/openai/src/resources/admin/organization/invites.ts +215 -0
- package/dist/node_modules/openai/src/resources/admin/organization/organization.ts +272 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/api-keys.ts +239 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/certificates.ts +269 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/data-retention.ts +91 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/groups.ts +231 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/index.ts +24 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/roles.ts +386 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/hosted-tool-permissions.ts +217 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/index.ts +102 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/model-permissions.ts +123 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/projects.ts +445 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/rate-limits.ts +173 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/roles.ts +210 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/service-accounts.ts +266 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/spend-alerts.ts +332 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users/index.ts +25 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users/roles.ts +351 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users/users.ts +256 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/roles.ts +217 -0
- package/dist/node_modules/openai/src/resources/admin/organization/spend-alerts.ts +301 -0
- package/dist/node_modules/openai/src/resources/admin/organization/usage.ts +6427 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users/index.ts +22 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users/roles.ts +328 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users/users.ts +291 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin.ts +3 -0
- package/dist/node_modules/openai/src/resources/audio/speech.ts +26 -6
- package/dist/node_modules/openai/src/resources/audio/transcriptions.ts +7 -0
- package/dist/node_modules/openai/src/resources/audio/translations.ts +7 -1
- package/dist/node_modules/openai/src/resources/batches.ts +20 -8
- package/dist/node_modules/openai/src/resources/beta/assistants.ts +11 -2
- package/dist/node_modules/openai/src/resources/beta/chatkit/sessions.ts +6 -2
- package/dist/node_modules/openai/src/resources/beta/chatkit/threads.ts +13 -5
- package/dist/node_modules/openai/src/resources/beta/realtime/sessions.ts +1 -0
- package/dist/node_modules/openai/src/resources/beta/realtime/transcription-sessions.ts +1 -0
- package/dist/node_modules/openai/src/resources/beta/threads/messages.ts +7 -0
- package/dist/node_modules/openai/src/resources/beta/threads/runs/runs.ts +10 -0
- package/dist/node_modules/openai/src/resources/beta/threads/runs/steps.ts +4 -0
- package/dist/node_modules/openai/src/resources/beta/threads/threads.ts +14 -4
- package/dist/node_modules/openai/src/resources/chat/completions/completions.ts +64 -27
- package/dist/node_modules/openai/src/resources/chat/completions/messages.ts +4 -1
- package/dist/node_modules/openai/src/resources/completions.ts +15 -6
- package/dist/node_modules/openai/src/resources/containers/containers.ts +11 -3
- package/dist/node_modules/openai/src/resources/containers/files/content.ts +1 -0
- package/dist/node_modules/openai/src/resources/containers/files/files.ts +7 -2
- package/dist/node_modules/openai/src/resources/conversations/conversations.ts +31 -4
- package/dist/node_modules/openai/src/resources/conversations/items.ts +17 -3
- package/dist/node_modules/openai/src/resources/embeddings.ts +4 -0
- package/dist/node_modules/openai/src/resources/evals/evals.ts +12 -5
- package/dist/node_modules/openai/src/resources/evals/runs/output-items.ts +8 -2
- package/dist/node_modules/openai/src/resources/evals/runs/runs.ts +21 -4
- package/dist/node_modules/openai/src/resources/files.ts +23 -5
- package/dist/node_modules/openai/src/resources/fine-tuning/alpha/graders.ts +13 -2
- package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/checkpoints.ts +6 -0
- package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/index.ts +3 -0
- package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/permissions.ts +84 -10
- package/dist/node_modules/openai/src/resources/fine-tuning/jobs/checkpoints.ts +4 -1
- package/dist/node_modules/openai/src/resources/fine-tuning/jobs/jobs.ts +26 -7
- package/dist/node_modules/openai/src/resources/images.ts +74 -27
- package/dist/node_modules/openai/src/resources/index.ts +7 -0
- package/dist/node_modules/openai/src/resources/models.ts +6 -3
- package/dist/node_modules/openai/src/resources/moderations.ts +4 -1
- package/dist/node_modules/openai/src/resources/realtime/calls.ts +21 -2
- package/dist/node_modules/openai/src/resources/realtime/client-secrets.ts +54 -40
- package/dist/node_modules/openai/src/resources/realtime/index.ts +0 -1
- package/dist/node_modules/openai/src/resources/realtime/realtime.ts +705 -20
- package/dist/node_modules/openai/src/resources/responses/index.ts +2 -0
- package/dist/node_modules/openai/src/resources/responses/input-items.ts +1 -1
- package/dist/node_modules/openai/src/resources/responses/input-tokens.ts +9 -2
- package/dist/node_modules/openai/src/resources/responses/internal-base.ts +113 -0
- package/dist/node_modules/openai/src/resources/responses/responses.ts +1314 -143
- package/dist/node_modules/openai/src/resources/responses/ws-base.ts +611 -0
- package/dist/node_modules/openai/src/resources/responses/ws.ts +38 -0
- package/dist/node_modules/openai/src/resources/shared.ts +9 -1
- package/dist/node_modules/openai/src/resources/skills/content.ts +2 -1
- package/dist/node_modules/openai/src/resources/skills/skills.ts +21 -10
- package/dist/node_modules/openai/src/resources/skills/versions/content.ts +2 -1
- package/dist/node_modules/openai/src/resources/skills/versions/versions.ts +14 -7
- package/dist/node_modules/openai/src/resources/uploads/parts.ts +4 -1
- package/dist/node_modules/openai/src/resources/uploads/uploads.ts +20 -4
- package/dist/node_modules/openai/src/resources/vector-stores/file-batches.ts +18 -4
- package/dist/node_modules/openai/src/resources/vector-stores/files.ts +13 -2
- package/dist/node_modules/openai/src/resources/vector-stores/vector-stores.ts +6 -0
- package/dist/node_modules/openai/src/resources/videos.ts +186 -16
- package/dist/node_modules/openai/src/version.ts +1 -1
- package/dist/node_modules/openai/streaming.d.mts +1 -0
- package/dist/node_modules/openai/streaming.d.ts +1 -0
- package/dist/node_modules/openai/uploads.d.mts +1 -0
- package/dist/node_modules/openai/uploads.d.ts +1 -0
- package/dist/node_modules/openai/version.d.mts +1 -1
- package/dist/node_modules/openai/version.d.ts +1 -1
- package/dist/node_modules/openai/version.js +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/ai-employees/ai-employee.d.ts +1 -10
- package/dist/server/ai-employees/ai-employee.js +0 -84
- package/dist/server/ai-employees/ai-knowledge-base.d.ts +0 -4
- package/dist/server/ai-employees/ai-knowledge-base.js +25 -89
- package/dist/server/collections/lc-checkpoint-blobs.js +1 -1
- package/dist/server/collections/lc-checkpoint-writes.js +1 -1
- package/dist/server/collections/lc-checkpoints.js +1 -1
- package/dist/server/features/index.d.ts +1 -1
- package/dist/server/features/knowledge-base.d.ts +2 -1
- package/dist/server/features/vector-store-provider.d.ts +1 -9
- package/dist/server/plugin.d.ts +1 -0
- package/dist/server/plugin.js +31 -0
- package/dist/server/types/knowledge-base.type.d.ts +14 -0
- package/package.json +13 -13
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base.md +0 -82
- package/dist/node_modules/@langchain/xai/dist/_virtual/rolldown_runtime.cjs +0 -25
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
type EventListener<Events, EventType extends keyof Events> = Events[EventType];
|
|
2
|
+
|
|
3
|
+
type EventListeners<Events, EventType extends keyof Events> = Array<{
|
|
4
|
+
listener: EventListener<Events, EventType>;
|
|
5
|
+
once?: boolean;
|
|
6
|
+
}>;
|
|
7
|
+
|
|
8
|
+
export type EventParameters<Events, EventType extends keyof Events> = {
|
|
9
|
+
[Event in EventType]: EventListener<Events, EventType> extends (...args: infer P) => any ? P : never;
|
|
10
|
+
}[EventType];
|
|
11
|
+
|
|
12
|
+
export class EventEmitter<EventTypes extends Record<string, (...args: any) => any>> {
|
|
13
|
+
#listeners: {
|
|
14
|
+
[Event in keyof EventTypes]?: EventListeners<EventTypes, Event>;
|
|
15
|
+
} = {};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Adds the listener function to the end of the listeners array for the event.
|
|
19
|
+
* No checks are made to see if the listener has already been added. Multiple calls passing
|
|
20
|
+
* the same combination of event and listener will result in the listener being added, and
|
|
21
|
+
* called, multiple times.
|
|
22
|
+
* @returns this, so that calls can be chained
|
|
23
|
+
*/
|
|
24
|
+
on<Event extends keyof EventTypes>(event: Event, listener: EventListener<EventTypes, Event>): this {
|
|
25
|
+
const listeners: EventListeners<EventTypes, Event> =
|
|
26
|
+
this.#listeners[event] || (this.#listeners[event] = []);
|
|
27
|
+
listeners.push({ listener });
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Removes the specified listener from the listener array for the event.
|
|
33
|
+
* off() will remove, at most, one instance of a listener from the listener array. If any single
|
|
34
|
+
* listener has been added multiple times to the listener array for the specified event, then
|
|
35
|
+
* off() must be called multiple times to remove each instance.
|
|
36
|
+
* @returns this, so that calls can be chained
|
|
37
|
+
*/
|
|
38
|
+
off<Event extends keyof EventTypes>(event: Event, listener: EventListener<EventTypes, Event>): this {
|
|
39
|
+
const listeners = this.#listeners[event];
|
|
40
|
+
if (!listeners) return this;
|
|
41
|
+
const index = listeners.findIndex((l) => l.listener === listener);
|
|
42
|
+
if (index >= 0) listeners.splice(index, 1);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Adds a one-time listener function for the event. The next time the event is triggered,
|
|
48
|
+
* this listener is removed and then invoked.
|
|
49
|
+
* @returns this, so that calls can be chained
|
|
50
|
+
*/
|
|
51
|
+
once<Event extends keyof EventTypes>(event: Event, listener: EventListener<EventTypes, Event>): this {
|
|
52
|
+
const listeners: EventListeners<EventTypes, Event> =
|
|
53
|
+
this.#listeners[event] || (this.#listeners[event] = []);
|
|
54
|
+
listeners.push({ listener, once: true });
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This is similar to `.once()`, but returns a Promise that resolves the next time
|
|
60
|
+
* the event is triggered, instead of calling a listener callback.
|
|
61
|
+
* @returns a Promise that resolves the next time given event is triggered,
|
|
62
|
+
* or rejects if an error is emitted. (If you request the 'error' event,
|
|
63
|
+
* returns a promise that resolves with the error).
|
|
64
|
+
*
|
|
65
|
+
* Example:
|
|
66
|
+
*
|
|
67
|
+
* const message = await stream.emitted('message') // rejects if the stream errors
|
|
68
|
+
*/
|
|
69
|
+
emitted<Event extends keyof EventTypes>(
|
|
70
|
+
event: Event,
|
|
71
|
+
): Promise<
|
|
72
|
+
EventParameters<EventTypes, Event> extends [infer Param] ? Param
|
|
73
|
+
: EventParameters<EventTypes, Event> extends [] ? void
|
|
74
|
+
: EventParameters<EventTypes, Event>
|
|
75
|
+
> {
|
|
76
|
+
return new Promise((resolve, reject) => {
|
|
77
|
+
// TODO: handle errors
|
|
78
|
+
this.once(event, resolve as any);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
protected _emit<Event extends keyof EventTypes>(
|
|
83
|
+
this: EventEmitter<EventTypes>,
|
|
84
|
+
event: Event,
|
|
85
|
+
...args: EventParameters<EventTypes, Event>
|
|
86
|
+
) {
|
|
87
|
+
const listeners: EventListeners<EventTypes, Event> | undefined = this.#listeners[event];
|
|
88
|
+
if (listeners) {
|
|
89
|
+
this.#listeners[event] = listeners.filter((l) => !l.once) as any;
|
|
90
|
+
listeners.forEach(({ listener }: any) => listener(...(args as any)));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
protected _hasListener(event: keyof EventTypes): boolean {
|
|
95
|
+
const listeners = this.#listeners[event];
|
|
96
|
+
return listeners && listeners.length > 0;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* An EventEmitter variant that exposes `_emit()` publicly.
|
|
102
|
+
*
|
|
103
|
+
* The base {@link EventEmitter} keeps `_emit` protected so that consumers
|
|
104
|
+
* can only listen, not dispatch. When you need a separate emitter instance
|
|
105
|
+
* that your own code can emit on, without exposing emit on the
|
|
106
|
+
* consumer-facing emitter, use this class.
|
|
107
|
+
*/
|
|
108
|
+
export class InternalEventEmitter<
|
|
109
|
+
EventTypes extends Record<string, (...args: any) => any>,
|
|
110
|
+
> extends EventEmitter<EventTypes> {
|
|
111
|
+
override _emit<Event extends keyof EventTypes>(event: Event, ...args: EventParameters<EventTypes, Event>) {
|
|
112
|
+
super._emit(event, ...args);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
3
|
import { castToError } from '../internal/errors';
|
|
4
|
+
import type { OAuthErrorCode } from '../resources/shared';
|
|
4
5
|
|
|
5
6
|
export class OpenAIError extends Error {}
|
|
6
7
|
|
|
@@ -158,3 +159,42 @@ export class InvalidWebhookSignatureError extends Error {
|
|
|
158
159
|
super(message);
|
|
159
160
|
}
|
|
160
161
|
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Error thrown by the API server during OAuth token exchange.
|
|
165
|
+
* Can have status codes 400, 401, or 403.
|
|
166
|
+
* Other status codes from OAuth endpoints are raised as normal APIError types.
|
|
167
|
+
*/
|
|
168
|
+
export class OAuthError extends APIError<400 | 401 | 403, Headers> {
|
|
169
|
+
readonly error_code: OAuthErrorCode | undefined;
|
|
170
|
+
|
|
171
|
+
constructor(status: 400 | 401 | 403, error: Object | undefined, headers: Headers) {
|
|
172
|
+
let finalMessage = 'OAuth2 authentication error';
|
|
173
|
+
let error_code: OAuthErrorCode | undefined = undefined;
|
|
174
|
+
|
|
175
|
+
if (error && typeof error === 'object') {
|
|
176
|
+
const errorData = error as Record<string, any>;
|
|
177
|
+
error_code = errorData['error'];
|
|
178
|
+
const description = errorData['error_description'];
|
|
179
|
+
if (description && typeof description === 'string') {
|
|
180
|
+
finalMessage = description;
|
|
181
|
+
} else if (error_code) {
|
|
182
|
+
finalMessage = error_code;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
super(status, error, finalMessage, headers);
|
|
187
|
+
this.error_code = error_code;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export class SubjectTokenProviderError extends OpenAIError {
|
|
192
|
+
readonly provider: string;
|
|
193
|
+
readonly cause: Error | undefined;
|
|
194
|
+
|
|
195
|
+
constructor(message: string, provider: string, cause?: Error) {
|
|
196
|
+
super(message);
|
|
197
|
+
this.provider = provider;
|
|
198
|
+
this.cause = cause;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
@@ -267,3 +267,65 @@ export class ConversationCursorPage<Item>
|
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
|
+
|
|
271
|
+
export interface NextCursorPageResponse<Item> {
|
|
272
|
+
data: Array<Item>;
|
|
273
|
+
|
|
274
|
+
has_more: boolean;
|
|
275
|
+
|
|
276
|
+
next: string | null;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export interface NextCursorPageParams {
|
|
280
|
+
after?: string;
|
|
281
|
+
|
|
282
|
+
limit?: number;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export class NextCursorPage<Item> extends AbstractPage<Item> implements NextCursorPageResponse<Item> {
|
|
286
|
+
data: Array<Item>;
|
|
287
|
+
|
|
288
|
+
has_more: boolean;
|
|
289
|
+
|
|
290
|
+
next: string | null;
|
|
291
|
+
|
|
292
|
+
constructor(
|
|
293
|
+
client: OpenAI,
|
|
294
|
+
response: Response,
|
|
295
|
+
body: NextCursorPageResponse<Item>,
|
|
296
|
+
options: FinalRequestOptions,
|
|
297
|
+
) {
|
|
298
|
+
super(client, response, body, options);
|
|
299
|
+
|
|
300
|
+
this.data = body.data || [];
|
|
301
|
+
this.has_more = body.has_more || false;
|
|
302
|
+
this.next = body.next || null;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
getPaginatedItems(): Item[] {
|
|
306
|
+
return this.data ?? [];
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
override hasNextPage(): boolean {
|
|
310
|
+
if (this.has_more === false) {
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return super.hasNextPage();
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
nextPageRequestOptions(): PageRequestOptions | null {
|
|
318
|
+
const cursor = this.next;
|
|
319
|
+
if (!cursor) {
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
return {
|
|
324
|
+
...this.options,
|
|
325
|
+
query: {
|
|
326
|
+
...maybeObj(this.options.query),
|
|
327
|
+
after: cursor,
|
|
328
|
+
},
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
}
|
|
@@ -35,6 +35,7 @@ export class Stream<Item> implements AsyncIterable<Item> {
|
|
|
35
35
|
response: Response,
|
|
36
36
|
controller: AbortController,
|
|
37
37
|
client?: OpenAI,
|
|
38
|
+
synthesizeEventData?: boolean,
|
|
38
39
|
): Stream<Item> {
|
|
39
40
|
let consumed = false;
|
|
40
41
|
const logger = client ? loggerFor(client) : console;
|
|
@@ -69,7 +70,7 @@ export class Stream<Item> implements AsyncIterable<Item> {
|
|
|
69
70
|
throw new APIError(undefined, data.error, undefined, response.headers);
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
yield data;
|
|
73
|
+
yield synthesizeEventData ? { event: sse.event, data } : data;
|
|
73
74
|
} else {
|
|
74
75
|
let data;
|
|
75
76
|
try {
|
|
@@ -28,10 +28,20 @@ export async function defaultParseResponse<T>(
|
|
|
28
28
|
// that if you set `stream: true` the response type must also be `Stream<T>`
|
|
29
29
|
|
|
30
30
|
if (props.options.__streamClass) {
|
|
31
|
-
return props.options.__streamClass.fromSSEResponse(
|
|
31
|
+
return props.options.__streamClass.fromSSEResponse(
|
|
32
|
+
response,
|
|
33
|
+
props.controller,
|
|
34
|
+
client,
|
|
35
|
+
props.options.__synthesizeEventData,
|
|
36
|
+
) as any;
|
|
32
37
|
}
|
|
33
38
|
|
|
34
|
-
return Stream.fromSSEResponse(
|
|
39
|
+
return Stream.fromSSEResponse(
|
|
40
|
+
response,
|
|
41
|
+
props.controller,
|
|
42
|
+
client,
|
|
43
|
+
props.options.__synthesizeEventData,
|
|
44
|
+
) as any;
|
|
35
45
|
}
|
|
36
46
|
|
|
37
47
|
// fetch refuses to read the body when the status code is 204.
|
|
@@ -77,8 +77,10 @@ export type RequestOptions = {
|
|
|
77
77
|
defaultBaseURL?: string | undefined;
|
|
78
78
|
|
|
79
79
|
__metadata?: Record<string, unknown>;
|
|
80
|
+
__security?: { bearerAuth?: boolean; adminAPIKeyAuth?: boolean };
|
|
80
81
|
__binaryResponse?: boolean | undefined;
|
|
81
82
|
__streamClass?: typeof Stream;
|
|
83
|
+
__synthesizeEventData?: boolean;
|
|
82
84
|
};
|
|
83
85
|
|
|
84
86
|
export type EncodedContent = { bodyHeaders: HeadersLike; body: BodyInit };
|
|
@@ -40,7 +40,6 @@ type OverloadedParameters<T> =
|
|
|
40
40
|
: T extends (...args: infer A) => unknown ? A
|
|
41
41
|
: never;
|
|
42
42
|
|
|
43
|
-
/* eslint-disable */
|
|
44
43
|
/**
|
|
45
44
|
* These imports attempt to get types from a parent package's dependencies.
|
|
46
45
|
* Unresolved bare specifiers can trigger [automatic type acquisition][1] in some projects, which
|
|
@@ -63,19 +62,18 @@ type OverloadedParameters<T> =
|
|
|
63
62
|
*
|
|
64
63
|
* [1]: https://www.typescriptlang.org/tsconfig/#typeAcquisition
|
|
65
64
|
*/
|
|
66
|
-
/** @ts-ignore For users with \@types/node */
|
|
65
|
+
/** @ts-ignore For users with \@types/node */ /* prettier-ignore */
|
|
67
66
|
type UndiciTypesRequestInit = NotAny<import('../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit>;
|
|
68
|
-
/** @ts-ignore For users with undici */
|
|
67
|
+
/** @ts-ignore For users with undici */ /* prettier-ignore */
|
|
69
68
|
type UndiciRequestInit = NotAny<import('../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici/index.d.ts').RequestInit>;
|
|
70
|
-
/** @ts-ignore For users with \@types/bun */
|
|
69
|
+
/** @ts-ignore For users with \@types/bun */ /* prettier-ignore */
|
|
71
70
|
type BunRequestInit = globalThis.FetchRequestInit;
|
|
72
|
-
/** @ts-ignore For users with node-fetch@2 */
|
|
71
|
+
/** @ts-ignore For users with node-fetch@2 */ /* prettier-ignore */
|
|
73
72
|
type NodeFetch2RequestInit = NotAny<import('../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit>;
|
|
74
|
-
/** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */
|
|
73
|
+
/** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */ /* prettier-ignore */
|
|
75
74
|
type NodeFetch3RequestInit = NotAny<import('../node_modules/node-fetch').RequestInit> | NotAny<import('../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/node-fetch').RequestInit>;
|
|
76
|
-
/** @ts-ignore For users who use Deno */
|
|
75
|
+
/** @ts-ignore For users who use Deno */ /* prettier-ignore */
|
|
77
76
|
type FetchRequestInit = NonNullable<OverloadedParameters<typeof fetch>[1]>;
|
|
78
|
-
/* eslint-enable */
|
|
79
77
|
|
|
80
78
|
type RequestInits =
|
|
81
79
|
| NotAny<UndiciTypesRequestInit>
|
|
@@ -86,10 +84,18 @@ type RequestInits =
|
|
|
86
84
|
| NotAny<RequestInit>
|
|
87
85
|
| NotAny<FetchRequestInit>;
|
|
88
86
|
|
|
87
|
+
type RuntimeFetchOptions = {
|
|
88
|
+
dispatcher?: unknown;
|
|
89
|
+
agent?: unknown;
|
|
90
|
+
client?: unknown;
|
|
91
|
+
proxy?: unknown;
|
|
92
|
+
};
|
|
93
|
+
|
|
89
94
|
/**
|
|
90
95
|
* This type contains `RequestInit` options that may be available on the current runtime,
|
|
91
96
|
* including per-platform extensions like `dispatcher`, `agent`, `client`, etc.
|
|
92
97
|
*/
|
|
93
98
|
export type MergedRequestInit = RequestInits &
|
|
99
|
+
RuntimeFetchOptions &
|
|
94
100
|
/** We don't include these in the types as they'll be overridden for every request. */
|
|
95
101
|
Partial<Record<'body' | 'headers' | 'method' | 'signal', never>>;
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export const readEnv = (env: string): string | undefined => {
|
|
11
11
|
if (typeof (globalThis as any).process !== 'undefined') {
|
|
12
|
-
return (globalThis as any).process.env?.[env]?.trim()
|
|
12
|
+
return (globalThis as any).process.env?.[env]?.trim() || undefined;
|
|
13
13
|
}
|
|
14
14
|
if (typeof (globalThis as any).Deno !== 'undefined') {
|
|
15
|
-
return (globalThis as any).Deno.env?.get?.(env)?.trim();
|
|
15
|
+
return (globalThis as any).Deno.env?.get?.(env)?.trim() || undefined;
|
|
16
16
|
}
|
|
17
17
|
return undefined;
|
|
18
18
|
};
|
|
@@ -107,6 +107,8 @@ export const formatRequestDetails = (details: {
|
|
|
107
107
|
name,
|
|
108
108
|
(
|
|
109
109
|
name.toLowerCase() === 'authorization' ||
|
|
110
|
+
name.toLowerCase() === 'api-key' ||
|
|
111
|
+
name.toLowerCase() === 'x-api-key' ||
|
|
110
112
|
name.toLowerCase() === 'cookie' ||
|
|
111
113
|
name.toLowerCase() === 'set-cookie'
|
|
112
114
|
) ?
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import * as qs from '../qs/stringify';
|
|
4
|
+
|
|
5
|
+
export function stringifyQuery(query: object | Record<string, unknown>) {
|
|
6
|
+
return qs.stringify(query, { arrayFormat: 'brackets' });
|
|
7
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { WebSocketLike } from './ws-adapter';
|
|
2
|
+
|
|
3
|
+
/** A generic event listener callback. */
|
|
4
|
+
type Listener = (...args: any[]) => void;
|
|
5
|
+
|
|
6
|
+
/** A DOM-style event handler passed to addEventListener/removeEventListener. */
|
|
7
|
+
type DOMEventHandler = (ev: any) => void;
|
|
8
|
+
|
|
9
|
+
// Minimal browser API type declarations.
|
|
10
|
+
declare class WebSocket {
|
|
11
|
+
readonly readyState: number;
|
|
12
|
+
binaryType: string;
|
|
13
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
14
|
+
close(code?: number, reason?: string): void;
|
|
15
|
+
addEventListener(type: string, listener: DOMEventHandler): void;
|
|
16
|
+
removeEventListener(type: string, listener: DOMEventHandler): void;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface MessageEvent {
|
|
20
|
+
data: any;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface CloseEvent {
|
|
24
|
+
code: number;
|
|
25
|
+
reason: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export class BrowserWebSocket implements WebSocketLike {
|
|
29
|
+
private _ws: WebSocket;
|
|
30
|
+
private _listenerMap = new Map<string, Map<Listener, DOMEventHandler>>();
|
|
31
|
+
|
|
32
|
+
constructor(ws: WebSocket) {
|
|
33
|
+
this._ws = ws;
|
|
34
|
+
this._ws.binaryType = 'arraybuffer';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
38
|
+
get platformSocket(): WebSocket {
|
|
39
|
+
return this._ws;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
get readyState(): number {
|
|
43
|
+
return this._ws.readyState;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void {
|
|
47
|
+
this._ws.send(data);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
close(code?: number, reason?: string): void {
|
|
51
|
+
this._ws.close(code, reason);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
on(event: string, listener: Listener): void {
|
|
55
|
+
const wrapped = this._wrapListener(event, listener);
|
|
56
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
57
|
+
this._ws.addEventListener(event, wrapped);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
off(event: string, listener: Listener): void {
|
|
61
|
+
const byListener = this._listenerMap.get(event);
|
|
62
|
+
if (!byListener) return;
|
|
63
|
+
const wrapped = byListener.get(listener);
|
|
64
|
+
if (wrapped) {
|
|
65
|
+
byListener.delete(listener);
|
|
66
|
+
this._ws.removeEventListener(event, wrapped);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
once(event: string, listener: Listener): void {
|
|
71
|
+
const onceListener: Listener = (...args) => {
|
|
72
|
+
this.off(event, listener);
|
|
73
|
+
listener(...args);
|
|
74
|
+
};
|
|
75
|
+
const wrapped = this._wrapListener(event, onceListener);
|
|
76
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
77
|
+
this._ws.addEventListener(event, wrapped);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private _listenersFor(event: string): Map<Listener, DOMEventHandler> {
|
|
81
|
+
let map = this._listenerMap.get(event);
|
|
82
|
+
if (!map) {
|
|
83
|
+
map = new Map();
|
|
84
|
+
this._listenerMap.set(event, map);
|
|
85
|
+
}
|
|
86
|
+
return map;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Converts browser event objects to positional arguments matching the
|
|
91
|
+
* {@link WebSocketLike} interface.
|
|
92
|
+
*/
|
|
93
|
+
private _wrapListener(event: string, listener: Listener): DOMEventHandler {
|
|
94
|
+
switch (event) {
|
|
95
|
+
case 'message':
|
|
96
|
+
return (ev: MessageEvent) => {
|
|
97
|
+
const isBinary = typeof ev.data !== 'string';
|
|
98
|
+
listener(ev.data, isBinary);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
case 'close':
|
|
102
|
+
return (ev: CloseEvent) => {
|
|
103
|
+
listener(ev.code, ev.reason);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
case 'error':
|
|
107
|
+
return (ev: any) => {
|
|
108
|
+
// Some environments provide an ErrorEvent with a `.message`;
|
|
109
|
+
// fall back to a generic message when the event carries nothing.
|
|
110
|
+
const message = ev?.message || ev?.error?.message || 'WebSocket error';
|
|
111
|
+
const err = new Error(message);
|
|
112
|
+
if (ev?.error) {
|
|
113
|
+
(err as any).cause = ev.error;
|
|
114
|
+
}
|
|
115
|
+
listener(err);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
case 'open':
|
|
119
|
+
default:
|
|
120
|
+
return listener as DOMEventHandler;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type * as WS from 'ws';
|
|
2
|
+
import type { WebSocketLike } from './ws-adapter';
|
|
3
|
+
|
|
4
|
+
/** A generic event listener callback. */
|
|
5
|
+
type Listener = (...args: any[]) => void;
|
|
6
|
+
|
|
7
|
+
export class NodeWebSocket implements WebSocketLike {
|
|
8
|
+
private _ws: WS.WebSocket;
|
|
9
|
+
|
|
10
|
+
/** Maps `(event, originalListener)` -> wrapped listener for correct `off()` removal. */
|
|
11
|
+
private _listenerMap = new Map<string, Map<Listener, Listener>>();
|
|
12
|
+
|
|
13
|
+
constructor(ws: WS.WebSocket) {
|
|
14
|
+
this._ws = ws;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
18
|
+
get platformSocket(): WS.WebSocket {
|
|
19
|
+
return this._ws;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get readyState(): number {
|
|
23
|
+
return this._ws.readyState;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void {
|
|
27
|
+
this._ws.send(data);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
close(code?: number, reason?: string): void {
|
|
31
|
+
this._ws.close(code, reason);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
on(event: string, listener: Listener): void {
|
|
35
|
+
const wrapped = this._wrapListener(event, listener);
|
|
36
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
37
|
+
this._ws.on(event, wrapped);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
off(event: string, listener: Listener): void {
|
|
41
|
+
const byListener = this._listenerMap.get(event);
|
|
42
|
+
if (!byListener) return;
|
|
43
|
+
const wrapped = byListener.get(listener);
|
|
44
|
+
if (wrapped) {
|
|
45
|
+
byListener.delete(listener);
|
|
46
|
+
this._ws.removeListener(event, wrapped);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
once(event: string, listener: Listener): void {
|
|
51
|
+
const onceListener: Listener = (...args) => {
|
|
52
|
+
this.off(event, listener);
|
|
53
|
+
listener(...args);
|
|
54
|
+
};
|
|
55
|
+
const wrapped = this._wrapListener(event, onceListener);
|
|
56
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
57
|
+
this._ws.on(event, wrapped);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private _listenersFor(event: string): Map<Listener, Listener> {
|
|
61
|
+
let map = this._listenerMap.get(event);
|
|
62
|
+
if (!map) {
|
|
63
|
+
map = new Map();
|
|
64
|
+
this._listenerMap.set(event, map);
|
|
65
|
+
}
|
|
66
|
+
return map;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Normalizes `ws` message payloads: text frames become strings,
|
|
71
|
+
* binary frames stay as `Buffer`, and fragmented frames are merged.
|
|
72
|
+
*/
|
|
73
|
+
private static _normalizeMessageData(
|
|
74
|
+
data: Buffer | ArrayBuffer | Buffer[],
|
|
75
|
+
isBinary: boolean,
|
|
76
|
+
): string | Buffer {
|
|
77
|
+
if (!isBinary) {
|
|
78
|
+
if (Array.isArray(data)) return Buffer.concat(data).toString();
|
|
79
|
+
if (data instanceof ArrayBuffer) return Buffer.from(data).toString();
|
|
80
|
+
return data.toString();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (Array.isArray(data)) return Buffer.concat(data);
|
|
84
|
+
if (data instanceof ArrayBuffer) return Buffer.from(data);
|
|
85
|
+
return data;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
private _wrapListener(event: string, listener: Listener): Listener {
|
|
89
|
+
switch (event) {
|
|
90
|
+
case 'message':
|
|
91
|
+
return (data: Buffer | ArrayBuffer | Buffer[], isBinary: boolean) => {
|
|
92
|
+
listener(NodeWebSocket._normalizeMessageData(data, isBinary), isBinary);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
case 'close':
|
|
96
|
+
return (code: number, reason: Buffer) => {
|
|
97
|
+
listener(code, reason.toString());
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
// 'open' and 'error' pass through unchanged
|
|
101
|
+
default:
|
|
102
|
+
return listener;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalized WebSocket interface that abstracts over the `ws` package (Node.js)
|
|
3
|
+
* and the native WebSocket API (browser).
|
|
4
|
+
*/
|
|
5
|
+
export interface WebSocketLike {
|
|
6
|
+
readonly readyState: number;
|
|
7
|
+
|
|
8
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
9
|
+
close(code?: number, reason?: string): void;
|
|
10
|
+
|
|
11
|
+
on(event: 'open', listener: () => void): void;
|
|
12
|
+
on(
|
|
13
|
+
event: 'message',
|
|
14
|
+
listener: (data: string | ArrayBuffer | ArrayBufferView, isBinary: boolean) => void,
|
|
15
|
+
): void;
|
|
16
|
+
on(event: 'close', listener: (code: number, reason: string) => void): void;
|
|
17
|
+
on(event: 'error', listener: (err: Error) => void): void;
|
|
18
|
+
on(event: string, listener: (...args: any[]) => void): void;
|
|
19
|
+
|
|
20
|
+
off(event: string, listener: (...args: any[]) => void): void;
|
|
21
|
+
once(event: string, listener: (...args: any[]) => void): void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Standard WebSocket readyState values (RFC 6455). */
|
|
25
|
+
export const ReadyState = {
|
|
26
|
+
CONNECTING: 0,
|
|
27
|
+
OPEN: 1,
|
|
28
|
+
CLOSING: 2,
|
|
29
|
+
CLOSED: 3,
|
|
30
|
+
} as const;
|