openai 7.5.0 → 7.7.0
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/CHANGELOG.md +117 -0
- package/README.md +46 -2
- package/auth/index.d.mts +1 -1
- package/auth/index.d.mts.map +1 -1
- package/auth/index.d.ts +1 -1
- package/auth/index.d.ts.map +1 -1
- package/auth/index.js.map +1 -1
- package/auth/index.mjs.map +1 -1
- package/auth/subject-token-providers.d.mts.map +1 -1
- package/auth/subject-token-providers.d.ts.map +1 -1
- package/auth/subject-token-providers.js +176 -4
- package/auth/subject-token-providers.js.map +1 -1
- package/auth/subject-token-providers.mjs +176 -4
- package/auth/subject-token-providers.mjs.map +1 -1
- package/auth/types.d.mts +17 -0
- package/auth/types.d.mts.map +1 -1
- package/auth/types.d.ts +17 -0
- package/auth/types.d.ts.map +1 -1
- package/auth/workload-identity-auth.d.mts.map +1 -1
- package/auth/workload-identity-auth.d.ts.map +1 -1
- package/auth/workload-identity-auth.js +80 -7
- package/auth/workload-identity-auth.js.map +1 -1
- package/auth/workload-identity-auth.mjs +80 -7
- package/auth/workload-identity-auth.mjs.map +1 -1
- package/auth/x509-transport.d.mts +5 -0
- package/auth/x509-transport.d.mts.map +1 -0
- package/auth/x509-transport.d.ts +5 -0
- package/auth/x509-transport.d.ts.map +1 -0
- package/auth/x509-transport.js +39 -0
- package/auth/x509-transport.js.map +1 -0
- package/auth/x509-transport.mjs +36 -0
- package/auth/x509-transport.mjs.map +1 -0
- package/azure.d.mts +11 -2
- package/azure.d.mts.map +1 -1
- package/azure.d.ts +11 -2
- package/azure.d.ts.map +1 -1
- package/azure.js +7 -1
- package/azure.js.map +1 -1
- package/azure.mjs +7 -1
- package/azure.mjs.map +1 -1
- package/bedrock.d.mts +6 -2
- package/bedrock.d.mts.map +1 -1
- package/bedrock.d.ts +6 -2
- package/bedrock.d.ts.map +1 -1
- package/bedrock.js +34 -4
- package/bedrock.js.map +1 -1
- package/bedrock.mjs +35 -5
- package/bedrock.mjs.map +1 -1
- package/beta/realtime/internal-base.d.mts +2 -0
- package/beta/realtime/internal-base.d.mts.map +1 -1
- package/beta/realtime/internal-base.d.ts +2 -0
- package/beta/realtime/internal-base.d.ts.map +1 -1
- package/beta/realtime/internal-base.js +15 -0
- package/beta/realtime/internal-base.js.map +1 -1
- package/beta/realtime/internal-base.mjs +14 -0
- package/beta/realtime/internal-base.mjs.map +1 -1
- package/beta/realtime/websocket.d.mts +11 -5
- package/beta/realtime/websocket.d.mts.map +1 -1
- package/beta/realtime/websocket.d.ts +11 -5
- package/beta/realtime/websocket.d.ts.map +1 -1
- package/beta/realtime/websocket.js +106 -31
- package/beta/realtime/websocket.js.map +1 -1
- package/beta/realtime/websocket.mjs +107 -32
- package/beta/realtime/websocket.mjs.map +1 -1
- package/beta/realtime/ws.d.mts +0 -2
- package/beta/realtime/ws.d.mts.map +1 -1
- package/beta/realtime/ws.d.ts +0 -2
- package/beta/realtime/ws.d.ts.map +1 -1
- package/beta/realtime/ws.js +24 -5
- package/beta/realtime/ws.js.map +1 -1
- package/beta/realtime/ws.mjs +25 -6
- package/beta/realtime/ws.mjs.map +1 -1
- package/client.d.mts +17 -2
- package/client.d.mts.map +1 -1
- package/client.d.ts +17 -2
- package/client.d.ts.map +1 -1
- package/client.js +422 -70
- package/client.js.map +1 -1
- package/client.mjs +423 -71
- package/client.mjs.map +1 -1
- package/core/EventEmitter.d.mts.map +1 -1
- package/core/EventEmitter.d.ts.map +1 -1
- package/core/EventEmitter.js +67 -9
- package/core/EventEmitter.js.map +1 -1
- package/core/EventEmitter.mjs +68 -10
- package/core/EventEmitter.mjs.map +1 -1
- package/core/streaming.d.mts +1 -0
- package/core/streaming.d.mts.map +1 -1
- package/core/streaming.d.ts +1 -0
- package/core/streaming.d.ts.map +1 -1
- package/core/streaming.js +216 -26
- package/core/streaming.js.map +1 -1
- package/core/streaming.mjs +216 -26
- package/core/streaming.mjs.map +1 -1
- package/helpers/audio.d.mts +5 -5
- package/helpers/audio.d.mts.map +1 -1
- package/helpers/audio.d.ts +5 -5
- package/helpers/audio.d.ts.map +1 -1
- package/helpers/audio.js +93 -22
- package/helpers/audio.js.map +1 -1
- package/helpers/audio.mjs +93 -22
- package/helpers/audio.mjs.map +1 -1
- package/helpers/standard-schema.d.mts.map +1 -1
- package/helpers/standard-schema.d.ts.map +1 -1
- package/helpers/standard-schema.js +34 -14
- package/helpers/standard-schema.js.map +1 -1
- package/helpers/standard-schema.mjs +35 -15
- package/helpers/standard-schema.mjs.map +1 -1
- package/helpers/zod-v3-strict-schema.d.mts +7 -0
- package/helpers/zod-v3-strict-schema.d.mts.map +1 -0
- package/helpers/zod-v3-strict-schema.d.ts +7 -0
- package/helpers/zod-v3-strict-schema.d.ts.map +1 -0
- package/helpers/zod-v3-strict-schema.js +403 -0
- package/helpers/zod-v3-strict-schema.js.map +1 -0
- package/helpers/zod-v3-strict-schema.mjs +399 -0
- package/helpers/zod-v3-strict-schema.mjs.map +1 -0
- package/helpers/zod.d.mts.map +1 -1
- package/helpers/zod.d.ts.map +1 -1
- package/helpers/zod.js +11 -3
- package/helpers/zod.js.map +1 -1
- package/helpers/zod.mjs +12 -4
- package/helpers/zod.mjs.map +1 -1
- package/index.d.mts +1 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js.map +1 -1
- package/index.mjs.map +1 -1
- package/internal/assistant-stream-delta.d.mts.map +1 -1
- package/internal/assistant-stream-delta.d.ts.map +1 -1
- package/internal/assistant-stream-delta.js +28 -8
- package/internal/assistant-stream-delta.js.map +1 -1
- package/internal/assistant-stream-delta.mjs +28 -8
- package/internal/assistant-stream-delta.mjs.map +1 -1
- package/internal/auth/x509-token-exchange.d.mts +16 -0
- package/internal/auth/x509-token-exchange.d.mts.map +1 -0
- package/internal/auth/x509-token-exchange.d.ts +16 -0
- package/internal/auth/x509-token-exchange.d.ts.map +1 -0
- package/internal/auth/x509-token-exchange.js +246 -0
- package/internal/auth/x509-token-exchange.js.map +1 -0
- package/internal/auth/x509-token-exchange.mjs +243 -0
- package/internal/auth/x509-token-exchange.mjs.map +1 -0
- package/internal/auth/x509-transport-capability.d.mts +37 -0
- package/internal/auth/x509-transport-capability.d.mts.map +1 -0
- package/internal/auth/x509-transport-capability.d.ts +37 -0
- package/internal/auth/x509-transport-capability.d.ts.map +1 -0
- package/internal/auth/x509-transport-capability.js +169 -0
- package/internal/auth/x509-transport-capability.js.map +1 -0
- package/internal/auth/x509-transport-capability.mjs +164 -0
- package/internal/auth/x509-transport-capability.mjs.map +1 -0
- package/internal/auth/x509-transport-registry.d.mts +63 -0
- package/internal/auth/x509-transport-registry.d.mts.map +1 -0
- package/internal/auth/x509-transport-registry.d.ts +63 -0
- package/internal/auth/x509-transport-registry.d.ts.map +1 -0
- package/internal/auth/x509-transport-registry.js +53 -0
- package/internal/auth/x509-transport-registry.js.map +1 -0
- package/internal/auth/x509-transport-registry.mjs +48 -0
- package/internal/auth/x509-transport-registry.mjs.map +1 -0
- package/internal/auth/x509-transport-state-browser.d.mts +21 -0
- package/internal/auth/x509-transport-state-browser.d.mts.map +1 -0
- package/internal/auth/x509-transport-state-browser.d.ts +21 -0
- package/internal/auth/x509-transport-state-browser.d.ts.map +1 -0
- package/internal/auth/x509-transport-state-browser.js +30 -0
- package/internal/auth/x509-transport-state-browser.js.map +1 -0
- package/internal/auth/x509-transport-state-browser.mjs +27 -0
- package/internal/auth/x509-transport-state-browser.mjs.map +1 -0
- package/internal/auth/x509-transport-state.cjs +30 -0
- package/internal/auth/x509-transport-state.cjs.map +1 -0
- package/internal/auth/x509-transport-state.d.cts +21 -0
- package/internal/auth/x509-transport-state.d.cts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.d.mts +128 -0
- package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.d.ts +128 -0
- package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.js +767 -0
- package/internal/auth/x509-workload-identity-auth.js.map +1 -0
- package/internal/auth/x509-workload-identity-auth.mjs +757 -0
- package/internal/auth/x509-workload-identity-auth.mjs.map +1 -0
- package/internal/bedrock.d.mts +2 -0
- package/internal/bedrock.d.mts.map +1 -1
- package/internal/bedrock.d.ts +2 -0
- package/internal/bedrock.d.ts.map +1 -1
- package/internal/bedrock.js +169 -5
- package/internal/bedrock.js.map +1 -1
- package/internal/bedrock.mjs +168 -5
- package/internal/bedrock.mjs.map +1 -1
- package/internal/data-residency.d.mts +12 -0
- package/internal/data-residency.d.mts.map +1 -0
- package/internal/data-residency.d.ts +12 -0
- package/internal/data-residency.d.ts.map +1 -0
- package/internal/data-residency.js +34 -0
- package/internal/data-residency.js.map +1 -0
- package/internal/data-residency.mjs +30 -0
- package/internal/data-residency.mjs.map +1 -0
- package/internal/multipart-encoding.d.mts +8 -0
- package/internal/multipart-encoding.d.mts.map +1 -0
- package/internal/multipart-encoding.d.ts +8 -0
- package/internal/multipart-encoding.d.ts.map +1 -0
- package/internal/multipart-encoding.js +51 -0
- package/internal/multipart-encoding.js.map +1 -0
- package/internal/multipart-encoding.mjs +48 -0
- package/internal/multipart-encoding.mjs.map +1 -0
- package/internal/qs/utils.d.mts.map +1 -1
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.js +307 -10
- package/internal/qs/utils.js.map +1 -1
- package/internal/qs/utils.mjs +307 -10
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/request-options.d.mts +7 -0
- package/internal/request-options.d.mts.map +1 -1
- package/internal/request-options.d.ts +7 -0
- package/internal/request-options.d.ts.map +1 -1
- package/internal/request-options.js +43 -1
- package/internal/request-options.js.map +1 -1
- package/internal/request-options.mjs +42 -1
- package/internal/request-options.mjs.map +1 -1
- package/internal/responses/canonical-output-text.js +3 -3
- package/internal/responses/canonical-output-text.js.map +1 -1
- package/internal/responses/canonical-output-text.mjs +3 -3
- package/internal/responses/canonical-output-text.mjs.map +1 -1
- package/internal/responses/response-accumulator.d.mts +1 -1
- package/internal/responses/response-accumulator.d.mts.map +1 -1
- package/internal/responses/response-accumulator.d.ts +1 -1
- package/internal/responses/response-accumulator.d.ts.map +1 -1
- package/internal/responses/response-accumulator.js +331 -25
- package/internal/responses/response-accumulator.js.map +1 -1
- package/internal/responses/response-accumulator.mjs +331 -25
- package/internal/responses/response-accumulator.mjs.map +1 -1
- package/internal/tslib.js +6 -0
- package/internal/tslib.mjs +6 -1
- package/internal/uploads.d.mts +10 -6
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts +10 -6
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.js +65 -24
- package/internal/uploads.js.map +1 -1
- package/internal/uploads.mjs +65 -24
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/env.d.mts.map +1 -1
- package/internal/utils/env.d.ts.map +1 -1
- package/internal/utils/env.js +9 -4
- package/internal/utils/env.js.map +1 -1
- package/internal/utils/env.mjs +9 -4
- package/internal/utils/env.mjs.map +1 -1
- package/internal/ws.d.mts.map +1 -1
- package/internal/ws.d.ts.map +1 -1
- package/internal/ws.js +23 -1
- package/internal/ws.js.map +1 -1
- package/internal/ws.mjs +23 -1
- package/internal/ws.mjs.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
- package/lib/AbstractChatCompletionRunner.js +32 -7
- package/lib/AbstractChatCompletionRunner.js.map +1 -1
- package/lib/AbstractChatCompletionRunner.mjs +34 -9
- package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
- package/lib/AssistantStream.d.mts.map +1 -1
- package/lib/AssistantStream.d.ts.map +1 -1
- package/lib/AssistantStream.js +211 -23
- package/lib/AssistantStream.js.map +1 -1
- package/lib/AssistantStream.mjs +211 -23
- package/lib/AssistantStream.mjs.map +1 -1
- package/lib/ChatCompletionStream.d.mts +1 -1
- package/lib/ChatCompletionStream.d.mts.map +1 -1
- package/lib/ChatCompletionStream.d.ts +1 -1
- package/lib/ChatCompletionStream.d.ts.map +1 -1
- package/lib/ChatCompletionStream.js +1118 -67
- package/lib/ChatCompletionStream.js.map +1 -1
- package/lib/ChatCompletionStream.mjs +1119 -68
- package/lib/ChatCompletionStream.mjs.map +1 -1
- package/lib/EventEmitter.d.mts.map +1 -1
- package/lib/EventEmitter.d.ts.map +1 -1
- package/lib/EventEmitter.js +67 -9
- package/lib/EventEmitter.js.map +1 -1
- package/lib/EventEmitter.mjs +68 -10
- package/lib/EventEmitter.mjs.map +1 -1
- package/lib/EventStream.d.mts +4 -0
- package/lib/EventStream.d.mts.map +1 -1
- package/lib/EventStream.d.ts +4 -0
- package/lib/EventStream.d.ts.map +1 -1
- package/lib/EventStream.js +1096 -11
- package/lib/EventStream.js.map +1 -1
- package/lib/EventStream.mjs +1097 -12
- package/lib/EventStream.mjs.map +1 -1
- package/lib/ResponsesParser.d.mts.map +1 -1
- package/lib/ResponsesParser.d.ts.map +1 -1
- package/lib/ResponsesParser.js +1 -1
- package/lib/ResponsesParser.js.map +1 -1
- package/lib/ResponsesParser.mjs +1 -1
- package/lib/ResponsesParser.mjs.map +1 -1
- package/lib/Util.d.mts +2 -0
- package/lib/Util.d.mts.map +1 -1
- package/lib/Util.d.ts +2 -0
- package/lib/Util.d.ts.map +1 -1
- package/lib/Util.js +7 -4
- package/lib/Util.js.map +1 -1
- package/lib/Util.mjs +7 -4
- package/lib/Util.mjs.map +1 -1
- package/lib/assistant-run-polling.d.mts +12 -0
- package/lib/assistant-run-polling.d.mts.map +1 -0
- package/lib/assistant-run-polling.d.ts +12 -0
- package/lib/assistant-run-polling.d.ts.map +1 -0
- package/lib/assistant-run-polling.js +17 -0
- package/lib/assistant-run-polling.js.map +1 -0
- package/lib/assistant-run-polling.mjs +14 -0
- package/lib/assistant-run-polling.mjs.map +1 -0
- package/lib/embeddings.d.mts +18 -0
- package/lib/embeddings.d.mts.map +1 -0
- package/lib/embeddings.d.ts +18 -0
- package/lib/embeddings.d.ts.map +1 -0
- package/lib/embeddings.js +50 -0
- package/lib/embeddings.js.map +1 -0
- package/lib/embeddings.mjs +47 -0
- package/lib/embeddings.mjs.map +1 -0
- package/lib/file-processing.d.mts +10 -0
- package/lib/file-processing.d.mts.map +1 -0
- package/lib/file-processing.d.ts +10 -0
- package/lib/file-processing.d.ts.map +1 -0
- package/lib/file-processing.js +30 -0
- package/lib/file-processing.js.map +1 -0
- package/lib/file-processing.mjs +27 -0
- package/lib/file-processing.mjs.map +1 -0
- package/lib/parser.d.mts.map +1 -1
- package/lib/parser.d.ts.map +1 -1
- package/lib/parser.js +16 -4
- package/lib/parser.js.map +1 -1
- package/lib/parser.mjs +16 -4
- package/lib/parser.mjs.map +1 -1
- package/lib/polling.d.mts +20 -0
- package/lib/polling.d.mts.map +1 -0
- package/lib/polling.d.ts +20 -0
- package/lib/polling.d.ts.map +1 -0
- package/lib/polling.js +130 -0
- package/lib/polling.js.map +1 -0
- package/lib/polling.mjs +127 -0
- package/lib/polling.mjs.map +1 -0
- package/lib/responses/ResponseStream.d.mts.map +1 -1
- package/lib/responses/ResponseStream.d.ts.map +1 -1
- package/lib/responses/ResponseStream.js +21 -11
- package/lib/responses/ResponseStream.js.map +1 -1
- package/lib/responses/ResponseStream.mjs +21 -11
- package/lib/responses/ResponseStream.mjs.map +1 -1
- package/lib/vector-store-polling.d.mts +22 -0
- package/lib/vector-store-polling.d.mts.map +1 -0
- package/lib/vector-store-polling.d.ts +22 -0
- package/lib/vector-store-polling.d.ts.map +1 -0
- package/lib/vector-store-polling.js +24 -0
- package/lib/vector-store-polling.js.map +1 -0
- package/lib/vector-store-polling.mjs +20 -0
- package/lib/vector-store-polling.mjs.map +1 -0
- package/lib/vector-store-upload.d.mts +17 -0
- package/lib/vector-store-upload.d.mts.map +1 -0
- package/lib/vector-store-upload.d.ts +17 -0
- package/lib/vector-store-upload.d.ts.map +1 -0
- package/lib/vector-store-upload.js +37 -0
- package/lib/vector-store-upload.js.map +1 -0
- package/lib/vector-store-upload.mjs +34 -0
- package/lib/vector-store-upload.mjs.map +1 -0
- package/lib/webhook-signature.d.mts +15 -0
- package/lib/webhook-signature.d.mts.map +1 -0
- package/lib/webhook-signature.d.ts +15 -0
- package/lib/webhook-signature.d.ts.map +1 -0
- package/lib/webhook-signature.js +125 -0
- package/lib/webhook-signature.js.map +1 -0
- package/lib/webhook-signature.mjs +121 -0
- package/lib/webhook-signature.mjs.map +1 -0
- package/package.json +14 -1
- package/realtime/internal-base.d.mts +2 -0
- package/realtime/internal-base.d.mts.map +1 -1
- package/realtime/internal-base.d.ts +2 -0
- package/realtime/internal-base.d.ts.map +1 -1
- package/realtime/internal-base.js +15 -0
- package/realtime/internal-base.js.map +1 -1
- package/realtime/internal-base.mjs +14 -0
- package/realtime/internal-base.mjs.map +1 -1
- package/realtime/websocket.d.mts +3 -2
- package/realtime/websocket.d.mts.map +1 -1
- package/realtime/websocket.d.ts +3 -2
- package/realtime/websocket.d.ts.map +1 -1
- package/realtime/websocket.js +90 -26
- package/realtime/websocket.js.map +1 -1
- package/realtime/websocket.mjs +91 -27
- package/realtime/websocket.mjs.map +1 -1
- package/realtime/ws.d.mts.map +1 -1
- package/realtime/ws.d.ts.map +1 -1
- package/realtime/ws.js +9 -1
- package/realtime/ws.js.map +1 -1
- package/realtime/ws.mjs +10 -2
- package/realtime/ws.mjs.map +1 -1
- package/resources/admin/organization/index.d.mts +2 -2
- package/resources/admin/organization/index.d.mts.map +1 -1
- package/resources/admin/organization/index.d.ts +2 -2
- package/resources/admin/organization/index.d.ts.map +1 -1
- package/resources/admin/organization/index.js.map +1 -1
- package/resources/admin/organization/index.mjs.map +1 -1
- package/resources/admin/organization/organization.d.mts +4 -4
- package/resources/admin/organization/organization.d.mts.map +1 -1
- package/resources/admin/organization/organization.d.ts +4 -4
- package/resources/admin/organization/organization.d.ts.map +1 -1
- package/resources/admin/organization/organization.js.map +1 -1
- package/resources/admin/organization/organization.mjs.map +1 -1
- package/resources/admin/organization/projects/index.d.mts +1 -1
- package/resources/admin/organization/projects/index.d.mts.map +1 -1
- package/resources/admin/organization/projects/index.d.ts +1 -1
- package/resources/admin/organization/projects/index.d.ts.map +1 -1
- package/resources/admin/organization/projects/index.js.map +1 -1
- package/resources/admin/organization/projects/index.mjs.map +1 -1
- package/resources/admin/organization/projects/projects.d.mts +22 -5
- package/resources/admin/organization/projects/projects.d.mts.map +1 -1
- package/resources/admin/organization/projects/projects.d.ts +22 -5
- package/resources/admin/organization/projects/projects.d.ts.map +1 -1
- package/resources/admin/organization/projects/projects.js.map +1 -1
- package/resources/admin/organization/projects/projects.mjs.map +1 -1
- package/resources/admin/organization/usage.d.mts +62 -1
- package/resources/admin/organization/usage.d.mts.map +1 -1
- package/resources/admin/organization/usage.d.ts +62 -1
- package/resources/admin/organization/usage.d.ts.map +1 -1
- package/resources/admin/organization/usage.js.map +1 -1
- package/resources/admin/organization/usage.mjs.map +1 -1
- package/resources/beta/responses/internal-base.d.mts.map +1 -1
- package/resources/beta/responses/internal-base.d.ts.map +1 -1
- package/resources/beta/responses/internal-base.js +2 -0
- package/resources/beta/responses/internal-base.js.map +1 -1
- package/resources/beta/responses/internal-base.mjs +2 -0
- package/resources/beta/responses/internal-base.mjs.map +1 -1
- package/resources/beta/responses/responses.d.mts +17 -20
- package/resources/beta/responses/responses.d.mts.map +1 -1
- package/resources/beta/responses/responses.d.ts +17 -20
- package/resources/beta/responses/responses.d.ts.map +1 -1
- package/resources/beta/responses/responses.js.map +1 -1
- package/resources/beta/responses/responses.mjs.map +1 -1
- package/resources/beta/threads/runs/index.d.mts +1 -1
- package/resources/beta/threads/runs/index.d.mts.map +1 -1
- package/resources/beta/threads/runs/index.d.ts +1 -1
- package/resources/beta/threads/runs/index.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.d.mts.map +1 -1
- package/resources/beta/threads/runs/runs.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.js +2 -43
- package/resources/beta/threads/runs/runs.js.map +1 -1
- package/resources/beta/threads/runs/runs.mjs +2 -43
- package/resources/beta/threads/runs/runs.mjs.map +1 -1
- package/resources/chat/completions/completions.d.mts +6 -0
- package/resources/chat/completions/completions.d.mts.map +1 -1
- package/resources/chat/completions/completions.d.ts +6 -0
- package/resources/chat/completions/completions.d.ts.map +1 -1
- package/resources/chat/completions/completions.js.map +1 -1
- package/resources/chat/completions/completions.mjs.map +1 -1
- package/resources/embeddings.d.mts.map +1 -1
- package/resources/embeddings.d.ts.map +1 -1
- package/resources/embeddings.js +2 -36
- package/resources/embeddings.js.map +1 -1
- package/resources/embeddings.mjs +2 -36
- package/resources/embeddings.mjs.map +1 -1
- package/resources/files.d.mts.map +1 -1
- package/resources/files.d.ts.map +1 -1
- package/resources/files.js +2 -15
- package/resources/files.js.map +1 -1
- package/resources/files.mjs +2 -15
- package/resources/files.mjs.map +1 -1
- package/resources/images.d.mts +12 -22
- package/resources/images.d.mts.map +1 -1
- package/resources/images.d.ts +12 -22
- package/resources/images.d.ts.map +1 -1
- package/resources/realtime/calls.d.mts +23 -1
- package/resources/realtime/calls.d.mts.map +1 -1
- package/resources/realtime/calls.d.ts +23 -1
- package/resources/realtime/calls.d.ts.map +1 -1
- package/resources/realtime/calls.js +24 -0
- package/resources/realtime/calls.js.map +1 -1
- package/resources/realtime/calls.mjs +24 -0
- package/resources/realtime/calls.mjs.map +1 -1
- package/resources/realtime/index.d.mts +1 -1
- package/resources/realtime/index.d.mts.map +1 -1
- package/resources/realtime/index.d.ts +1 -1
- package/resources/realtime/index.d.ts.map +1 -1
- package/resources/realtime/index.js.map +1 -1
- package/resources/realtime/index.mjs +1 -1
- package/resources/realtime/index.mjs.map +1 -1
- package/resources/realtime/realtime.d.mts +5 -4
- package/resources/realtime/realtime.d.mts.map +1 -1
- package/resources/realtime/realtime.d.ts +5 -4
- package/resources/realtime/realtime.d.ts.map +1 -1
- package/resources/realtime/realtime.js.map +1 -1
- package/resources/realtime/realtime.mjs.map +1 -1
- package/resources/responses/internal-base.d.mts.map +1 -1
- package/resources/responses/internal-base.d.ts.map +1 -1
- package/resources/responses/internal-base.js +2 -0
- package/resources/responses/internal-base.js.map +1 -1
- package/resources/responses/internal-base.mjs +2 -0
- package/resources/responses/internal-base.mjs.map +1 -1
- package/resources/responses/responses.d.mts +17 -20
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +17 -20
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/vector-stores/file-batches.d.mts.map +1 -1
- package/resources/vector-stores/file-batches.d.ts.map +1 -1
- package/resources/vector-stores/file-batches.js +4 -61
- package/resources/vector-stores/file-batches.js.map +1 -1
- package/resources/vector-stores/file-batches.mjs +4 -61
- package/resources/vector-stores/file-batches.mjs.map +1 -1
- package/resources/vector-stores/files.d.mts +1 -1
- package/resources/vector-stores/files.d.mts.map +1 -1
- package/resources/vector-stores/files.d.ts +1 -1
- package/resources/vector-stores/files.d.ts.map +1 -1
- package/resources/vector-stores/files.js +2 -35
- package/resources/vector-stores/files.js.map +1 -1
- package/resources/vector-stores/files.mjs +2 -35
- package/resources/vector-stores/files.mjs.map +1 -1
- package/resources/webhooks/webhooks.d.mts.map +1 -1
- package/resources/webhooks/webhooks.d.ts.map +1 -1
- package/resources/webhooks/webhooks.js +5 -43
- package/resources/webhooks/webhooks.js.map +1 -1
- package/resources/webhooks/webhooks.mjs +5 -43
- package/resources/webhooks/webhooks.mjs.map +1 -1
- package/src/auth/index.ts +6 -1
- package/src/auth/subject-token-providers.ts +196 -4
- package/src/auth/types.ts +24 -0
- package/src/auth/workload-identity-auth.ts +104 -7
- package/src/auth/x509-transport.ts +49 -0
- package/src/azure.ts +22 -1
- package/src/bedrock.ts +49 -5
- package/src/beta/realtime/internal-base.ts +15 -0
- package/src/beta/realtime/websocket.ts +148 -40
- package/src/beta/realtime/ws.ts +31 -13
- package/src/client.ts +536 -92
- package/src/core/EventEmitter.ts +91 -7
- package/src/core/streaming.ts +226 -30
- package/src/helpers/audio.ts +93 -22
- package/src/helpers/standard-schema.ts +50 -16
- package/src/helpers/zod-v3-strict-schema.ts +514 -0
- package/src/helpers/zod.ts +17 -4
- package/src/index.ts +1 -1
- package/src/internal/assistant-stream-delta.ts +33 -10
- package/src/internal/auth/x509-token-exchange.ts +310 -0
- package/src/internal/auth/x509-transport-capability.ts +219 -0
- package/src/internal/auth/x509-transport-registry.ts +118 -0
- package/src/internal/auth/x509-transport-state-browser.ts +36 -0
- package/src/internal/auth/x509-transport-state.cts +36 -0
- package/src/internal/auth/x509-workload-identity-auth.ts +958 -0
- package/src/internal/bedrock.ts +182 -5
- package/src/internal/data-residency.ts +44 -0
- package/src/internal/multipart-encoding.ts +53 -0
- package/src/internal/qs/utils.ts +375 -13
- package/src/internal/request-options.ts +52 -1
- package/src/internal/responses/canonical-output-text.ts +3 -3
- package/src/internal/responses/response-accumulator.ts +411 -24
- package/src/internal/uploads.ts +81 -26
- package/src/internal/utils/env.ts +9 -5
- package/src/internal/ws.ts +24 -3
- package/src/lib/AbstractChatCompletionRunner.ts +33 -6
- package/src/lib/AssistantStream.ts +262 -22
- package/src/lib/ChatCompletionStream.ts +1467 -103
- package/src/lib/EventEmitter.ts +91 -7
- package/src/lib/EventStream.ts +1483 -10
- package/src/lib/ResponsesParser.ts +4 -1
- package/src/lib/Util.ts +7 -5
- package/src/lib/assistant-run-polling.ts +27 -0
- package/src/lib/embeddings.ts +65 -0
- package/src/lib/file-processing.ts +36 -0
- package/src/lib/parser.ts +19 -4
- package/src/lib/polling.ts +144 -0
- package/src/lib/responses/ResponseStream.ts +22 -10
- package/src/lib/vector-store-polling.ts +46 -0
- package/src/lib/vector-store-upload.ts +53 -0
- package/src/lib/webhook-signature.ts +164 -0
- package/src/realtime/internal-base.ts +15 -0
- package/src/realtime/websocket.ts +130 -27
- package/src/realtime/ws.ts +15 -2
- package/src/resources/admin/organization/index.ts +2 -0
- package/src/resources/admin/organization/organization.ts +4 -0
- package/src/resources/admin/organization/projects/index.ts +1 -0
- package/src/resources/admin/organization/projects/projects.ts +37 -4
- package/src/resources/admin/organization/usage.ts +83 -0
- package/src/resources/beta/responses/internal-base.ts +2 -0
- package/src/resources/beta/responses/responses.ts +19 -22
- package/src/resources/beta/threads/runs/index.ts +1 -1
- package/src/resources/beta/threads/runs/runs.ts +2 -45
- package/src/resources/chat/completions/completions.ts +7 -0
- package/src/resources/embeddings.ts +2 -42
- package/src/resources/files.ts +2 -19
- package/src/resources/images.ts +12 -22
- package/src/resources/realtime/api.md +1 -0
- package/src/resources/realtime/calls.ts +46 -0
- package/src/resources/realtime/index.ts +7 -1
- package/src/resources/realtime/realtime.ts +5 -3
- package/src/resources/responses/internal-base.ts +2 -0
- package/src/resources/responses/responses.ts +19 -22
- package/src/resources/vector-stores/file-batches.ts +8 -77
- package/src/resources/vector-stores/files.ts +3 -43
- package/src/resources/webhooks/webhooks.ts +5 -61
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -3475,11 +3475,6 @@ export interface ResponseFunctionToolCallOutputItem {
|
|
|
3475
3475
|
*/
|
|
3476
3476
|
id: string;
|
|
3477
3477
|
|
|
3478
|
-
/**
|
|
3479
|
-
* The unique ID of the function tool call generated by the model.
|
|
3480
|
-
*/
|
|
3481
|
-
call_id: string;
|
|
3482
|
-
|
|
3483
3478
|
/**
|
|
3484
3479
|
* The output from the function call generated by your code. Can be a string or an
|
|
3485
3480
|
* list of output content.
|
|
@@ -3497,6 +3492,11 @@ export interface ResponseFunctionToolCallOutputItem {
|
|
|
3497
3492
|
*/
|
|
3498
3493
|
type: 'function_call_output';
|
|
3499
3494
|
|
|
3495
|
+
/**
|
|
3496
|
+
* The unique ID of the function tool call generated by the model.
|
|
3497
|
+
*/
|
|
3498
|
+
call_id?: string;
|
|
3499
|
+
|
|
3500
3500
|
/**
|
|
3501
3501
|
* The execution context that produced this tool call.
|
|
3502
3502
|
*/
|
|
@@ -4246,11 +4246,6 @@ export namespace ResponseInputItem {
|
|
|
4246
4246
|
* The output of a function tool call.
|
|
4247
4247
|
*/
|
|
4248
4248
|
export interface FunctionCallOutput {
|
|
4249
|
-
/**
|
|
4250
|
-
* The unique ID of the function tool call generated by the model.
|
|
4251
|
-
*/
|
|
4252
|
-
call_id: string;
|
|
4253
|
-
|
|
4254
4249
|
/**
|
|
4255
4250
|
* Text, image, or file output of the function tool call.
|
|
4256
4251
|
*/
|
|
@@ -4267,6 +4262,11 @@ export namespace ResponseInputItem {
|
|
|
4267
4262
|
*/
|
|
4268
4263
|
id?: string | null;
|
|
4269
4264
|
|
|
4265
|
+
/**
|
|
4266
|
+
* The unique ID of the function tool call generated by the model.
|
|
4267
|
+
*/
|
|
4268
|
+
call_id?: string | null;
|
|
4269
|
+
|
|
4270
4270
|
/**
|
|
4271
4271
|
* The execution context that produced this tool call.
|
|
4272
4272
|
*/
|
|
@@ -9336,18 +9336,13 @@ export namespace Tool {
|
|
|
9336
9336
|
action?: 'generate' | 'edit' | 'auto';
|
|
9337
9337
|
|
|
9338
9338
|
/**
|
|
9339
|
-
* Allows to set transparency for the background of the generated image(s).
|
|
9340
|
-
*
|
|
9341
|
-
*
|
|
9342
|
-
* When `auto` is used, the model will automatically determine the best background
|
|
9343
|
-
* for the image.
|
|
9344
|
-
*
|
|
9345
|
-
* `gpt-image-2` and `gpt-image-2-2026-04-21` do not support transparent
|
|
9346
|
-
* backgrounds. Requests with `background` set to `transparent` will return an
|
|
9347
|
-
* error for these models; use `opaque` or `auto` instead.
|
|
9339
|
+
* Allows to set transparency for the background of the generated image(s). Must be
|
|
9340
|
+
* one of `transparent`, `opaque`, or `auto` (default value). When `auto` is used,
|
|
9341
|
+
* the model will automatically determine the best background for the image.
|
|
9348
9342
|
*
|
|
9349
|
-
*
|
|
9350
|
-
*
|
|
9343
|
+
* Transparent backgrounds are available for supported GPT Image models. For
|
|
9344
|
+
* `gpt-image-2` and `gpt-image-2-2026-04-21`, this support is in preview. When
|
|
9345
|
+
* using `transparent`, set the output format to `png` or `webp`.
|
|
9351
9346
|
*/
|
|
9352
9347
|
background?: 'transparent' | 'opaque' | 'auto';
|
|
9353
9348
|
|
|
@@ -9366,7 +9361,9 @@ export namespace Tool {
|
|
|
9366
9361
|
input_image_mask?: ImageGeneration.InputImageMask;
|
|
9367
9362
|
|
|
9368
9363
|
/**
|
|
9369
|
-
* The image generation model to use.
|
|
9364
|
+
* The image generation model to use. One of `gpt-image-1`, `gpt-image-1-mini`,
|
|
9365
|
+
* `gpt-image-1.5`, `gpt-image-2`, `gpt-image-2-2026-04-21`, or
|
|
9366
|
+
* `chatgpt-image-latest`. Default: `gpt-image-1`.
|
|
9370
9367
|
*/
|
|
9371
9368
|
model?:
|
|
9372
9369
|
| (string & {})
|
|
@@ -8,9 +8,9 @@ import { APIPromise } from '../../core/api-promise';
|
|
|
8
8
|
import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
|
|
9
9
|
import { buildHeaders } from '../../internal/headers';
|
|
10
10
|
import { RequestOptions } from '../../internal/request-options';
|
|
11
|
-
import { sleep } from '../../internal/utils/sleep';
|
|
12
11
|
import { type Uploadable } from '../../uploads';
|
|
13
|
-
import {
|
|
12
|
+
import { pollVectorStoreFileBatch } from '../../lib/vector-store-polling';
|
|
13
|
+
import { uploadAndPollVectorStoreFileBatch } from '../../lib/vector-store-upload';
|
|
14
14
|
import { path } from '../../internal/utils/path';
|
|
15
15
|
|
|
16
16
|
export class FileBatches extends APIResource {
|
|
@@ -107,47 +107,7 @@ export class FileBatches extends APIResource {
|
|
|
107
107
|
batchID: string,
|
|
108
108
|
options?: RequestOptions & { pollIntervalMs?: number },
|
|
109
109
|
): Promise<VectorStoreFileBatch> {
|
|
110
|
-
|
|
111
|
-
options?.headers,
|
|
112
|
-
{
|
|
113
|
-
'X-Stainless-Poll-Helper': 'true',
|
|
114
|
-
'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,
|
|
115
|
-
},
|
|
116
|
-
]);
|
|
117
|
-
|
|
118
|
-
while (true) {
|
|
119
|
-
const { data: batch, response } = await this.retrieve(
|
|
120
|
-
batchID,
|
|
121
|
-
{ vector_store_id: vectorStoreID },
|
|
122
|
-
{
|
|
123
|
-
...options,
|
|
124
|
-
headers,
|
|
125
|
-
},
|
|
126
|
-
).withResponse();
|
|
127
|
-
|
|
128
|
-
switch (batch.status) {
|
|
129
|
-
case 'in_progress':
|
|
130
|
-
let sleepInterval = 5000;
|
|
131
|
-
|
|
132
|
-
if (options?.pollIntervalMs) {
|
|
133
|
-
sleepInterval = options.pollIntervalMs;
|
|
134
|
-
} else {
|
|
135
|
-
const headerInterval = response.headers.get('openai-poll-after-ms');
|
|
136
|
-
if (headerInterval) {
|
|
137
|
-
const headerIntervalMs = parseInt(headerInterval);
|
|
138
|
-
if (!isNaN(headerIntervalMs)) {
|
|
139
|
-
sleepInterval = headerIntervalMs;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
await sleep(sleepInterval);
|
|
144
|
-
break;
|
|
145
|
-
case 'failed':
|
|
146
|
-
case 'cancelled':
|
|
147
|
-
case 'completed':
|
|
148
|
-
return batch;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
110
|
+
return await pollVectorStoreFileBatch(this, vectorStoreID, batchID, options);
|
|
151
111
|
}
|
|
152
112
|
|
|
153
113
|
/**
|
|
@@ -160,41 +120,12 @@ export class FileBatches extends APIResource {
|
|
|
160
120
|
{ files, fileIds = [] }: { files: Uploadable[]; fileIds?: string[] },
|
|
161
121
|
options?: RequestOptions & { pollIntervalMs?: number; maxConcurrency?: number },
|
|
162
122
|
): Promise<VectorStoreFileBatch> {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const configuredConcurrency = options?.maxConcurrency ?? 5;
|
|
170
|
-
|
|
171
|
-
// We cap the number of workers at the number of files (so we don't start any unnecessary workers)
|
|
172
|
-
const concurrencyLimit = Math.min(configuredConcurrency, files.length);
|
|
173
|
-
|
|
174
|
-
const client = this._client;
|
|
175
|
-
const fileIterator = files.values();
|
|
176
|
-
const allFileIds: string[] = [...fileIds];
|
|
177
|
-
|
|
178
|
-
// This code is based on this design. The libraries don't accommodate our environment limits.
|
|
179
|
-
// https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all
|
|
180
|
-
async function processFiles(iterator: IterableIterator<Uploadable>) {
|
|
181
|
-
for (let item of iterator) {
|
|
182
|
-
const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);
|
|
183
|
-
allFileIds.push(fileObj.id);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// Start workers to process results
|
|
188
|
-
const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles);
|
|
189
|
-
|
|
190
|
-
// Wait for all processing to complete.
|
|
191
|
-
await allSettledWithThrow(workers);
|
|
192
|
-
|
|
193
|
-
return await this.createAndPoll(
|
|
123
|
+
return await uploadAndPollVectorStoreFileBatch(
|
|
124
|
+
this,
|
|
125
|
+
this._client,
|
|
194
126
|
vectorStoreId,
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
},
|
|
127
|
+
files,
|
|
128
|
+
fileIds,
|
|
198
129
|
options,
|
|
199
130
|
);
|
|
200
131
|
}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
import { APIResource } from '../../core/resource';
|
|
4
4
|
import * as VectorStoresAPI from './vector-stores';
|
|
5
5
|
import { APIPromise } from '../../core/api-promise';
|
|
6
|
-
import { CursorPage, type CursorPageParams,
|
|
6
|
+
import { CursorPage, type CursorPageParams, Page, PagePromise } from '../../core/pagination';
|
|
7
7
|
import { buildHeaders } from '../../internal/headers';
|
|
8
8
|
import { RequestOptions } from '../../internal/request-options';
|
|
9
|
-
import { sleep } from '../../internal/utils';
|
|
10
9
|
import { Uploadable } from '../../uploads';
|
|
10
|
+
import { pollVectorStoreFile } from '../../lib/vector-store-polling';
|
|
11
11
|
import { path } from '../../internal/utils/path';
|
|
12
12
|
|
|
13
13
|
export class Files extends APIResource {
|
|
@@ -115,47 +115,7 @@ export class Files extends APIResource {
|
|
|
115
115
|
fileID: string,
|
|
116
116
|
options?: RequestOptions & { pollIntervalMs?: number },
|
|
117
117
|
): Promise<VectorStoreFile> {
|
|
118
|
-
|
|
119
|
-
options?.headers,
|
|
120
|
-
{
|
|
121
|
-
'X-Stainless-Poll-Helper': 'true',
|
|
122
|
-
'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,
|
|
123
|
-
},
|
|
124
|
-
]);
|
|
125
|
-
|
|
126
|
-
while (true) {
|
|
127
|
-
const fileResponse = await this.retrieve(
|
|
128
|
-
fileID,
|
|
129
|
-
{
|
|
130
|
-
vector_store_id: vectorStoreID,
|
|
131
|
-
},
|
|
132
|
-
{ ...options, headers },
|
|
133
|
-
).withResponse();
|
|
134
|
-
|
|
135
|
-
const file = fileResponse.data;
|
|
136
|
-
|
|
137
|
-
switch (file.status) {
|
|
138
|
-
case 'in_progress':
|
|
139
|
-
let sleepInterval = 5000;
|
|
140
|
-
|
|
141
|
-
if (options?.pollIntervalMs) {
|
|
142
|
-
sleepInterval = options.pollIntervalMs;
|
|
143
|
-
} else {
|
|
144
|
-
const headerInterval = fileResponse.response.headers.get('openai-poll-after-ms');
|
|
145
|
-
if (headerInterval) {
|
|
146
|
-
const headerIntervalMs = parseInt(headerInterval);
|
|
147
|
-
if (!isNaN(headerIntervalMs)) {
|
|
148
|
-
sleepInterval = headerIntervalMs;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
await sleep(sleepInterval);
|
|
153
|
-
break;
|
|
154
|
-
case 'failed':
|
|
155
|
-
case 'completed':
|
|
156
|
-
return file;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
118
|
+
return await pollVectorStoreFile(this, vectorStoreID, fileID, options);
|
|
159
119
|
}
|
|
160
120
|
/**
|
|
161
121
|
* Upload a file to the `files` API and then attach it to the given vector store.
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Castiron. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
import { InvalidWebhookSignatureError } from '../../error';
|
|
4
3
|
import { APIResource } from '../../core/resource';
|
|
5
4
|
import { buildHeaders, HeadersLike } from '../../internal/headers';
|
|
6
|
-
import {
|
|
7
|
-
import { encodeUTF8 } from '../../internal/utils/bytes';
|
|
5
|
+
import { verifyWebhookSignature, webhookSignatureRequiresSigning } from '../../lib/webhook-signature';
|
|
8
6
|
|
|
9
7
|
export class Webhooks extends APIResource {
|
|
10
8
|
/**
|
|
@@ -39,7 +37,7 @@ export class Webhooks extends APIResource {
|
|
|
39
37
|
): Promise<void> {
|
|
40
38
|
if (
|
|
41
39
|
typeof crypto === 'undefined' ||
|
|
42
|
-
typeof crypto.subtle
|
|
40
|
+
typeof crypto.subtle?.importKey !== 'function' ||
|
|
43
41
|
typeof crypto.subtle.verify !== 'function'
|
|
44
42
|
) {
|
|
45
43
|
throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');
|
|
@@ -52,65 +50,11 @@ export class Webhooks extends APIResource {
|
|
|
52
50
|
const timestamp = this.#getRequiredHeader(headersObj, 'webhook-timestamp');
|
|
53
51
|
const webhookId = this.#getRequiredHeader(headersObj, 'webhook-id');
|
|
54
52
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (isNaN(timestampSeconds)) {
|
|
58
|
-
throw new InvalidWebhookSignatureError('Invalid webhook timestamp format');
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const nowSeconds = Math.floor(Date.now() / 1000);
|
|
62
|
-
|
|
63
|
-
if (nowSeconds - timestampSeconds > tolerance) {
|
|
64
|
-
throw new InvalidWebhookSignatureError('Webhook timestamp is too old');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (timestampSeconds > nowSeconds + tolerance) {
|
|
68
|
-
throw new InvalidWebhookSignatureError('Webhook timestamp is too new');
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Extract signatures from v1,<base64> format
|
|
72
|
-
// The signature header can have multiple values, separated by spaces.
|
|
73
|
-
// Each value is in the format v1,<base64>. We should accept if any match.
|
|
74
|
-
const signatures = signatureHeader
|
|
75
|
-
.split(' ')
|
|
76
|
-
.map((part) => (part.startsWith('v1,') ? part.substring(3) : part));
|
|
77
|
-
|
|
78
|
-
// Decode the secret if it starts with whsec_
|
|
79
|
-
const decodedSecret = Uint8Array.from(
|
|
80
|
-
secret.startsWith('whsec_') ? fromBase64(secret.slice('whsec_'.length)) : encodeUTF8(secret),
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
// Create the signed payload: {webhook_id}.{timestamp}.{payload}
|
|
84
|
-
const signedPayload = webhookId ? `${webhookId}.${timestamp}.${payload}` : `${timestamp}.${payload}`;
|
|
85
|
-
const signedPayloadBytes = Uint8Array.from(encodeUTF8(signedPayload));
|
|
86
|
-
|
|
87
|
-
// Import the secret as a cryptographic key for HMAC
|
|
88
|
-
const key = await crypto.subtle.importKey(
|
|
89
|
-
'raw',
|
|
90
|
-
decodedSecret,
|
|
91
|
-
{ name: 'HMAC', hash: 'SHA-256' },
|
|
92
|
-
false,
|
|
93
|
-
['verify'],
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
// Check if any signature matches using timing-safe WebCrypto verify
|
|
97
|
-
for (const signature of signatures) {
|
|
98
|
-
try {
|
|
99
|
-
const signatureBytes = Uint8Array.from(fromBase64(signature));
|
|
100
|
-
const isValid = await crypto.subtle.verify('HMAC', key, signatureBytes, signedPayloadBytes);
|
|
101
|
-
|
|
102
|
-
if (isValid) {
|
|
103
|
-
return; // Valid signature found
|
|
104
|
-
}
|
|
105
|
-
} catch {
|
|
106
|
-
// Invalid base64 or signature format, continue to next signature
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
53
|
+
if (webhookSignatureRequiresSigning(signatureHeader) && typeof crypto.subtle.sign !== 'function') {
|
|
54
|
+
throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');
|
|
109
55
|
}
|
|
110
56
|
|
|
111
|
-
|
|
112
|
-
'The given webhook signature does not match the expected signature',
|
|
113
|
-
);
|
|
57
|
+
return await verifyWebhookSignature(payload, signatureHeader, timestamp, webhookId, secret, tolerance);
|
|
114
58
|
}
|
|
115
59
|
|
|
116
60
|
#validateSecret(secret: string | null | undefined): asserts secret is string {
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** Version of the installed OpenAI SDK package. */
|
|
2
|
-
export const VERSION = '7.
|
|
2
|
+
export const VERSION = '7.7.0'; // x-release-please-version
|
package/version.d.mts
CHANGED
package/version.d.ts
CHANGED
package/version.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
4
|
/** Version of the installed OpenAI SDK package. */
|
|
5
|
-
exports.VERSION = '7.
|
|
5
|
+
exports.VERSION = '7.7.0'; // x-release-please-version
|
|
6
6
|
//# sourceMappingURL=version.js.map
|
package/version.mjs
CHANGED