@lorikeetai/node-sdk 1.8.1 → 2.0.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 +38 -787
- package/README.md +114 -44
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/bin/cli +53 -0
- package/bin/migration-config.json +50 -0
- package/client.d.mts +197 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +197 -0
- package/client.d.ts.map +1 -0
- package/client.js +504 -0
- package/client.js.map +1 -0
- package/client.mjs +500 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +1 -46
- package/error.d.ts.map +1 -1
- package/error.js +3 -110
- package/error.js.map +1 -1
- package/error.mjs +1 -96
- package/error.mjs.map +1 -1
- package/index.d.mts +7 -131
- package/index.d.mts.map +1 -0
- package/index.d.ts +6 -130
- package/index.d.ts.map +1 -1
- package/index.js +14 -142
- package/index.js.map +1 -1
- package/index.mjs +6 -114
- package/index.mjs.map +1 -1
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +40 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +37 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +75 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +75 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +92 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +89 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +86 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +80 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/lib/generate-signature.d.mts +7 -0
- package/lib/generate-signature.d.mts.map +1 -0
- package/lib/generate-signature.d.ts +1 -1
- package/lib/generate-signature.d.ts.map +1 -1
- package/lib/generate-signature.js +3 -3
- package/lib/generate-signature.js.map +1 -1
- package/lib/generate-signature.mjs +1 -1
- package/lib/generate-signature.mjs.map +1 -1
- package/lib/poll-until.d.mts +20 -0
- package/lib/poll-until.d.mts.map +1 -0
- package/lib/poll-until.d.ts.map +1 -1
- package/lib/promise.d.mts +55 -0
- package/lib/promise.d.mts.map +1 -0
- package/package.json +125 -74
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +1 -5
- package/resource.d.ts.map +1 -1
- package/resource.js +3 -8
- package/resource.js.map +1 -1
- package/resource.mjs +1 -6
- package/resource.mjs.map +1 -1
- package/resources/api-keys.d.mts +130 -0
- package/resources/api-keys.d.mts.map +1 -0
- package/resources/api-keys.d.ts +7 -6
- package/resources/api-keys.d.ts.map +1 -1
- package/resources/api-keys.js +6 -4
- package/resources/api-keys.js.map +1 -1
- package/resources/api-keys.mjs +6 -4
- package/resources/api-keys.mjs.map +1 -1
- package/resources/conversation/chat.d.mts +312 -0
- package/resources/conversation/chat.d.mts.map +1 -0
- package/resources/conversation/chat.d.ts +45 -77
- package/resources/conversation/chat.d.ts.map +1 -1
- package/resources/conversation/chat.js +14 -48
- package/resources/conversation/chat.js.map +1 -1
- package/resources/conversation/chat.mjs +14 -48
- package/resources/conversation/chat.mjs.map +1 -1
- package/resources/conversation/conversation.d.mts +77 -0
- package/resources/conversation/conversation.d.mts.map +1 -0
- package/resources/conversation/conversation.d.ts +1 -1
- package/resources/conversation/conversation.d.ts.map +1 -1
- package/resources/conversation/conversation.js +5 -27
- package/resources/conversation/conversation.js.map +1 -1
- package/resources/conversation/conversation.mjs +1 -1
- package/resources/conversation/email.d.mts +257 -0
- package/resources/conversation/email.d.mts.map +1 -0
- package/resources/conversation/email.d.ts +10 -8
- package/resources/conversation/email.d.ts.map +1 -1
- package/resources/conversation/email.js +6 -6
- package/resources/conversation/email.js.map +1 -1
- package/resources/conversation/email.mjs +6 -6
- package/resources/conversation/email.mjs.map +1 -1
- package/resources/conversation/index.d.mts +5 -0
- package/resources/conversation/index.d.mts.map +1 -0
- package/resources/conversation/index.d.ts +1 -1
- package/resources/conversation/index.d.ts.map +1 -1
- package/resources/conversation/index.js.map +1 -1
- package/resources/conversation/index.mjs.map +1 -1
- package/resources/conversation/voice.d.mts +45 -0
- package/resources/conversation/voice.d.mts.map +1 -0
- package/resources/conversation/voice.d.ts +4 -3
- package/resources/conversation/voice.d.ts.map +1 -1
- package/resources/conversation/voice.js +3 -2
- package/resources/conversation/voice.js.map +1 -1
- package/resources/conversation/voice.mjs +3 -2
- package/resources/conversation/voice.mjs.map +1 -1
- package/resources/conversation.d.mts +2 -0
- package/resources/conversation.d.mts.map +1 -0
- package/resources/conversation.d.ts.map +1 -1
- package/resources/conversation.js +2 -15
- package/resources/conversation.js.map +1 -1
- package/resources/customer/customer.d.mts +333 -0
- package/resources/customer/customer.d.mts.map +1 -0
- package/resources/customer/customer.d.ts +7 -7
- package/resources/customer/customer.d.ts.map +1 -1
- package/resources/customer/customer.js +12 -31
- package/resources/customer/customer.js.map +1 -1
- package/resources/customer/customer.mjs +9 -6
- package/resources/customer/customer.mjs.map +1 -1
- package/resources/customer/index.d.mts +4 -0
- package/resources/customer/index.d.mts.map +1 -0
- package/resources/customer/index.d.ts.map +1 -1
- package/resources/customer/profile.d.mts +30 -0
- package/resources/customer/profile.d.mts.map +1 -0
- package/resources/customer/profile.d.ts +4 -3
- package/resources/customer/profile.d.ts.map +1 -1
- package/resources/customer/profile.js +3 -2
- package/resources/customer/profile.js.map +1 -1
- package/resources/customer/profile.mjs +3 -2
- package/resources/customer/profile.mjs.map +1 -1
- package/resources/customer/remote.d.mts +164 -0
- package/resources/customer/remote.d.mts.map +1 -0
- package/resources/customer/remote.d.ts +5 -4
- package/resources/customer/remote.d.ts.map +1 -1
- package/resources/customer/remote.js +6 -5
- package/resources/customer/remote.js.map +1 -1
- package/resources/customer/remote.mjs +6 -5
- package/resources/customer/remote.mjs.map +1 -1
- package/resources/customer.d.mts +2 -0
- package/resources/customer.d.mts.map +1 -0
- package/resources/customer.d.ts.map +1 -1
- package/resources/customer.js +2 -15
- package/resources/customer.js.map +1 -1
- package/resources/index.d.mts +5 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +1 -1
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs.map +1 -1
- package/resources/ingest.d.mts +27 -0
- package/resources/ingest.d.mts.map +1 -0
- package/resources/ingest.d.ts +12 -6
- package/resources/ingest.d.ts.map +1 -1
- package/resources/ingest.js +11 -8
- package/resources/ingest.js.map +1 -1
- package/resources/ingest.mjs +11 -8
- package/resources/ingest.mjs.map +1 -1
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts.map +1 -1
- package/resources.js +2 -15
- package/resources.js.map +1 -1
- package/src/api-promise.ts +2 -0
- package/src/client.ts +835 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -130
- package/src/index.ts +6 -275
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +56 -0
- package/src/internal/request-options.ts +91 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +156 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +127 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/generate-signature.ts +2 -2
- package/src/resource.ts +2 -11
- package/src/resources/api-keys.ts +12 -9
- package/src/resources/conversation/chat.ts +60 -95
- package/src/resources/conversation/conversation.ts +1 -1
- package/src/resources/conversation/email.ts +13 -12
- package/src/resources/conversation/index.ts +5 -0
- package/src/resources/conversation/voice.ts +6 -4
- package/src/resources/customer/customer.ts +12 -16
- package/src/resources/customer/profile.ts +6 -8
- package/src/resources/customer/remote.ts +10 -8
- package/src/resources/index.ts +1 -1
- package/src/resources/ingest.ts +23 -17
- package/src/tsconfig.json +2 -2
- package/src/uploads.ts +2 -256
- package/src/version.ts +1 -1
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +1 -74
- package/uploads.d.ts.map +1 -1
- package/uploads.js +3 -167
- package/uploads.js.map +1 -1
- package/uploads.mjs +1 -156
- package/uploads.mjs.map +1 -1
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/_shims/MultipartBody.d.ts +0 -9
- package/_shims/MultipartBody.d.ts.map +0 -1
- package/_shims/MultipartBody.js +0 -16
- package/_shims/MultipartBody.js.map +0 -1
- package/_shims/MultipartBody.mjs +0 -12
- package/_shims/MultipartBody.mjs.map +0 -1
- package/_shims/README.md +0 -46
- package/_shims/auto/runtime-bun.d.ts +0 -5
- package/_shims/auto/runtime-bun.d.ts.map +0 -1
- package/_shims/auto/runtime-bun.js +0 -21
- package/_shims/auto/runtime-bun.js.map +0 -1
- package/_shims/auto/runtime-bun.mjs +0 -2
- package/_shims/auto/runtime-bun.mjs.map +0 -1
- package/_shims/auto/runtime-node.d.ts +0 -5
- package/_shims/auto/runtime-node.d.ts.map +0 -1
- package/_shims/auto/runtime-node.js +0 -21
- package/_shims/auto/runtime-node.js.map +0 -1
- package/_shims/auto/runtime-node.mjs +0 -2
- package/_shims/auto/runtime-node.mjs.map +0 -1
- package/_shims/auto/runtime.d.ts +0 -5
- package/_shims/auto/runtime.d.ts.map +0 -1
- package/_shims/auto/runtime.js +0 -21
- package/_shims/auto/runtime.js.map +0 -1
- package/_shims/auto/runtime.mjs +0 -2
- package/_shims/auto/runtime.mjs.map +0 -1
- package/_shims/auto/types-node.d.ts +0 -5
- package/_shims/auto/types-node.d.ts.map +0 -1
- package/_shims/auto/types-node.js +0 -21
- package/_shims/auto/types-node.js.map +0 -1
- package/_shims/auto/types-node.mjs +0 -2
- package/_shims/auto/types-node.mjs.map +0 -1
- package/_shims/auto/types.d.ts +0 -101
- package/_shims/auto/types.js +0 -3
- package/_shims/auto/types.mjs +0 -3
- package/_shims/bun-runtime.d.ts +0 -6
- package/_shims/bun-runtime.d.ts.map +0 -1
- package/_shims/bun-runtime.js +0 -13
- package/_shims/bun-runtime.js.map +0 -1
- package/_shims/bun-runtime.mjs +0 -10
- package/_shims/bun-runtime.mjs.map +0 -1
- package/_shims/index.d.ts +0 -83
- package/_shims/index.js +0 -17
- package/_shims/index.mjs +0 -11
- package/_shims/manual-types.d.ts +0 -12
- package/_shims/manual-types.js +0 -3
- package/_shims/manual-types.mjs +0 -3
- package/_shims/node-runtime.d.ts +0 -3
- package/_shims/node-runtime.d.ts.map +0 -1
- package/_shims/node-runtime.js +0 -88
- package/_shims/node-runtime.js.map +0 -1
- package/_shims/node-runtime.mjs +0 -56
- package/_shims/node-runtime.mjs.map +0 -1
- package/_shims/node-types.d.ts +0 -42
- package/_shims/node-types.js +0 -3
- package/_shims/node-types.mjs +0 -3
- package/_shims/registry.d.ts +0 -37
- package/_shims/registry.d.ts.map +0 -1
- package/_shims/registry.js +0 -41
- package/_shims/registry.js.map +0 -1
- package/_shims/registry.mjs +0 -37
- package/_shims/registry.mjs.map +0 -1
- package/_shims/web-runtime.d.ts +0 -5
- package/_shims/web-runtime.d.ts.map +0 -1
- package/_shims/web-runtime.js +0 -77
- package/_shims/web-runtime.js.map +0 -1
- package/_shims/web-runtime.mjs +0 -71
- package/_shims/web-runtime.mjs.map +0 -1
- package/_shims/web-types.d.ts +0 -83
- package/_shims/web-types.js +0 -3
- package/_shims/web-types.mjs +0 -3
- package/core.d.ts +0 -253
- package/core.d.ts.map +0 -1
- package/core.js +0 -929
- package/core.js.map +0 -1
- package/core.mjs +0 -897
- package/core.mjs.map +0 -1
- package/internal/qs/formats.d.ts +0 -6
- package/internal/qs/formats.d.ts.map +0 -1
- package/internal/qs/formats.js +0 -11
- package/internal/qs/formats.js.map +0 -1
- package/internal/qs/formats.mjs +0 -8
- package/internal/qs/formats.mjs.map +0 -1
- package/internal/qs/index.d.ts +0 -10
- package/internal/qs/index.d.ts.map +0 -1
- package/internal/qs/index.js +0 -14
- package/internal/qs/index.js.map +0 -1
- package/internal/qs/index.mjs +0 -10
- package/internal/qs/index.mjs.map +0 -1
- package/internal/qs/stringify.d.ts +0 -3
- package/internal/qs/stringify.d.ts.map +0 -1
- package/internal/qs/stringify.js +0 -279
- package/internal/qs/stringify.js.map +0 -1
- package/internal/qs/stringify.mjs +0 -276
- package/internal/qs/stringify.mjs.map +0 -1
- package/internal/qs/types.d.ts +0 -57
- package/internal/qs/types.d.ts.map +0 -1
- package/internal/qs/types.js +0 -3
- package/internal/qs/types.js.map +0 -1
- package/internal/qs/types.mjs +0 -2
- package/internal/qs/types.mjs.map +0 -1
- package/internal/qs/utils.d.ts +0 -14
- package/internal/qs/utils.d.ts.map +0 -1
- package/internal/qs/utils.js +0 -229
- package/internal/qs/utils.js.map +0 -1
- package/internal/qs/utils.mjs +0 -217
- package/internal/qs/utils.mjs.map +0 -1
- package/resources/ticket.d.ts +0 -14
- package/resources/ticket.d.ts.map +0 -1
- package/resources/ticket.js +0 -16
- package/resources/ticket.js.map +0 -1
- package/resources/ticket.mjs +0 -12
- package/resources/ticket.mjs.map +0 -1
- package/shims/node.d.ts +0 -26
- package/shims/node.d.ts.map +0 -1
- package/shims/node.js +0 -6
- package/shims/node.js.map +0 -1
- package/shims/node.mjs +0 -4
- package/shims/node.mjs.map +0 -1
- package/shims/web.d.ts +0 -26
- package/shims/web.d.ts.map +0 -1
- package/shims/web.js +0 -6
- package/shims/web.js.map +0 -1
- package/shims/web.mjs +0 -4
- package/shims/web.mjs.map +0 -1
- package/src/_shims/MultipartBody.ts +0 -9
- package/src/_shims/README.md +0 -46
- package/src/_shims/auto/runtime-bun.ts +0 -4
- package/src/_shims/auto/runtime-node.ts +0 -4
- package/src/_shims/auto/runtime.ts +0 -4
- package/src/_shims/auto/types-node.ts +0 -4
- package/src/_shims/auto/types.d.ts +0 -101
- package/src/_shims/auto/types.js +0 -3
- package/src/_shims/auto/types.mjs +0 -3
- package/src/_shims/bun-runtime.ts +0 -14
- package/src/_shims/index.d.ts +0 -83
- package/src/_shims/index.js +0 -17
- package/src/_shims/index.mjs +0 -11
- package/src/_shims/manual-types.d.ts +0 -12
- package/src/_shims/manual-types.js +0 -3
- package/src/_shims/manual-types.mjs +0 -3
- package/src/_shims/node-runtime.ts +0 -81
- package/src/_shims/node-types.d.ts +0 -42
- package/src/_shims/node-types.js +0 -3
- package/src/_shims/node-types.mjs +0 -3
- package/src/_shims/registry.ts +0 -67
- package/src/_shims/web-runtime.ts +0 -103
- package/src/_shims/web-types.d.ts +0 -83
- package/src/_shims/web-types.js +0 -3
- package/src/_shims/web-types.mjs +0 -3
- package/src/core.ts +0 -1242
- package/src/internal/qs/LICENSE.md +0 -13
- package/src/internal/qs/README.md +0 -3
- package/src/internal/qs/formats.ts +0 -9
- package/src/internal/qs/index.ts +0 -13
- package/src/internal/qs/stringify.ts +0 -388
- package/src/internal/qs/types.ts +0 -71
- package/src/internal/qs/utils.ts +0 -265
- package/src/resources/ticket.ts +0 -30
- package/src/shims/node.ts +0 -50
- package/src/shims/web.ts +0 -50
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { hasOwn } from './values';
|
|
4
|
+
import { type Lorikeet } from '../../client';
|
|
5
|
+
import { RequestOptions } from '../request-options';
|
|
6
|
+
|
|
7
|
+
type LogFn = (message: string, ...rest: unknown[]) => void;
|
|
8
|
+
export type Logger = {
|
|
9
|
+
error: LogFn;
|
|
10
|
+
warn: LogFn;
|
|
11
|
+
info: LogFn;
|
|
12
|
+
debug: LogFn;
|
|
13
|
+
};
|
|
14
|
+
export type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug';
|
|
15
|
+
|
|
16
|
+
const levelNumbers = {
|
|
17
|
+
off: 0,
|
|
18
|
+
error: 200,
|
|
19
|
+
warn: 300,
|
|
20
|
+
info: 400,
|
|
21
|
+
debug: 500,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const parseLogLevel = (
|
|
25
|
+
maybeLevel: string | undefined,
|
|
26
|
+
sourceName: string,
|
|
27
|
+
client: Lorikeet,
|
|
28
|
+
): LogLevel | undefined => {
|
|
29
|
+
if (!maybeLevel) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (hasOwn(levelNumbers, maybeLevel)) {
|
|
33
|
+
return maybeLevel;
|
|
34
|
+
}
|
|
35
|
+
loggerFor(client).warn(
|
|
36
|
+
`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(
|
|
37
|
+
Object.keys(levelNumbers),
|
|
38
|
+
)}`,
|
|
39
|
+
);
|
|
40
|
+
return undefined;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
function noop() {}
|
|
44
|
+
|
|
45
|
+
function makeLogFn(fnLevel: keyof Logger, logger: Logger | undefined, logLevel: LogLevel) {
|
|
46
|
+
if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {
|
|
47
|
+
return noop;
|
|
48
|
+
} else {
|
|
49
|
+
// Don't wrap logger functions, we want the stacktrace intact!
|
|
50
|
+
return logger[fnLevel].bind(logger);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const noopLogger = {
|
|
55
|
+
error: noop,
|
|
56
|
+
warn: noop,
|
|
57
|
+
info: noop,
|
|
58
|
+
debug: noop,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
let cachedLoggers = /* @__PURE__ */ new WeakMap<Logger, [LogLevel, Logger]>();
|
|
62
|
+
|
|
63
|
+
export function loggerFor(client: Lorikeet): Logger {
|
|
64
|
+
const logger = client.logger;
|
|
65
|
+
const logLevel = client.logLevel ?? 'off';
|
|
66
|
+
if (!logger) {
|
|
67
|
+
return noopLogger;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const cachedLogger = cachedLoggers.get(logger);
|
|
71
|
+
if (cachedLogger && cachedLogger[0] === logLevel) {
|
|
72
|
+
return cachedLogger[1];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const levelLogger = {
|
|
76
|
+
error: makeLogFn('error', logger, logLevel),
|
|
77
|
+
warn: makeLogFn('warn', logger, logLevel),
|
|
78
|
+
info: makeLogFn('info', logger, logLevel),
|
|
79
|
+
debug: makeLogFn('debug', logger, logLevel),
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
cachedLoggers.set(logger, [logLevel, levelLogger]);
|
|
83
|
+
|
|
84
|
+
return levelLogger;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export const formatRequestDetails = (details: {
|
|
88
|
+
options?: RequestOptions | undefined;
|
|
89
|
+
headers?: Headers | Record<string, string> | undefined;
|
|
90
|
+
retryOfRequestLogID?: string | undefined;
|
|
91
|
+
retryOf?: string | undefined;
|
|
92
|
+
url?: string | undefined;
|
|
93
|
+
status?: number | undefined;
|
|
94
|
+
method?: string | undefined;
|
|
95
|
+
durationMs?: number | undefined;
|
|
96
|
+
message?: unknown;
|
|
97
|
+
body?: unknown;
|
|
98
|
+
}) => {
|
|
99
|
+
if (details.options) {
|
|
100
|
+
details.options = { ...details.options };
|
|
101
|
+
delete details.options['headers']; // redundant + leaks internals
|
|
102
|
+
}
|
|
103
|
+
if (details.headers) {
|
|
104
|
+
details.headers = Object.fromEntries(
|
|
105
|
+
(details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(
|
|
106
|
+
([name, value]) => [
|
|
107
|
+
name,
|
|
108
|
+
(
|
|
109
|
+
name.toLowerCase() === 'authorization' ||
|
|
110
|
+
name.toLowerCase() === 'x-lorikeet-signature' ||
|
|
111
|
+
name.toLowerCase() === 'cookie' ||
|
|
112
|
+
name.toLowerCase() === 'set-cookie'
|
|
113
|
+
) ?
|
|
114
|
+
'***'
|
|
115
|
+
: value,
|
|
116
|
+
],
|
|
117
|
+
),
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
if ('retryOfRequestLogID' in details) {
|
|
121
|
+
if (details.retryOfRequestLogID) {
|
|
122
|
+
details.retryOf = details.retryOfRequestLogID;
|
|
123
|
+
}
|
|
124
|
+
delete details.retryOfRequestLogID;
|
|
125
|
+
}
|
|
126
|
+
return details;
|
|
127
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { LorikeetError } from '../../core/error';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Percent-encode everything that isn't safe to have in a path without encoding safe chars.
|
|
5
|
+
*
|
|
6
|
+
* Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:
|
|
7
|
+
* > unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
|
8
|
+
* > sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
|
|
9
|
+
* > pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
|
10
|
+
*/
|
|
11
|
+
export function encodeURIPath(str: string) {
|
|
12
|
+
return str.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));
|
|
16
|
+
|
|
17
|
+
export const createPathTagFunction = (pathEncoder = encodeURIPath) =>
|
|
18
|
+
function path(statics: readonly string[], ...params: readonly unknown[]): string {
|
|
19
|
+
// If there are no params, no processing is needed.
|
|
20
|
+
if (statics.length === 1) return statics[0]!;
|
|
21
|
+
|
|
22
|
+
let postPath = false;
|
|
23
|
+
const invalidSegments = [];
|
|
24
|
+
const path = statics.reduce((previousValue, currentValue, index) => {
|
|
25
|
+
if (/[?#]/.test(currentValue)) {
|
|
26
|
+
postPath = true;
|
|
27
|
+
}
|
|
28
|
+
const value = params[index];
|
|
29
|
+
let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);
|
|
30
|
+
if (
|
|
31
|
+
index !== params.length &&
|
|
32
|
+
(value == null ||
|
|
33
|
+
(typeof value === 'object' &&
|
|
34
|
+
// handle values from other realms
|
|
35
|
+
value.toString ===
|
|
36
|
+
Object.getPrototypeOf(Object.getPrototypeOf((value as any).hasOwnProperty ?? EMPTY) ?? EMPTY)
|
|
37
|
+
?.toString))
|
|
38
|
+
) {
|
|
39
|
+
encoded = value + '';
|
|
40
|
+
invalidSegments.push({
|
|
41
|
+
start: previousValue.length + currentValue.length,
|
|
42
|
+
length: encoded.length,
|
|
43
|
+
error: `Value of type ${Object.prototype.toString
|
|
44
|
+
.call(value)
|
|
45
|
+
.slice(8, -1)} is not a valid path parameter`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return previousValue + currentValue + (index === params.length ? '' : encoded);
|
|
49
|
+
}, '');
|
|
50
|
+
|
|
51
|
+
const pathOnly = path.split(/[?#]/, 1)[0]!;
|
|
52
|
+
const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
|
|
53
|
+
let match;
|
|
54
|
+
|
|
55
|
+
// Find all invalid segments
|
|
56
|
+
while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {
|
|
57
|
+
invalidSegments.push({
|
|
58
|
+
start: match.index,
|
|
59
|
+
length: match[0].length,
|
|
60
|
+
error: `Value "${match[0]}" can\'t be safely passed as a path parameter`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
invalidSegments.sort((a, b) => a.start - b.start);
|
|
65
|
+
|
|
66
|
+
if (invalidSegments.length > 0) {
|
|
67
|
+
let lastEnd = 0;
|
|
68
|
+
const underline = invalidSegments.reduce((acc, segment) => {
|
|
69
|
+
const spaces = ' '.repeat(segment.start - lastEnd);
|
|
70
|
+
const arrows = '^'.repeat(segment.length);
|
|
71
|
+
lastEnd = segment.start + segment.length;
|
|
72
|
+
return acc + spaces + arrows;
|
|
73
|
+
}, '');
|
|
74
|
+
|
|
75
|
+
throw new LorikeetError(
|
|
76
|
+
`Path parameters result in path with invalid segments:\n${invalidSegments
|
|
77
|
+
.map((e) => e.error)
|
|
78
|
+
.join('\n')}\n${path}\n${underline}`,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return path;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.
|
|
87
|
+
*/
|
|
88
|
+
export const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* https://stackoverflow.com/a/2117523
|
|
5
|
+
*/
|
|
6
|
+
export let uuid4 = function () {
|
|
7
|
+
const { crypto } = globalThis as any;
|
|
8
|
+
if (crypto?.randomUUID) {
|
|
9
|
+
uuid4 = crypto.randomUUID.bind(crypto);
|
|
10
|
+
return crypto.randomUUID();
|
|
11
|
+
}
|
|
12
|
+
const u8 = new Uint8Array(1);
|
|
13
|
+
const randomByte = crypto ? () => crypto.getRandomValues(u8)[0]! : () => (Math.random() * 0xff) & 0xff;
|
|
14
|
+
return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) =>
|
|
15
|
+
(+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16),
|
|
16
|
+
);
|
|
17
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { LorikeetError } from '../../core/error';
|
|
4
|
+
|
|
5
|
+
// https://url.spec.whatwg.org/#url-scheme-string
|
|
6
|
+
const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
|
|
7
|
+
|
|
8
|
+
export const isAbsoluteURL = (url: string): boolean => {
|
|
9
|
+
return startsWithSchemeRegexp.test(url);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));
|
|
13
|
+
export let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];
|
|
14
|
+
|
|
15
|
+
/** Returns an object if the given value isn't an object, otherwise returns as-is */
|
|
16
|
+
export function maybeObj(x: unknown): object {
|
|
17
|
+
if (typeof x !== 'object') {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return x ?? {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// https://stackoverflow.com/a/34491287
|
|
25
|
+
export function isEmptyObj(obj: Object | null | undefined): boolean {
|
|
26
|
+
if (!obj) return true;
|
|
27
|
+
for (const _k in obj) return false;
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// https://eslint.org/docs/latest/rules/no-prototype-builtins
|
|
32
|
+
export function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {
|
|
33
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function isObj(obj: unknown): obj is Record<string, unknown> {
|
|
37
|
+
return obj != null && typeof obj === 'object' && !Array.isArray(obj);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const ensurePresent = <T>(value: T | null | undefined): T => {
|
|
41
|
+
if (value == null) {
|
|
42
|
+
throw new LorikeetError(`Expected a value to be given but received ${value} instead.`);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return value;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const validatePositiveInteger = (name: string, n: unknown): number => {
|
|
49
|
+
if (typeof n !== 'number' || !Number.isInteger(n)) {
|
|
50
|
+
throw new LorikeetError(`${name} must be an integer`);
|
|
51
|
+
}
|
|
52
|
+
if (n < 0) {
|
|
53
|
+
throw new LorikeetError(`${name} must be a positive integer`);
|
|
54
|
+
}
|
|
55
|
+
return n;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const coerceInteger = (value: unknown): number => {
|
|
59
|
+
if (typeof value === 'number') return Math.round(value);
|
|
60
|
+
if (typeof value === 'string') return parseInt(value, 10);
|
|
61
|
+
|
|
62
|
+
throw new LorikeetError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const coerceFloat = (value: unknown): number => {
|
|
66
|
+
if (typeof value === 'number') return value;
|
|
67
|
+
if (typeof value === 'string') return parseFloat(value);
|
|
68
|
+
|
|
69
|
+
throw new LorikeetError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const coerceBoolean = (value: unknown): boolean => {
|
|
73
|
+
if (typeof value === 'boolean') return value;
|
|
74
|
+
if (typeof value === 'string') return value === 'true';
|
|
75
|
+
return Boolean(value);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const maybeCoerceInteger = (value: unknown): number | undefined => {
|
|
79
|
+
if (value == null) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
return coerceInteger(value);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const maybeCoerceFloat = (value: unknown): number | undefined => {
|
|
86
|
+
if (value == null) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return coerceFloat(value);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const maybeCoerceBoolean = (value: unknown): boolean | undefined => {
|
|
93
|
+
if (value == null) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return coerceBoolean(value);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const safeJSON = (text: string) => {
|
|
100
|
+
try {
|
|
101
|
+
return JSON.parse(text);
|
|
102
|
+
} catch (err) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export * from './utils/values';
|
|
4
|
+
export * from './utils/base64';
|
|
5
|
+
export * from './utils/env';
|
|
6
|
+
export * from './utils/log';
|
|
7
|
+
export * from './utils/uuid';
|
|
8
|
+
export * from './utils/sleep';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { createHmac } from 'crypto';
|
|
1
|
+
import { createHmac } from 'node:crypto';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate a signature for a given payload using a secret key.
|
|
5
5
|
*
|
|
6
6
|
* @param payload - The payload to sign - If no payload is provided, the signature will be generated for an empty string.
|
|
7
7
|
*/
|
|
8
|
-
export function generateSignature(payload: Buffer | string | undefined, secret: string) {
|
|
8
|
+
export function generateSignature(payload: Buffer | Uint8Array | string | undefined, secret: string) {
|
|
9
9
|
if (!payload) {
|
|
10
10
|
return createHmac('sha256', secret).digest('base64').replace(/\+/g, '-').replace(/\//g, '_');
|
|
11
11
|
}
|
package/src/resource.ts
CHANGED
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type { Lorikeet } from './index';
|
|
4
|
-
|
|
5
|
-
export abstract class APIResource {
|
|
6
|
-
protected _client: Lorikeet;
|
|
7
|
-
|
|
8
|
-
constructor(client: Lorikeet) {
|
|
9
|
-
this._client = client;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
/** @deprecated Import from ./core/resource instead */
|
|
2
|
+
export * from './core/resource';
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
import { APIResource } from '../resource';
|
|
4
|
-
import
|
|
3
|
+
import { APIResource } from '../core/resource';
|
|
4
|
+
import { APIPromise } from '../core/api-promise';
|
|
5
|
+
import { buildHeaders } from '../internal/headers';
|
|
6
|
+
import { RequestOptions } from '../internal/request-options';
|
|
7
|
+
import { path } from '../internal/utils/path';
|
|
5
8
|
|
|
6
9
|
export class APIKeys extends APIResource {
|
|
7
10
|
/**
|
|
@@ -13,7 +16,7 @@ export class APIKeys extends APIResource {
|
|
|
13
16
|
* const apiKey = await client.apiKeys.create();
|
|
14
17
|
* ```
|
|
15
18
|
*/
|
|
16
|
-
create(body: APIKeyCreateParams, options?:
|
|
19
|
+
create(body: APIKeyCreateParams, options?: RequestOptions): APIPromise<APIKeyCreateResponse> {
|
|
17
20
|
return this._client.post('/v1/api-keys', { body, ...options });
|
|
18
21
|
}
|
|
19
22
|
|
|
@@ -25,7 +28,7 @@ export class APIKeys extends APIResource {
|
|
|
25
28
|
* const apiKeys = await client.apiKeys.list();
|
|
26
29
|
* ```
|
|
27
30
|
*/
|
|
28
|
-
list(options?:
|
|
31
|
+
list(options?: RequestOptions): APIPromise<APIKeyListResponse> {
|
|
29
32
|
return this._client.get('/v1/api-keys', options);
|
|
30
33
|
}
|
|
31
34
|
|
|
@@ -39,10 +42,10 @@ export class APIKeys extends APIResource {
|
|
|
39
42
|
* );
|
|
40
43
|
* ```
|
|
41
44
|
*/
|
|
42
|
-
delete(id: string, options?:
|
|
43
|
-
return this._client.delete(`/v1/api-keys/${id}`, {
|
|
45
|
+
delete(id: string, options?: RequestOptions): APIPromise<void> {
|
|
46
|
+
return this._client.delete(path`/v1/api-keys/${id}`, {
|
|
44
47
|
...options,
|
|
45
|
-
headers: { Accept: '*/*',
|
|
48
|
+
headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
|
|
46
49
|
});
|
|
47
50
|
}
|
|
48
51
|
|
|
@@ -56,8 +59,8 @@ export class APIKeys extends APIResource {
|
|
|
56
59
|
* );
|
|
57
60
|
* ```
|
|
58
61
|
*/
|
|
59
|
-
get(id: string, options?:
|
|
60
|
-
return this._client.get(`/v1/api-keys/${id}`, options);
|
|
62
|
+
get(id: string, options?: RequestOptions): APIPromise<APIKeyGetResponse> {
|
|
63
|
+
return this._client.get(path`/v1/api-keys/${id}`, options);
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
|
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
import { APIResource } from '../../resource';
|
|
4
|
-
import * as Core from '../../core';
|
|
5
|
-
import { pollUntil } from "../../lib/poll-until";
|
|
3
|
+
import { APIResource } from '../../core/resource';
|
|
6
4
|
import * as ConversationAPI from './conversation';
|
|
5
|
+
import { APIPromise } from '../../core/api-promise';
|
|
6
|
+
import { RequestOptions } from '../../internal/request-options';
|
|
7
|
+
import { pollUntil } from '../../lib/poll-until';
|
|
8
|
+
import { DeferredAsyncIterable } from '../../lib/promise';
|
|
7
9
|
import { EventSource } from 'eventsource';
|
|
8
|
-
import { DeferredAsyncIterable } from "../../lib/promise";
|
|
9
10
|
|
|
10
11
|
export class Chat extends APIResource {
|
|
11
|
-
/**
|
|
12
|
-
* __chat.generate__
|
|
13
|
-
*
|
|
14
|
-
* Generate a chat message for a conversation. This endpoint will return immediately, polling will be required to get the response.
|
|
15
|
-
*
|
|
16
|
-
* The `latestMessageType` field in the response can be used to determine if the response is ready.
|
|
17
|
-
*
|
|
18
|
-
* If the `latestMessageType` is `BOT_RESPONSE`, the response is ready.
|
|
19
|
-
* For a more ergonomic way to poll, use the `message` method.
|
|
20
|
-
*
|
|
21
|
-
* ** WARNING ** This endpoint is not idempotent. If you call it multiple times, you will generate multiple messages.
|
|
22
|
-
*
|
|
23
|
-
* @see {@link Chat.message}
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
12
|
/**
|
|
27
13
|
* @example
|
|
28
14
|
* ```ts
|
|
@@ -39,16 +25,10 @@ export class Chat extends APIResource {
|
|
|
39
25
|
* });
|
|
40
26
|
* ```
|
|
41
27
|
*/
|
|
42
|
-
generate(body: ChatGenerateParams, options?:
|
|
28
|
+
generate(body: ChatGenerateParams, options?: RequestOptions): APIPromise<ChatGenerateResponse> {
|
|
43
29
|
return this._client.post('/v1/conversation/chat/message', { body, ...options });
|
|
44
30
|
}
|
|
45
31
|
|
|
46
|
-
/**
|
|
47
|
-
* __chat.get__
|
|
48
|
-
*
|
|
49
|
-
* Returns a chat message for a conversation. This endpoint will return the latest state of the conversation.
|
|
50
|
-
*/
|
|
51
|
-
|
|
52
32
|
/**
|
|
53
33
|
* @example
|
|
54
34
|
* ```ts
|
|
@@ -57,20 +37,10 @@ export class Chat extends APIResource {
|
|
|
57
37
|
* });
|
|
58
38
|
* ```
|
|
59
39
|
*/
|
|
60
|
-
get(query: ChatGetParams, options?:
|
|
40
|
+
get(query: ChatGetParams, options?: RequestOptions): APIPromise<ChatGetResponse> {
|
|
61
41
|
return this._client.get('/v1/conversation/chat/message', { query, ...options });
|
|
62
42
|
}
|
|
63
43
|
|
|
64
|
-
/**
|
|
65
|
-
* __chat.start__
|
|
66
|
-
*
|
|
67
|
-
* Start a chat conversation. This endpoint will return immediately.
|
|
68
|
-
*
|
|
69
|
-
* The `conversationId` field in the response can be used to generate messages.
|
|
70
|
-
*
|
|
71
|
-
* ** WARNING ** This endpoint is not idempotent. If you call it multiple times, you will generate multiple conversations.
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
44
|
/**
|
|
75
45
|
* @example
|
|
76
46
|
* ```ts
|
|
@@ -80,36 +50,34 @@ export class Chat extends APIResource {
|
|
|
80
50
|
* });
|
|
81
51
|
* ```
|
|
82
52
|
*/
|
|
83
|
-
start(body: ChatStartParams, options?:
|
|
53
|
+
start(body: ChatStartParams, options?: RequestOptions): APIPromise<ChatStartResponse> {
|
|
84
54
|
return this._client.post('/v1/conversation/chat/create', { body, ...options });
|
|
85
55
|
}
|
|
86
56
|
|
|
87
57
|
/**
|
|
88
|
-
*
|
|
58
|
+
* Send a message and poll until a response is ready.
|
|
89
59
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* @see {@link Chat.poll}
|
|
60
|
+
* This is a convenience wrapper that calls {@link Chat.generate} then {@link Chat.poll}.
|
|
93
61
|
*/
|
|
94
|
-
message(body: ChatGenerateParams, options?:
|
|
62
|
+
message(body: ChatGenerateParams, options?: RequestOptions): APIPromise<ChatGetResponse> {
|
|
95
63
|
return this.generate(body, options).then((response) =>
|
|
96
64
|
this.poll({ conversationId: response.conversationId }, options),
|
|
97
|
-
) as
|
|
65
|
+
) as APIPromise<ChatGetResponse>;
|
|
98
66
|
}
|
|
99
67
|
|
|
100
68
|
/**
|
|
101
|
-
*
|
|
69
|
+
* Poll until the conversation has a bot response ready.
|
|
102
70
|
*
|
|
103
|
-
*
|
|
71
|
+
* Stops when `latestMessageType` is `BOT_RESPONSE` or `PENDING_RESPONSE`,
|
|
72
|
+
* or when `status` is `Escalated` or `Error`.
|
|
104
73
|
*/
|
|
105
|
-
poll(query: ChatGetParams, options?:
|
|
74
|
+
poll(query: ChatGetParams, options?: RequestOptions): APIPromise<ChatGetResponse> {
|
|
106
75
|
return pollUntil<ChatGetResponse>(
|
|
107
76
|
() => this._client.get('/v1/conversation/chat/message', { query, ...options }),
|
|
108
77
|
{
|
|
109
78
|
timeout: options?.timeout || 180_000,
|
|
110
79
|
interval: 2_000,
|
|
111
80
|
condition: (conversation) => {
|
|
112
|
-
// Don't poll if the conversation is escalated or in error
|
|
113
81
|
if (conversation.status === 'Escalated' || conversation.status === 'Error') {
|
|
114
82
|
return true;
|
|
115
83
|
}
|
|
@@ -124,23 +92,18 @@ export class Chat extends APIResource {
|
|
|
124
92
|
return false;
|
|
125
93
|
},
|
|
126
94
|
},
|
|
127
|
-
) as
|
|
95
|
+
) as APIPromise<ChatGetResponse>;
|
|
128
96
|
}
|
|
129
97
|
|
|
130
98
|
/**
|
|
131
|
-
* __chat.streamUpdates__
|
|
132
|
-
*
|
|
133
99
|
* Create a persistent stream of updates for a conversation.
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
100
|
+
*
|
|
101
|
+
* Responses from the bot will arrive as events. Consuming clients must aggregate
|
|
102
|
+
* multiple chunks into a single message based on the `messageId` field.
|
|
103
|
+
*
|
|
104
|
+
* This stream is open indefinitely and does not automatically close — avoid
|
|
137
105
|
* blocking other operations while listening to events from this generator.
|
|
138
106
|
*
|
|
139
|
-
* @param params.conversationId - Conversation/ticket ID to subscribe to.
|
|
140
|
-
* @returns AsyncGenerator<ChatStreamEvent> a generator that emits response events as they arrive.
|
|
141
|
-
*/
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
107
|
* @example
|
|
145
108
|
* ```ts
|
|
146
109
|
* for await (const evt of client.conversation.chat.streamUpdates({ conversationId: 'abc123' })) {
|
|
@@ -152,7 +115,7 @@ export class Chat extends APIResource {
|
|
|
152
115
|
const queries = new URLSearchParams();
|
|
153
116
|
queries.set('sseMessageTypes', 'new-message,message-chunk,message-complete');
|
|
154
117
|
queries.set('ticketMessageTypes', 'BOT_RESPONSE');
|
|
155
|
-
const url =
|
|
118
|
+
const url = `${this._client.baseURL}/v1/ticket/sse/${params.conversationId}?${queries.toString()}`;
|
|
156
119
|
const eventSource = new EventSource(url);
|
|
157
120
|
const output = new DeferredAsyncIterable<ChatStreamEvent>();
|
|
158
121
|
|
|
@@ -193,41 +156,6 @@ export class Chat extends APIResource {
|
|
|
193
156
|
}
|
|
194
157
|
}
|
|
195
158
|
|
|
196
|
-
/**
|
|
197
|
-
* Signal that a new response message has been created and new chunks
|
|
198
|
-
* for this response for the messageId will follow.
|
|
199
|
-
*/
|
|
200
|
-
export interface ChatStreamNewMessageEvent {
|
|
201
|
-
type: 'new-message';
|
|
202
|
-
// ISO 8601 timestamp of when the message was created
|
|
203
|
-
createdAt: string;
|
|
204
|
-
messageId: string;
|
|
205
|
-
// The initial content of the message, likely empty until the first chunk arrives
|
|
206
|
-
content: string;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* A chunk of text response for the message with the given messageId.
|
|
211
|
-
*/
|
|
212
|
-
export interface ChatStreamMessageChunkEvent {
|
|
213
|
-
type: 'message-chunk';
|
|
214
|
-
contentDelta: string;
|
|
215
|
-
messageId: string;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* All chunks for a message have been received and no more chunks will follow for this message.
|
|
220
|
-
*/
|
|
221
|
-
export interface ChatStreamMessageCompleteEvent {
|
|
222
|
-
type: 'message-complete';
|
|
223
|
-
messageId: string;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
export type ChatStreamEvent =
|
|
227
|
-
| ChatStreamNewMessageEvent
|
|
228
|
-
| ChatStreamMessageChunkEvent
|
|
229
|
-
| ChatStreamMessageCompleteEvent;
|
|
230
|
-
|
|
231
159
|
export interface ChatGenerateResponse {
|
|
232
160
|
/**
|
|
233
161
|
* The ID of the conversation
|
|
@@ -480,6 +408,39 @@ export interface ChatStreamParams {
|
|
|
480
408
|
conversationId: string;
|
|
481
409
|
}
|
|
482
410
|
|
|
411
|
+
/**
|
|
412
|
+
* Signal that a new response message has been created and new chunks
|
|
413
|
+
* for this response for the messageId will follow.
|
|
414
|
+
*/
|
|
415
|
+
export interface ChatStreamNewMessageEvent {
|
|
416
|
+
type: 'new-message';
|
|
417
|
+
createdAt: string;
|
|
418
|
+
messageId: string;
|
|
419
|
+
content: string;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* A chunk of text response for the message with the given messageId.
|
|
424
|
+
*/
|
|
425
|
+
export interface ChatStreamMessageChunkEvent {
|
|
426
|
+
type: 'message-chunk';
|
|
427
|
+
contentDelta: string;
|
|
428
|
+
messageId: string;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* All chunks for a message have been received and no more chunks will follow for this message.
|
|
433
|
+
*/
|
|
434
|
+
export interface ChatStreamMessageCompleteEvent {
|
|
435
|
+
type: 'message-complete';
|
|
436
|
+
messageId: string;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
export type ChatStreamEvent =
|
|
440
|
+
| ChatStreamNewMessageEvent
|
|
441
|
+
| ChatStreamMessageChunkEvent
|
|
442
|
+
| ChatStreamMessageCompleteEvent;
|
|
443
|
+
|
|
483
444
|
export declare namespace Chat {
|
|
484
445
|
export {
|
|
485
446
|
type ChatGenerateResponse as ChatGenerateResponse,
|
|
@@ -489,5 +450,9 @@ export declare namespace Chat {
|
|
|
489
450
|
type ChatGetParams as ChatGetParams,
|
|
490
451
|
type ChatStartParams as ChatStartParams,
|
|
491
452
|
type ChatStreamParams as ChatStreamParams,
|
|
453
|
+
type ChatStreamEvent as ChatStreamEvent,
|
|
454
|
+
type ChatStreamNewMessageEvent as ChatStreamNewMessageEvent,
|
|
455
|
+
type ChatStreamMessageChunkEvent as ChatStreamMessageChunkEvent,
|
|
456
|
+
type ChatStreamMessageCompleteEvent as ChatStreamMessageCompleteEvent,
|
|
492
457
|
};
|
|
493
458
|
}
|